如何使 Raspberry Pi OS 文件系统真正只读(重启后 SD 卡的 SHA512 校验和相同)

如何使 Raspberry Pi OS 文件系统真正只读(重启后 SD 卡的 SHA512 校验和相同)

我跟着指南,并且理论上,文件系统是只读的。

$ cat /boot/cmdline.txt
console=serial0,115200 console=tty1 root=PARTUUID=5838cc20-02 rootfstype=ext4 elevator=deadline rootwait fbcon=map:10 fbcon=font:VGA8x8 fastboot fsck.mode=skip noswap ro systemd.volatile=state

$ cat /etc/fstab
proc                  /proc proc  defaults                    0 0
PARTUUID=5838cc20-01  /boot vfat  defaults,ro                 0 2
PARTUUID=5838cc20-02  /     ext4  defaults,noatime,ro,noload  0 1

话虽如此,我注意到 SD 卡的 SHA512 校验和在重启后发生了变化。

unix.stackexchange.com 上的某人指出这可能是由于日志记录引起的,禁用它noload应该会有所帮助,但 SD 卡的 SHA512 校验和在重启后仍然会发生变化。

编辑:我相信该/boot分区是造成 SHA512 校验和不一致的原因。

我可能天真地认为运行一个真正的只读文件系统(比如 Tails)很容易配置。

我错过了什么?

答案1

弄清楚了!

macOS 正在将隐藏文件和/或文件夹(.fseventsd.DS_Store和/或.Spotlight-V100)添加到boot卷。

运行以下命令禁用 macOS 上的卷自动挂载,boot解决了该问题。

volume_path="/Volumes/boot"
volume_uuid=`diskutil info "$volume_path" | awk '/Volume UUID:/ { print $3 }'`
echo "UUID=$volume_uuid none msdos rw,noauto" | sudo tee -a /etc/fstab

答案2

请注意,从软件方面来看,您的 SD 卡仅是“只读”的。root 可以随时更改这一点,甚至可以进入较低级别,如 SD 卡固件。为了获得更好的只读性,您需要进入较低级别,最好是闪存本身。

SD 卡还有某种固件(硬件?)版本的写保护: https://github.com/BertoldVdb/sdtool

但我不知道这到底有多可靠。据我所知,对此的研究并不多。

根据这里的描述:

https://mvidakovic.blogspot.com/2019/08/the-ultimate-read-only-file-system-on.html

听起来设备可以在硬件级别受到保护(这很好)。或者当使用 WP 位时,无论出于何种原因,固件仍然不会告诉操作系统它是只读的。

相关内容