So erstellen Sie ein bootfähiges System mit einem Squashfs-Root

So erstellen Sie ein bootfähiges System mit einem Squashfs-Root

Mein Ziel ist es, ein angepasstes Root-Dateisystem mit der gewünschten Software zu erstellen. Bisher habe ich mithilfe von Debootstrap und Chroot ein komprimiertes Dateisystem erstellt, um die gewünschte Software auf dem System zu installieren.

Das Problem, das ich jetzt habe, ist, dass meine im Chroot eingerichteten Benutzerkonten immer dann nicht funktionieren, wenn ich das System starte. Beim ersten Start funktioniert alles, beim zweiten Start kann ich mich nicht anmelden. Das ist mir schleierhaft.

Kennt jemand einen Grund oder weiß jemand, wo man mit der Suche beginnen soll?

Antwort1

So erhalten Sie ein funktionierendes System mit einem Squashfs-Dateisystem:

sudo apt-get install live-boot live-boot-initramfs-tools extlinux
sudo update-initramfs -u

Erstellen Sie eine Squashfs-Datei aus einem gebooteten oder laufenden Ubuntu-Dateisystem mit den gewünschten verfügbaren Paketen. https://help.ubuntu.com/community/LiveCDCustomizationFromScratchbietet gute Anweisungen zum Erstellen eines debootstrapped-Systems, auf dem Sie aufbauen können. Formatieren Sie das Ziellaufwerk mit ext2/3/4 und aktivieren Sie das Boot-Flag. Erstellen Sie das Ordnerlayout auf dem Ziellaufwerk und installieren Sie extlinux:

mkdir -p ${TARGET}/boot/extlinux ${TARGET}/live
extlinux -i ${TARGET}/boot/extlinux
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdX #X is the drive letter
cp /boot/vmlinuz-$(uname -r) ${TARGET}/boot/vmlinuz
cp /boot/initrd.img-$(uname -r) ${TARGET}/boot/initrd
cp filesystem.squashfs ${TARGET}/live

Erstellen Sie ${TARGET}/boot/extlinux/extlinux.conf mit folgendem Inhalt:

DEFAULT Live
LABEL Live
  KERNEL /boot/vmlinuz
  APPEND initrd=/boot/initrd boot=live toram=filesystem.squashfs
TIMEOUT 10
PROMPT 0

Jetzt sollten Sie in der Lage sein, vom Ziellaufwerk in Ihr komprimiertes System zu booten.

Antwort2

Diese Frage wurde vom OP gelöst:

Nun, ich habe es zum Laufen gebracht. Ich habe die Live-Boot- und Live-Boot-Initramfs-Tools verwendet, um ein Initrd und Extlinux für den Bootloader zu generieren. Funktioniert einwandfrei.

verwandte Informationen