如何修复文件系统损坏?

如何修复文件系统损坏?

Debian 在外部 USB SSD 驱动器上。dmesg日志文件中有一些错误:

...[    3.320718] EXT4-fs (sdb2): INFO: recovery required on readonly filesystem
[    3.320721] EXT4-fs (sdb2): write access will be enabled during recovery
[    5.366367] EXT4-fs (sdb2): orphan cleanup on readonly fs
[    5.366375] EXT4-fs (sdb2): ext4_orphan_cleanup: deleting unreferenced inode 6072
[    5.366426] EXT4-fs (sdb2): ext4_orphan_cleanup: deleting unreferenced inode 6071
[    5.366442] EXT4-fs (sdb2): 2 orphan inodes deleted
[    5.366444] EXT4-fs (sdb2): recovery complete
...

系统启动并正常工作。是否可以完全修复,正确的方法是什么?

答案1

fsck您可以指示文件系统在安装后立即执行操作,如下所示:

方法#1:使用/forcefsck

您通常可以安排在下次重新启动时进行检查,如下所示:

$ sudo touch /forcefsck
$ sudo reboot

方法#2:使用关机

您还可以shutdown通过开关告诉命令这样做-F

$ sudo shutdown -rF now

笔记:第一种方法是实现此目的的最通用方法!

方法#3:使用tune2fs

您还可以使用tune2fs,它可以设置文件系统本身的参数,以在下次尝试安装时强制进行检查。

$ sudo tune2fs -l /dev/sda1
Mount count: 3
Maximum mount count: 25

因此,您必须使用以下命令将“安装计数”设置为高于 25:

$ sudo tune2fs -C 26 /dev/sda1

检查更改后的值tune2fs -l,然后重新启动!

笔记:在我使用的 3 个选项中tune2fs,它可以强制检查任何文件系统,无论它是主文件系统 ( /) 还是其他文件系统。

补充笔记

您通常会看到与格式化为 ext2/3/4 的分区关联的“最大安装计数:”和“检查间隔:”参数。通常它们的配置如下:

$ tune2fs -l /dev/sda5 | grep -E "Mount count|Maximum mount|interval"
Mount count:              178
Maximum mount count:      -1
Check interval:           0 (<none>)

当这样设置参数时,设备将永远不会执行fsck安装过程中的操作。这对于大多数发行版来说都是相当典型的。

有两种力量驱动支票。安装数量或经过时间。 “检查间隔”是基于时间的间隔。你可以每 2 周说一次这个争论,2w。请参阅tune2fs手册页以获取更多信息。

笔记:还要确保了解这tune2fs是文件系统命令,而不是设备命令。因此,它不适用于任何旧设备,/dev/sda除非那里有 ext2/3/4 文件系统,否则该命令tune2fs毫无意义,它必须用于已使用这些类型的文件系统之一格式化的分区。

参考

答案2

建议执行fsck卸载该分区/dev/sdb2 如果您在该设备上没有什么重要的事情,如果这不起作用,请尝试使用 Live CD 进行 fsck。

$ sudo fsck /dev/sdb2

答案3

相信您需要运行 fsck 类型的操作。您可以尝试fsck按如下方式运行:

$ sudo fsck /dev/sdb2

相关内容