切断 Linux 机器的电源。防止在重启时检查文件系统(并希望造成损坏!)

切断 Linux 机器的电源。防止在重启时检查文件系统(并希望造成损坏!)

我有一个小型的Linux机器,专门负责读取传感器数据并将值与只读(即,我不会向其中写入内容,但没有做任何事情使其实际上变为只读)本地数据库进行比较。

系统不需要在文件系统上写入任何内容,除了访问本地网络服务时创建的一些临时文件(网页显示数据,但不记录)

通电后系统自动启动,只要切断电源即可关闭。

有没有好的指南来设置一个系统,以便在突然断电时保持凉爽?我目前正在使用 ubuntu(因为我熟悉它,而且它在我正在使用的 fit pc 2 上运行良好)

或者,如果我没有应用程序向磁盘写入任何内容(Web 服务器临时文件除外),我可以不修改系统吗?唯一重要的一点是,如果启动过程在终端上抛出一个问题并挂起等待响应,则没有人可以干预。

答案1

调查文件系统保护。当您安装它并向内核提供一个神奇的命令行参数时,它会自动修改启动过程,以便原始根文件系统以只读方式挂载,而真正的根文件系统是奥夫斯(联合文件系统)允许您进行更改,这些更改将在断电时被丢弃。

当您想要更改系统(例如维护或升级)时,只需省略特殊的“fsprotect”内核命令行参数。通常,您会将“fsprotect”设置为默认值,并在您想要进行维护时通过从 grub 编辑内核命令行来覆盖它。

该软件包是在 Debian 中可用,或许还有其他。

答案2

这就是日志文件系统的用途。

如果发生故障并且系统重新启动,它不知道它是否正在修改文件 - 因此它必须检查每个文件才能找出原因。使用(元数据)日志文件系统,操作系统会在磁盘上写出它打算在日志中进行的更改的概要。然后它会应用这些更改。因此,在启动时,它只需检查日志以查看在中断时是否有写入操作。此外,如果操作未完成,那么它可以决定是否有足够的信息来完成更改或是否应该回滚更改。大多数日志文件系统(ext3,4、XFS、JFS、Reiser)只担心元数据 - 即目录条目。但有些文件系统会复制整个写入事务的计划(BtrFS、ZFS)。请注意,操作系统认为的写入事务可能与您的操作系统认为的写入事务不同(特别是对于数据库)。因此,即使是全数据日志也无法解决所有问题。重点是文件系统处于一致状态。

任何以只读方式挂载的文件系统在启动时都不需要进行 fsck(除非其挂载倒计时达到 0)。

除此之外你真的不需要担心任何事情。

当然,有很多 Linux 系统会从 RAM 启动并运行。在几乎任何 Linux 发行版上,如果您需要重启后不会保留的写入存储,则可以使用 tmpfs 创建 RAM 驱动器。

相关内容