您可以通过拍摄 LVM 快照,然后对快照进行扫描,对在线文件系统(例如 root)进行值得信赖的 EXT4 文件系统扫描,如下所示:
制作快照:
lvcreate --snapshot --size 1G --name lv_root_SS --chunksize 4k /dev/VG1/lv_root
EXT4 扫描:(
e2fsck -f /dev/dm-3
新快照的设备名称为 dm-3)删除快照:
lvremove --yes VG1/lv_root_SS
那行得通吗?
e2fsck
没有抱怨并且似乎扫描得很好。
答案1
是的,你可以做到这一点,甚至还有一个工具可以做到这一点:lvcheck
。这遵循与您的描述相同的方法,但有一些补充:
- 它列出了所有活动的 LV(可以使用快照进行检查)
- 它检查自上次检查每个 LV 以来已经过去了多长时间
- 对于每个 LV,对其进行快照,运行
fsck
,删除快照 - 通过检查的 LV 会更新其上次检查时间戳(在实际卷中)
- 失败的 LV 可以在电子邮件中列出
您可以在定期作业中进行设置(例如使用 cron 或 systemd 计时器),它将确保您的文件系统得到适当的检查和更新。
答案2
实际上,e2scrub
e2fsprogs 中包含了一个 systemd 服务。这与 e2fsprogs 执行相同的操作,lvscan
但保持最新。