Tôi đã cố gắng tạo một hình ảnh debian có thể khởi động (jessie / 8.4) trong 2 ngày qua và theo như tôi có thể nói là tôi có quy trình đúng, nhưng tôi không thể hiểu đúng về hệ thống tập tin. Tôi tương đối chắc chắn rằng tôi đang làm gì đó sai ở đây, thiếu một cái gì đó với việc gắn hoặc /etc/fstab
( không có cái nào trong hình ảnh của tôi ). Tôi đã hy vọng ai đó có một số kinh nghiệm sẽ có thể giúp tôi / chỉ cho tôi những gì tôi đang thiếu.
Dưới đây là các lỗi tôi thấy khi tôi khởi động vào qemu-system-x86:
Như văn bản và sau đó là ảnh chụp màn hình thực tế:
Lỗi:
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.
Dưới đây là các hướng dẫn tôi đã viết cho chính mình / các bước tôi đã thực hiện:
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
nguồn thông tin về việc sử dụng - thành phần
Đảm bảo rằng kernel đã được cài đặt, nó sẽ xuất hiện trong
/boot
chroot,/mnt/boot
với các tệp sau: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
cài đặt grub
grub-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
Thiết lập APT
sao chép qua các nguồn apt
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
đảm bảo nguồn cdrom được nhận xét
thêm dòng:
deb http://ftp.debian.org/debian stable-backports main contrib non-free
Cài đặt 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
từ man mount :
--bind
Kể lại một cây con ở một nơi khác (nội dung của nó có sẵn ở cả hai nơi).
-t <type>
Mount loại hệ thống tập tin , với điều này, mount
sẽ cố gắng tự động xác định
thiết lập truy cập nối tiếp / bàn điều khiển
chỉnh sửa /etc/default/grub
:
Đặt
GRUB_CMDLINE_LINUX=""
thành:GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
Thất bại
GRUB_TERMINAL=console
Bên dưới, thêm dòng:
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Tạo cấu hình grub - Điều này PHẢI được thực hiện trong một systemd-nspawn
vỏ không (có nghĩa là chroot
)
grub-mkconfig -o /boot/grub/grub.cfg
Thoát khỏi chroot
exit
Dọn dẹp cho chroot'ed
umount /mnt/sys
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/proc
Có thể kiểm tra các gắn kết bổ sung với: mount | grep /mnt
và sau đó ngắt kết nối chúng với umount
Nhập systemd-nspawn
systemd-nspawn -D /mnt
# not you are in a special container
Đặt mật khẩu cho root
vớipasswd
Trong /etc/ssh/sshd_config
bình luận ra PermitRootLogin without-password
để đọc #PermitRootLogin without-password
và chèn PermitRootLogin yes
bên dưới nó
Bây giờ kích hoạt ssh khi khởi động
systemctl enable ssh
dọn dẹp
# 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
Kiểm tra các gắn kết bổ sung với: mount | grep /mnt
Nếu BẤT K return việc nào được trả về, hãy ngắt kết nối chúng với umount
Phục hồi (chỉ cần thiết trong LRI)
Nếu bạn đã phá vỡ một cái gì đó, hoặc cần thử lại, RE-MOUNT / SETUP CHROOT hiện có .img
:
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
mount /dev/loop0p1 /mnt
kiểm tra 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
.