지난 2 일 동안 부팅 가능한 데비안 (jessie / 8.4) 이미지를 만들려고 노력했지만 절차가 있지만 파일 시스템을 얻을 수는 없습니다. 나는 내가 여기에 무언가 잘못하고 있다고 확신하고 있거나 장착 된 무언가가 없거나 /etc/fstab
( 내 이미지에 아무것도 없다 ). 나는 어떤 경험을 가진 누군가가 나를 잃어버린 것을 보여줄 수 있기를 바라고있었습니다.
qemu-system-x86으로 부팅 할 때 나타나는 오류는 다음과 같습니다.
텍스트와 실제 스크린 샷으로 :
오류 :
fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/sda1
fsck exited with status code 8
[FAILED] Failed to start Load/Save Random Seed
See `systemctl status systemd-random-seed.service` for details.
[FAILED] Failed to start Various fixups to make systemd work better on Debian.
See `systemctl status debian-fixup.service` for details.
...
[FAILED] Failed to start Update UTMP about System Boot/Shutdown.
See `systemctl status systemd-update-utmp.service` for details.
[DEPEND] Dependency failed for Update UTMP about System Runlevel Changes.
내가 작성한 지침 / 내가 취한 단계는 다음과 같습니다.
cd ~
mkdir debootstrap
cd debootstrap/
# get newest
wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.80_all.deb
ar -x debootstrap_1.0.80_all.deb
zcat /root/debootstrap/data.tar.gz | tar xv
apt-get install parted
# 1.5Gbytes
dd if=/dev/zero of=1445.img bs=1024 count=1 seek=1536k
parted -s 1445.img -- mklabel msdos mkpart primary 1m 1.5g toggle 1 boot
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
# only have to make the filesytem once --> if you are troubleshooting steps, do not redo this line
mkfs -t ext2 /dev/loop0p1
mount /dev/loop0p1 /mnt
debootstrap --verbose --components=main,contrib,non-free \
--include=firmware-realtek,linux-image-amd64,grub-pc,ssh,vim \
--exclude=nano \
--arch amd64 jessie /mnt http://ftp.us.debian.org/debian
커널이 설치되어 있는지 확인하십시오. 커널은
/boot
chroot 안에/mnt/boot
, 다음 파일이 있어야합니다 :initrd.img-3.16.0-4-amd64
vmlinuz-3.16.0-4-amd64
config-3.16.0-4-amd64
System.map-3.16.0-4-amd64
그럽 설치
grub-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
APT 설정
적절한 소스를 통해 복사
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
cdrom 소스가 주석 처리되었는지 확인하십시오
줄을 추가하십시오 :
deb http://ftp.debian.org/debian stable-backports main contrib non-free
chroot 설정
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /dev /mnt/dev
# if you want your pushprofilesettings
cp ~/.bashrc /mnt/root/
cp ~/.vimrc /mnt/root/
# chroot -- enter the system as if it were thy own
chroot /mnt /bin/bash
export HOME=/root
export LC_ALL=C
export LANG=C.UTF-8
export TERM=xterm-256color
mount
에서 사람이 마운트 :
--bind
다시 마운트에게 서브 트리를 다른 곳 (그 내용은 두 곳에서 사용할 수 있습니다). 이것과 함께
-t <type>
파일 시스템 유형의 마운트는 mount
자동 결정을 시도합니다.
직렬 / 콘솔 액세스 설정
편집 /etc/default/grub
:
로 설정
GRUB_CMDLINE_LINUX=""
:GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
주석 해제
GRUB_TERMINAL=console
아래에 다음 줄을 추가하십시오.
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
grub 설정을 만드십시오- 이것은 반드시 쉘 이 아닌 곳에서 수행되어야합니다 systemd-nspawn
(즉, chroot
)
grub-mkconfig -o /boot/grub/grub.cfg
chroot 종료
exit
chroot에 대한 정리
umount /mnt/sys
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/proc
다음을 사용하여 추가 마운트를 확인할 수 mount | grep /mnt
있습니다. umount
systemd-nspawn 입력
systemd-nspawn -D /mnt
# not you are in a special container
암호 설정 root
과를passwd
에서 /etc/ssh/sshd_config
밖으로 코멘트를 PermitRootLogin without-password
읽어 #PermitRootLogin without-password
삽입 PermitRootLogin yes
그 아래에
이제 시작시 ssh를 활성화하십시오.
systemctl enable ssh
정리하다
# this is needed to clean up both chroot and systemd-nspawn -D /mnt
# once this is run you can not do systemd-nspawn either so wait until you are entirely done
exit
umount /mnt
losetup -d /dev/loop0
:에 추가 마운트를 확인 mount | grep /mnt
하면 뭐든지가 반환되고, 그들을 마운트 해제 umount
복구 (ERROR에만 필요)
문제가 발생했거나 다시 시도해야하는 경우 기존의 RE-MOUNT / SETUP CHROOT .img
:
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
mount /dev/loop0p1 /mnt
img 테스트
qemu-system-x86_64 -hda 1445.img -m 1024 -vnc :0
sudo debootstrap --components=main,contrib,nonfree --variant=minbase --include=linux-generic,grub-pc --arch=i386 xenial /mnt
.