我正在尝试启动进入只读模式来测试某些软件。我不想在启动后重新安装驱动器,因为这不符合测试在启动时检查文件系统的软件的要求。
有没有办法在不编辑grub.conf的情况下执行此操作?最好在中断启动时通过grub UI添加一些东西?
如果我编辑grub.conf以只读方式启动,我该如何编辑它呢?
我知道内核将root作为RO挂载,但它在引导过程的后期被重新安装为RW。
答案 0 :(得分:4)
当grub
正在运行时,在grub
加载内核并继续引导之前,您通常具有某些能力来编辑内核命令行。也许你的发行版有hidden the grub
interface at boot - 按住左边的 shift 可以启动它并让你编辑内核命令行。
Linux内核Documentation/kernel-parameters.txt
记录了ro
内核命令参数,以便将根文件系统挂载为只读。如果你加载init=/bin/sh
,那么你将负责安装你想要的任何文件系统。您可能需要在/proc
显示任何已挂载的文件系统之前挂载mount(8)
:mount -t proc none /proc
。
请确保将-o ro
或-o rw
选项提供给mount(8)
作为您根据需要安装每个文件系统。
但我必须认为有更好的软件测试方法。你真的试图做什么?
答案 1 :(得分:1)
这也可以通过添加
来完成GRUB_DEFAULT=saved
到您的grub.cfg。然后,您可以为引导加载程序创建2个不同的GRUB条目(例如," RedHat"和" RedHat RO"。在终端中设置默认条目
grub-set-default "RedHat"
仅针对终端中的下一次重启问题运行其他grub条目
grub-reboot "RedHat RO"
这实际上是通过在grub配置中添加一个标志(grubenv)并在重启后删除它。所以基本上你的/ boot /分区必须是可写的。如有必要,您还可以重新装入可写入的引导分区。无论如何,您需要在单独的分区上使用/ boot /目录。
另一种选择是将启动分区放在USB记忆棒上并启动" RedHat RO"每次你需要的时候从那里开始。
否则:正如sarnold已经说过:您在GRUB命令行或GRUB编辑中所做的更改只是暂时的。