Ich habe in den letzten 2 Tagen versucht, ein bootfähiges Debian-Image (jessie / 8.4) zu erstellen, und soweit ich das beurteilen kann, habe ich die Prozedur richtig ausgeführt, kann aber das Dateisystem nicht richtig einrichten. Ich bin mir ziemlich sicher, dass ich hier etwas falsch mache, etwas mit Montage verpasse oder /etc/fstab
( es ist keines in meinem Bild ). Ich hatte gehofft, jemand mit etwas Erfahrung könnte mir helfen, mir zu zeigen, was ich vermisse.
Hier sind die Fehler, die beim Booten von qemu-system-x86 auftreten:
Als Text und dann als eigentliche Screenshots:
Fehler:
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.
Hier sind die Anweisungen, die ich für mich selbst geschrieben habe / Schritte, die ich unternommen habe:
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
Quelle für Informationen zur Verwendung von --components
Stellen Sie sicher, dass der Kernel installiert ist und in
/boot
der Chroot mit den folgenden Dateien angezeigt wird/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
installiere grub
grub-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
Richten Sie APT ein
Kopieren Sie die entsprechenden Quellen
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
Stellen Sie sicher, dass die CD-ROM-Quelle auskommentiert ist
füge die Zeile hinzu:
deb http://ftp.debian.org/debian stable-backports main contrib non-free
Richten Sie eine Chroot ein
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
Hängen Sie einen Teilbaum an einer anderen Stelle wieder ein (sein Inhalt ist an beiden Stellen verfügbar).
-t <type>
Montieren von Dateisystem - Typ , mit dieser, mount
wird versuchen, automatisch festzustellen ,
Einrichten des seriellen / Konsolenzugriffs
bearbeiten /etc/default/grub
:
Setze
GRUB_CMDLINE_LINUX=""
auf:GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
Kommentar entfernen
GRUB_TERMINAL=console
Fügen Sie unten die Zeile hinzu:
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Make the grub config - Das MUSS in einer Non- systemd-nspawn
Shell gemacht werden (das heißt chroot
)
grub-mkconfig -o /boot/grub/grub.cfg
Chroot verlassen
exit
Aufräumen für chroot'ed
umount /mnt/sys
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/proc
Kann nach zusätzlichen Reitern suchen mit: mount | grep /mnt
und sie dann mit aushängen umount
Geben Sie systemd-nspawn ein
systemd-nspawn -D /mnt
# not you are in a special container
Stellen Sie das Passwort für root
mit einpasswd
In /etc/ssh/sshd_config
Kommentar PermitRootLogin without-password
auslesen #PermitRootLogin without-password
und PermitRootLogin yes
darunter einfügen
Aktivieren Sie nun ssh beim Start
systemctl enable ssh
Aufräumen
# 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
Prüfen Sie, mount | grep /mnt
ob weitere Halterungen vorhanden sind, mit: Wenn ALLES zurückgegeben wird, heben Sie die Halterung mit auf umount
Wiederherstellen (nur in ERROR erforderlich)
Wenn Sie etwas kaputt gemacht haben oder es erneut versuchen müssen, führen Sie einen RE-MOUNT / SETUP CHROOT für Folgendes aus .img
:
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
mount /dev/loop0p1 /mnt
Testen 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
.