
我正在嘗試將 grub 引導到包含 Slackware Linux 安裝的 chroot 目錄 /slack。該目錄是透過發出以下命令來建立的:
installpkg --root /slack a/*.t?z
其中 a/ 目錄包含來自 slackware 的基本 a/ 安裝套件。我透過執行 mkinitcpio 命令成功地進入 /slack 並建立了 initrd 映像。
最後,我在 /boot/grub/menu.lst 中建立了以下條目:
title Slackware Linux
root (hd0,2)
kernel /slack/boot/vmlinuz root=/dev/sda3 rw init=/slack/boot/chrootinit
initrd /slack/boot/initrd.gz
boot
其中 /slack/boot/chrootinit 是 chroot 到 /slack 的腳本:
exec /usr/sbin/chroot /slack /sbin/init
系統成功啟動,但即使使用「rw」選項,根分割區也會以唯讀方式安裝。顯示有關此問題的多個警告訊息,系統最終掛起。有什麼解決辦法嗎?
(參考:http://forum.soft32.com/linux2/Booting-chrooted-directory-ftopict51395.html)
答案1
我不確定為什麼檔案系統被掛載為唯讀,因為您已經指定了rw
.也許核心實際上是以讀寫方式掛載 initrd 映像,然後該 initrd 映像以唯讀方式掛載您的根檔案系統。
在任何情況下,通常核心都希望以唯讀方式掛載根檔案系統,然後在某個時刻以init
讀寫方式重新掛載它。
也許您可以修改chrootinit
腳本以首先執行該步驟:
/bin/mount -o remount,rw /
exec /usr/sbin/chroot /slack /sbin/init