J'ai essayé de créer une image debian amorçable (jessie / 8.4) au cours des 2 derniers jours, et pour autant que je sache, j'ai la bonne procédure, mais je ne peux pas obtenir le bon système de fichiers. Je suis relativement sûr de faire quelque chose de mal ici, de manquer quelque chose avec le montage ou /etc/fstab
( il n'y en a pas à mon image ). J'espérais que quelqu'un avec une certaine expérience pourrait m'aider / me montrer ce qui me manque.
Voici les erreurs que je vois lorsque je démarre dans qemu-system-x86:
En tant que texte, puis en tant que captures d'écran réelles:
Les erreurs:
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.
Voici les instructions que j'ai rédigées pour moi-même / les étapes que j'ai suivies:
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
source d'informations sur l'utilisation de --components
Assurez-vous que le noyau est installé, il devrait apparaître
/boot
dans le chroot, c'est-à-dire/mnt/boot
avec les fichiers suivants: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
installer grub
grub-install --boot-directory=/mnt/boot --modules=part_msdos /dev/loop0
Configurer APT
copier sur les sources apt
cp /etc/apt/sources.list /mnt/etc/apt/sources.list
assurez-vous que la source du cdrom est mise en commentaire
ajoutez la ligne:
deb http://ftp.debian.org/debian stable-backports main contrib non-free
Configurer un 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
remontez un sous-arbre ailleurs (son contenu est disponible aux deux endroits).
-t <type>
Le montage du type de système de fichiers , avec cela, mount
tentera de déterminer automatiquement
configurer l'accès série / console
modifier /etc/default/grub
:
Réglez
GRUB_CMDLINE_LINUX=""
sur:GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
Décommenter
GRUB_TERMINAL=console
Ci-dessous, ajoutez la ligne:
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Faire la config grub - Cela DOIT être fait dans un non- systemd-nspawn
shell (cela signifie chroot
)
grub-mkconfig -o /boot/grub/grub.cfg
Quitter chroot
exit
Nettoyer pour chroot'ed
umount /mnt/sys
umount /mnt/dev
umount /mnt/dev/pts
umount /mnt/proc
Peut rechercher des supports supplémentaires avec: mount | grep /mnt
puis les démonter avec umount
Entrez systemd-nspawn
systemd-nspawn -D /mnt
# not you are in a special container
Définissez le mot de passe pour root
avecpasswd
En /etc/ssh/sshd_config
commentaire PermitRootLogin without-password
pour lire #PermitRootLogin without-password
et insérer en PermitRootLogin yes
dessous
Activez maintenant ssh au démarrage
systemctl enable ssh
nettoyer
# 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
Vérifiez les montages supplémentaires avec: mount | grep /mnt
Si TOUT est retourné, démontez-les avec umount
Récupérer (uniquement nécessaire dans ERREUR)
Si vous avez cassé quelque chose ou si vous devez réessayer, RE-MOUNT / SETUP CHROOT sur l'existant .img
:
losetup --show -f 1445.img
# prints out `/dev/loopX`, enter this on the next lin
partprobe /dev/loop0
mount /dev/loop0p1 /mnt
test 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
.