不久前,我安装了一些带有 Raspbian 的 Rasperry Pi 2 B+,为了减少 SD 卡的使用,我按照一些说明创建了 ramdisk。
为此,我添加了以下几行/etc/fstab
:
tmpfs /mnt/ramdisk tmpfs size=10M,nodiratime,noatime,exec 0 0
none /var/run tmpfs size=50M,noatime 0 0
none /var/log tmpfs size=50M,noatime 0 0
当时这样做效果很好。
与此同时,我还设置了带有 Raspberry OS 的 Pi 3B+,但没有添加该 ramdisk。在我注意到这一点并应用相同的更改后,我遇到了奇怪的行为。我无法再重新启动:
pi@raspberrypi:~ $ sudo reboot
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Failed to talk to init daemon.
我只能通过切换电源来重启。即便如此,我还是注意到有时/
系统以只读方式挂载,而再次切换电源也无法解决这个问题。
现在,我只需安装一个新的映像2020-08-20-raspios-buster-arm64
或2021-03-04-raspios-buster-armhf
(+ssh
启动文件夹中的文件)并将行添加到即可重现该错误/etc/fstab
。然后我就无法sudo reboot
再使用任何内容了。
在最近的 Raspberry OS 中这些选项是否不再有效?通常不建议将这些文件夹挂载到 ramdisk 吗?
当我执行时,sudo mount -a
我没有收到任何错误消息。
答案1
添加这些条目会fstab
干扰 Systemd。
/var/run
/run
在现代 Debian 上,它只是一个符号链接。/run
反过来,它已经是一个 tmpfs。这个fstab
条目(或者说它的意图)完全是多余的,而且已经存在很长时间了。
至于/var/log
,这不应该导致任何问题。更好的办法可能是简单地正确设置写入的内容,这样您就可以拥有持久的严重错误日志,而无需写入无用的信息。
如果需要,您也可以直接删除 rsyslog。您仍将拥有可使用 访问的默认内存日志journalctl
。