我刚刚设法让 raspberry pi 网络启动工作(摆脱 SD 卡真是太好了)。我以前使用过网络启动,但只用于成像,从未使用过功能齐全的远程文件系统。因为我现在要处理代表 pi 状态的 2 个独立系统(带有 RAM、CPU 寄存器等的 pi 和包含文件系统的服务器)。我认为任何一个发生故障都会非常糟糕,因为它会使文件系统处于潜在的不安全状态(就像刚刚断电一样)。
因此,我开始疑惑,是否有任何方便的方法可以关闭存储服务器,但首先触发 pi 关闭?我知道我可以通过 ssh 运行关机脚本,但我在想,既然我已经可以访问根文件系统,是否可以进行更改,从而立即正常关机?我考虑过在 cron 中添加一个作业,但这不是立即的,或者对系统文件做一些不愉快的事情,但这很难说是正常关机。这个问题主要是假设性的,因为已经有很多可能的关机选项,但我对仅使用基本 rasbian 安装的纯文件系统方法很好奇。
答案1
首先:不要这样做——接下来的事情纯粹是学术练习。
现在:我们必须了解文件系统元数据和文件数据之间的区别。在文件系统挂载时更改前者会导致损坏,但更改文件数据又是另一回事。所以这可行(但仍然不是一个好主意)
- 将标志文件写入文件系统在 Pi 上。这应该足够长,以确保其内容存储在单独的块中,而不是在 inode 中。
- 在 Pi 上创建一个 cron 作业,
- 删除缓存(以便真正读取文件)
- 读取文件
- 使用文件内容来决定是否关机
- 找到这个区块在存储服务器上
- 要关闭 Pi,请将此块更改为内容,使得 Pi 在下一个 cron 作业上启动关机(确保内容是您之前所期望的!)。