ian*_*ian 5 linux shutdown mount readonly
我是一名硬件设计师,努力为嵌入式系统提供安全关闭电源。我知道 Linux 通常会大量使用文件系统并在读取文件时更新元数据 - 即每次文件访问都会产生相应的写入。我相信有可能推迟这次写入。我想知道如果这是一个不确定的延迟会发生什么(即它永远不会发生)。一些背景:
出于操作原因,最好不要在系统关闭期间使用备用电池供电——这意味着我正在考虑 1 到 5 秒的断电保持。这似乎不足以让 O/S 从我们的 S/W 工程师的测试中关闭。到目前为止,我们都是 Linux 的“新手”,一直在使用传统的嵌入式 RTOS。
我们将从闪存驱动器启动并在机器的 RAM 中运行,因此如果我们的闪存写入为零,那么它通常不会因电源故障而损坏。
我们将系统 NV 数据存储在 FLASH 中,该闪存由一个小型微型控制器控制,保证在 10 毫秒内成功写入,所以这很好 - 但是我很难理解 Linux 必须写回它启动的驱动器的内容,如果有的话 - 和如果我们阻止它这样做会有什么后果?
不幸的是,我们目前正在使用 uSDHC 卡运行,所以我不能简单地在硬件中对其进行写保护来找出答案。
从联机帮助页mount
:
-r, --read-only
Mount the filesystem read-only. A synonym is -o ro.
Note that, depending on the filesystem type, state and kernel
behavior, the system may still write to the device. For example,
Ext3 or ext4 will replay its journal if the filesystem is
dirty. To prevent this kind of write access, you may want to mount
ext3 or ext4 filesystem with "ro,noload" mount options or set the
block device to read-only mode, see command blockdev(8).
Run Code Online (Sandbox Code Playgroud)
文件系统层次结构的某些部分需要可写(例如/var/log
,将日志文件放入;通常/tmp
用于存储临时文件)。tmpfs
在这些情况下使用一些非持久分区(又名 ramdisk 、...)。