【问题标题】:One time boot into Read Only?一次启动到只读?
【发布时间】:2011-12-20 19:13:40
【问题描述】:

我正在尝试启动到只读模式以测试某些软件。我不想在启动后重新安装驱动器,因为这不符合测试在启动时检查文件系统的软件的要求。

有没有办法在不编辑 grub.conf 的情况下做到这一点?最好在中断启动时通过 grub UI 添加一些东西?

如果我编辑 grub.conf 以只读方式启动,我应该如何编辑它?


我了解内核将 root 挂载为 RO,但稍后在引导过程中将其重新挂载为 RW。

【问题讨论】:

    标签: linux grub


    【解决方案1】:

    grub 运行时,您通常有一些能力在grub 加载内核并继续引导之前编辑内核命令行。也许你的发行版有hidden the grub interface at boot -- 按住左 shift 可能会调出它并让你编辑内核命令行。

    Linux 内核Documentation/kernel-parameters.txt 记录了ro 内核命令参数以只读方式挂载您的根文件系统。如果您添加了init=/bin/sh,那么您将负责挂载您想要的任何文件系统。您可能需要先挂载/procmount(8) 才会显示任何挂载的文件系统:mount -t proc none /proc

    请务必将-o ro-o rw 选项提供给mount(8),以便根据需要安装每个文件系统。

    但我不得不认为有更好的方法来测试软件。你真正想做什么?

    【讨论】:

    • 我不想在软件中伪造这个。我希望该软件检测到只读启动。所以我尝试了这个(init=/bin/sh),看起来有几件事是自动挂载的,包括 /dev/sda1 作为 /.
    • 顺便说一句,我正在运行 Red Hat,并且我确实可以访问中期启动 grub 修改。当我说“有没有办法在不编辑 grub.conf 的情况下做到这一点?最好在中断启动时通过 grub UI 添加一些东西?
    • 您可以在 grub 中编辑内核命令行以随心所欲地编辑,而无需修改 grub.conf 文件。您在 grub 菜单/命令行界面中进行的所有编辑都只会影响单次启动。如果您想将ro 添加到新的grub.conf 条目以使其轻松可选择,那也可以。由你决定。 :)
    • @neuroelectronic:您能在该电子表格中添加一些上下文吗?
    • 这是从错误的缓冲区复制/粘贴。你可以忽略它。
    【解决方案2】:

    这也可以通过添加来完成

    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 编辑中所做的更改只是暂时的。

    【讨论】:

      猜你喜欢
      • 2020-10-08
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2019-06-21
      相关资源
      最近更新 更多