Saya telah mencoba untuk membuat image bootable debian (jessie / 8.4) selama 2 hari terakhir, dan sejauh yang saya tahu saya memiliki prosedur yang benar, tetapi saya tidak bisa mendapatkan filesystem dengan benar. Saya relatif yakin bahwa saya melakukan sesuatu yang salah di sini, melewatkan sesuatu dengan pemasangan atau /etc/fstab
( tidak ada satu di gambar saya ). Saya berharap seseorang dengan pengalaman akan dapat membantu saya / menunjukkan kepada saya apa yang saya lewatkan.
Berikut adalah kesalahan yang saya lihat saat saya boot ke qemu-system-x86:
Sebagai teks dan kemudian sebagai tangkapan layar yang sebenarnya:
Kesalahan:
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.
Berikut adalah instruksi yang telah saya tulis untuk diri saya sendiri / langkah-langkah yang telah saya ambil:
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
sumber untuk informasi tentang cara menggunakan --komponen
Pastikan bahwa kernel terinstal, harus muncul di
/boot
dalam chroot, yaitu/mnt/boot
dengan file-file berikut: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
instal grub
grub-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
Siapkan APT
menyalin melalui sumber apt
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
memastikan sumber cdrom dikomentari
tambahkan baris:
deb http://ftp.debian.org/debian stable-backports main contrib non-free
Siapkan 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
from man mount :
--bind
Remount subtree di tempat lain (isinya tersedia di kedua tempat).
-t <type>
Mount tipe filesystem , dengan ini, mount
akan berusaha untuk menentukan secara otomatis
pengaturan akses serial / konsol
edit /etc/default/grub
:
Setel
GRUB_CMDLINE_LINUX=""
ke:GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
Uncomment
GRUB_TERMINAL=console
Di bawah, tambahkan baris:
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Make the grub config - Ini HARUS dilakukan dalam bentuk non- systemd-nspawn
shell (artinya chroot
)
grub-mkconfig -o /boot/grub/grub.cfg
Keluar dari chroot
exit
Bersihkan untuk chroot'ed
umount /mnt/sys
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/proc
Dapat memeriksa tunggangan tambahan dengan: mount | grep /mnt
dan kemudian melepasnya dengan umount
Masukkan systemd-nspawn
systemd-nspawn -D /mnt
# not you are in a special container
Setel kata sandi untuk root
denganpasswd
Dalam /etc/ssh/sshd_config
komentar keluar PermitRootLogin without-password
untuk membaca #PermitRootLogin without-password
dan memasukkan di PermitRootLogin yes
bawahnya
Sekarang aktifkan ssh saat startup
systemctl enable ssh
membersihkan
# 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
Periksa tunggangan tambahan dengan: mount | grep /mnt
Jika APA SAJA dikembalikan, lepaskan dengan umount
Pulihkan (hanya perlu di ERROR)
Jika Anda memecahkan sesuatu, atau perlu mencoba lagi, RE-MOUNT / SETUP CHROOT pada yang sudah ada .img
:
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
mount /dev/loop0p1 /mnt
pengujian 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
.