Ego*_*off 31 partition debian fsck
我有 2TB ext4 分区,上面有 50 万个文件。
我想检查这个分区是否包含任何错误。
我不想搜索坏块,只应该检查逻辑结构。
我已卸载分区并运行fsck /dev/sda2,但 fsck 立即返回退出代码 0,而无需实际检查整个文件系统。
我预计完整的分区检查需要几个小时才能完成。
我已阅读man fsck但没有找到“彻底测试”的选项。
我担心我的分区可能有一些扇区被垃圾数据意外覆盖。
我的硬盘以前连接到另一个操作系统,ext4 分区可能会因该操作系统的错误行为而受到损害。
这就是为什么我要确保整个树结构是完全正确的。
换句话说,我想执行类似于实用程序chkdsk.exe在 Windows 上所做的检查。
我应该在 Debian 上使用什么来完全检查 ext4 文件系统?
Ste*_*itt 34
正如周六提到的?Katsura,e2fsck以“强制”模式运行:
e2fsck -f /dev/sda2
Run Code Online (Sandbox Code Playgroud)
即使系统认为文件系统是干净的,这也会强制检查。“详细”选项也很有帮助:
e2fsck -vf /dev/sda2
Run Code Online (Sandbox Code Playgroud)
作为旁注,不适用于您的情况,但如果您使用 LVM 作为您的存储,您可以使用简洁的小lvcheck工具在已挂载的文件系统上运行“离线”文件系统检查(它使用 LVM 快照和更新文件系统元数据(如果检查未发现任何错误)。
小智 8
此外,您可以添加-y标志以避免回答问题。
从手册:
-y假设yes所有问题的答案都是 ;允许e2fsck以非交互方式使用。
所以从@Sato扩展答案(因为我还不能评论)- 你可以运行:
e2fsck -vfy /dev/sda2
Run Code Online (Sandbox Code Playgroud)
在启动过程中,Linux 系统将检查fstabforcefsck或设备根目录中指定的文件是否存在。如果 fstab 中挂载行的最后一个数字是,0则将在引导期间检查设备。要创建该文件,forcefsck请使用这些命令。
sudo touch /forcefsck
sudo reboot
Run Code Online (Sandbox Code Playgroud)
将此文件放在根目录中,无论 fstab 中的内容如何,在(重新)引导期间都会检查相同的卷。
缺点是在 fsck 期间系统不可用,并且不会响应通过 ssh 等远程请求。
(根据@kusalananda 评论进行编辑)