我跟着这指南,并且理论上,文件系统是只读的。
$ 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 位时,无论出于何种原因,固件仍然不会告诉操作系统它是只读的。