我有一台工业计算机(除维护期间外,无需键盘/鼠标/显示器),用于控制一些机器。操作系统将是 Linux(我更喜欢 OpenSuSE,但这不是严格要求)。该软件不需要在连续启动之间存储任何内容。
我希望最终用户能够随时关闭计算机,而无需发送命令shutdown -h now
或类似命令,然后等待计算机关闭。为了实现这一点,我想使用联合安装,可能奥夫斯,这样具有根文件系统的 SSD 只能进行读取,而绝不能进行写入。
这实时 USB 记忆棒OpenSuSE wiki 上的文章说只需将dd
操作系统的 *.iso 放在闪存驱动器上。我想这也适用于 SSD。但我不希望 SSD 拥有 ISO 9660 文件系统。我是否可以在 ext2/3/4 或 XFS 等上正确安装 OpenSuSE,然后锁定 SSD 以防止写入,将所有写入请求重定向到 RAM 磁盘aufs
?
您能提示一下如何实现这一点吗?
答案1
您需要对initrd
启动时使用的图像进行更改以实现这一点。
看一下如何:构建只读 Linux 系统解释了如何在 Ubuntu 系统上执行此操作。毫无疑问,Suse 上的 initramfs 基础结构会略有不同,但适应起来应该不难。
或者看看实时发行版是如何做的,提取相关位并将它们添加到您当前的 initrd。initrd 是一个 cpio 档案,用它提取cpio
并查看 init 脚本,这就是所有神奇的事情发生的地方。
我更熟悉 knoppix 的操作方式,但您可能会发现 suse 的操作非常类似:
- 以只读方式挂载根文件系统
- 为读写分支挂载 tmpfs
- 使用 aufs 将它们层叠起来
- 使用 pivot_root 来改变根文件系统。