我有以下设置:
- 硬件:RPi 3 型号 B
- 操作系统:4.4.37-1-ARCH #1 SMP armv7l GNU/Linux
- 文件系统:/boot(vfat)、/(ext4)、/var(ext4)
- 隔板:三个;安装:/boot、/、/var
- 存储:MLC Nand Flash Micro SD
最近,我在启动时收到内核恐慌错误,涉及 lib 中的一个文件,结果发现该文件已损坏。
kernel panic "/sbin/init" error while loading shared libraries /usr/lib/libseccomp.so.2 invalid elf header
所以我的理论是,由于我的根文件系统不是只读的,并且我使用的是 nand 闪存并且存在意外关闭,因此某些文件已损坏。
目标是使根文件系统只读,以便解决问题。
不幸的是,我找不到任何关于如何在 Arch Linux 上创建只读根文件系统的可靠来源。
还发布在 Arch Linux 论坛上:https://archlinuxarm.org/forum/viewtopic.php?f=9&t=11621
答案1
如果有人感兴趣,我最终所做的就是修改/boot/cmdline.txt
并替换rw
为ro
root:
root=/dev/mmcblk0p2 ro
还需修改fstab
如下,将boot
分区设置为只读。请注意,这/var
是不是只读:
/dev/mmcblk0p1 /boot vfat defaults,ro,errors=remount-ro 0 0
/dev/mmcblk0p3 /var ext4 defaults,noatime 0 2