引导至 chroot 目录使根分区保持只读状态

引导至 chroot 目录使根分区保持只读状态

我正在尝试将 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

相关内容