我有一个小型的Linux机器人,专门负责读取传感器数据,并将数据与只读数据进行比较(即我不会写入数据,但没有做任何事情使其实际只读)本地数据库。
系统不需要在文件系统上写任何东西,除了可能访问本地Web服务时创build的一些临时文件(网页显示的数据,但不logging)
系统在上电时自动启动,只需切断电源即可closures。
有没有一个很好的指导,build立一个系统冷却与突然断电? 我目前正在使用Ubuntu(因为我熟悉它,它运行良好的PC 2,我正在使用)
或者,因为我没有任何应用程序将任何东西写入磁盘(Web服务器的临时文件是例外),我可以逃避不修改系统? 唯一重要的一点是,如果引导过程向terminal抛出一个问题并挂起等待响应,则没有人干预。
看看fsprotect 。 当你安装它并给内核一个神奇的命令行参数时,它会自动修改启动过程,以便原始根文件系统以只读方式加载,而真正的根文件系统是一个aufs (联合文件系统),可以让你进行更改在关机时将被丢弃。
当你想对系统进行修改(例如维护或升级)时,只需要省略特殊的“fsprotect”内核命令行参数。 通常情况下,您需要将“fsprotect”设置为默认设置,并在您想要维护时通过从grub编辑内核命令行进行覆盖。
该软件包在Debian中可用 ,也可能在其他软件包中 。
这是日志文件系统的用途。
如果发生故障并且系统重新启动,它不知道是否通过修改文件是中途 – 所以它必须检查每一个文件找出。 在一个(元数据)日志文件系统中,操作系统在磁盘上写出它打算在日志中做出的改变的大纲。 然后应用这些更改。 因此,在启动时,只需检查日志,看是否在停机时有写操作。 此外,如果有不完整的操作,则可以决定是否有足够的信息来完成更改,或者是否应该回滚更改。 大多数日志文件系统(ext3,4,XFS,JFS,Reiser)只关心元数据 – 即目录条目。 但是有一些文件系统可以复制整个写入事务(BtrFS,ZFS)。 请注意,操作系统认为是写入事务可能与您的操作系统认为是不同的(特别是对于数据库)。 所以即使是全面的数据库备份也不能解决所有的问题。 关键是文件系统处于一致的状态。
任何挂载的只读文件系统在启动时都不需要fsck(除非挂载倒计数达到0)。
除此之外,没有什么是您真正需要担心的。
当然有很多Linux系统可以从RAM启动和运行。 几乎所有的Linux发行版都可以使用tmpfs来创buildram驱动器,如果你需要写入存储的话,在重新启动的时候不会存在。