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