【发布时间】:2011-12-20 19:13:40
【问题描述】:
我正在尝试启动到只读模式以测试某些软件。我不想在启动后重新安装驱动器,因为这不符合测试在启动时检查文件系统的软件的要求。
有没有办法在不编辑 grub.conf 的情况下做到这一点?最好在中断启动时通过 grub UI 添加一些东西?
如果我编辑 grub.conf 以只读方式启动,我应该如何编辑它?
我了解内核将 root 挂载为 RO,但稍后在引导过程中将其重新挂载为 RW。
【问题讨论】:
我正在尝试启动到只读模式以测试某些软件。我不想在启动后重新安装驱动器,因为这不符合测试在启动时检查文件系统的软件的要求。
有没有办法在不编辑 grub.conf 的情况下做到这一点?最好在中断启动时通过 grub UI 添加一些东西?
如果我编辑 grub.conf 以只读方式启动,我应该如何编辑它?
我了解内核将 root 挂载为 RO,但稍后在引导过程中将其重新挂载为 RW。
【问题讨论】:
当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),以便根据需要安装每个文件系统。
但我不得不认为有更好的方法来测试软件。你真正想做什么?
【讨论】:
grub.conf 文件。您在 grub 菜单/命令行界面中进行的所有编辑都只会影响单次启动。如果您想将ro 添加到新的grub.conf 条目以使其轻松可选择,那也可以。由你决定。 :)
这也可以通过添加来完成
GRUB_DEFAULT=saved
到你的 grub.cfg 。然后您可以为引导加载程序创建 2 个不同的 GRUB 条目(例如“RedHat”和“RedHat RO”。在终端中设置这样的默认条目
grub-set-default "RedHat"
仅针对终端中的下一次重启问题运行其他 grub 条目
grub-reboot "RedHat RO"
这基本上可以通过在 grub 配置 (grubenv) 中添加一个标志并在重新启动后将其删除。所以基本上你的 /boot/ 分区必须是可写的。如有必要,您还可以重新挂载可写的引导分区。在任何情况下,您都需要单独分区上的 /boot/ 目录。
另一种选择是将启动分区放在 U 盘上,并在每次需要时从那里启动“RedHat RO”。
否则:正如 sarnold 已经说过的:您在 GRUB 命令行或 GRUB 编辑中所做的更改只是暂时的。
【讨论】: