Beim Booten in das Chroot-Verzeichnis bleibt die Root-Partition schreibgeschützt.

Beim Booten in das Chroot-Verzeichnis bleibt die Root-Partition schreibgeschützt.

Ich versuche, Grub in ein Chroot-Verzeichnis /slack zu booten, das eine Slackware Linux-Installation enthält. Dieses Verzeichnis wurde durch die Ausgabe des folgenden Befehls erstellt:

  installpkg --root /slack a/*.t?z

wobei das Verzeichnis a/ die grundlegenden a/-Installationspakete von Slackware enthält. Ich habe erfolgreich ein Chroot-Verfahren in /slack durchgeführt und das Initrd-Image erstellt, indem ich den Befehl mkinitcpio ausgeführt habe.

Abschließend habe ich folgenden Eintrag in /boot/grub/menu.lst erstellt:

title  Slackware Linux
root   (hd0,2)
kernel /slack/boot/vmlinuz root=/dev/sda3 rw init=/slack/boot/chrootinit 
initrd /slack/boot/initrd.gz
boot

wobei /slack/boot/chrootinit ein Skript ist, das ein Chroot-Verfahren in /slack durchführt:

exec /usr/sbin/chroot /slack /sbin/init

Das System bootet erfolgreich, aber selbst mit der Option „rw“ wird die Root-Partition schreibgeschützt gemountet. Es werden mehrere Warnmeldungen zu diesem Problem angezeigt und das System hängt sich schließlich auf. Gibt es Lösungen?

(REF:http://forum.soft32.com/linux2/Booting-chrooted-directory-ftopict51395.html)

Antwort1

Ich bin nicht sicher, warum das Dateisystem schreibgeschützt gemountet wird, da Sie dies angegeben haben rw. Vielleicht mountet der Kernel das Initrd-Image tatsächlich schreibgeschützt und dieses Initrd-Image mountet dann Ihr Root-FS schreibgeschützt.

In jedem Fall wird vom Kernel normalerweise erwartet, dass er das Stamm-FS schreibgeschützt mountet und es dann irgendwann initerneut mit Lese-/Schreibzugriff mountet.

Vielleicht könnten Sie Ihr chrootinitSkript so ändern, dass dieser Schritt zuerst ausgeführt wird:

/bin/mount -o remount,rw /
exec /usr/sbin/chroot /slack /sbin/init

verwandte Informationen