在 RAM 中构建具有可写层的只读 Linux 系统

Kin*_*Arc 9 fedora rhel livecd initramfs readonly

我需要将 RHEL 6.6/7.0 引导至只读模式,仅在 RAM 中具有可写层。我相信这类似于 live CD 的工作方式,因为文件系统是只读的,但它的某些部分在加载到 RAM 后是可写的。在这里,写入文件系统的任何更改都会在重新启动时丢失(因为在可写层中只更新了 RAM)。

在网上环顾四周时,我没有找到有关在没有帮助工具的情况下配置我自己的“live CD”的指南,以便我可以在现有的已安装系统中模拟此过程。

有谁知道我可以从哪里获得有关构建自己的 Live CD 或仅在 RAM 中具有可写层的只读 Linux 的一些资源?

Kin*_*Arc 11

好的,所以我在 SD 卡上确实有一个工作只读系统,允许将读/写开关设置为只读模式。我将回答我自己的问题,因为我有一种感觉,我会再次在这里寻找这些步骤,希望这能帮助其他人。

/etc/fstabRed Hat Enterprise Linux 6.6 系统上将各种目录设置为只读时,我找到了文件/etc/sysconfig/readonly-root. 这激起了我对这个文件的用途以及有关它的任何辅助信息的兴趣。简而言之,该文件包含一行说明“ READONLY=no”。更改此行会自动将大部分根文件系统加载为只读,同时保留对各种目录(目录和文件作为 tmpfs 加载)的必要写入操作。我必须做的唯一改变是设置/home/root,以及其他一些可写的/etc/rwtab.d目录,通过该目录修改 /etc/fstab 以将根文件系统加载为只读(将“ defaults”更改为“ ro”以表示root)。一旦我READONLY=yes/etc/sysconfig/readonly-root文件中设置了“ ” ,并通过 设置了我必要的可写目录/etc/rwtab.d以及fstab更改,我就能够让系统加载只读,但将可写目录加载到 RAM 中。

有关更多信息,这些是我使用的资源:

另外,我在 Red Hat Enterprise Linux 7.0 上做了一个快速验证,这个文件仍然存在并且有效。我的测试环境是虚拟机上的CentOS 6.6和7.0以及VME单板机上的RHEL 6.6和7.0。

注意:一旦根为只读,就不能对根系统进行任何更改。例如,您不能使用 yum 安装软件包并让它们在重新启动时保持不变。因此,为了打破只读 root,我添加了一个删除 rhgb 和 quiet 的 grub 行(这仅用于调试引导问题,如果需要,您可以保留它们),并添加了“ init=/bin/bash”。这让我可以进入一个终端。在终端上,我输入“ mount - / -oremount,rw”以使系统可写。一旦可写,我修改(使用vim/etc/sysconfig/readonly-root说“READONLY=no”并重新启动系统。这允许我通过关闭只读来对系统进行维护。如果您像我一样使用SD卡,那么SD卡上的读/写开关需要设置为可写。