有没有办法断电后自动进行fsck?

有没有办法断电后自动进行fsck?

我有一个USB硬盘外部3文件系统(它是 Plex 服务器媒体驱动器),连接到我的树莓派,并且断电后它不会自动安装并且存在超级块读取问题。在驱动器上执行操作后fsck,它会恢复到完全工作状态。

问题是——我的覆盆子是无头服务器,我现在住的地方几乎每天都会断电,所以我ssh每次都需要fsck让磁盘重新运行。有什么办法可以:

  1. 自动执行fsck(包括回答“是的“ 问题)?

  2. 检测到电源故障,以便它会在启动时执行此操作?

答案1

要在每次启动时强制进行 fsck,请在根文件系统中将倒计时设置为 1:

tune2fs -c 1 /dev/mmcblk0p2

如果tune2fs没有安装,可以在压缩e2fsprogs包中找到。

答案2

另一种方法是添加命令

touch /forcefsck

在你的/etc/rc.local

这会在每次机器启动时在根目录中创建一个文件forcefsck,告诉 fsck 在下次重新启动时运行。

请注意,fsck 将在检查文件系统后删除该文件 - 这就是您每次都需要重新创建它的原因。

答案3

基于该系统是外部3用于 Plex 服务器媒体存储的文件系统,最好的办法可能是从外部3文件系统的默认日志模式data=ordered到最安全的模式data=journal。在媒体服务器上,写入速度的影响不应该是一个大问题,并且数据日志应该消除对任何fsck.

根据硬件的不同,可能需要进行其他调整才能使其更好地工作,例如禁用 USB 驱动器的缓存,(如果结果证明这是一个问题),或者将数据日志放在单独的设备上(例如小型 SSD)。

相关内容