在 Linux 里面有一个 e2fsck 的指令,可以检查及修复档案系统。它的参数包括有:
-a: 检查 partition,如发现问题会自动修复。
-b: 设定 superblock 位置。
-B size: 指定 size 作为区块大小。
-c: 检查 partition 是否有坏轨。
-C file: 将检查结果储存到 file。
-d: 输出 e2fsck debug 结果。
-f: e2fsck 预设只会对错误的档案系统检查,加上 -f 是强制检查。
-F: 在检查前将硬盘的 buffer cache 清空,避免发生错误。
-l list: 记录了坏轨区块加入 list 中。
-d : 打印 e2fsck 的 debug 结果。
-f : 强制检查。
-n: 以 (read-only) 开启档案系统
-p: 关闭互动模式,如有问题自动修复,等同 -a。
-v: 显示详细报告。
-y: 启用使用者互动模式。
使用例子
检查 /dev/sda1 是否有问题,如发现问题便自动修复:
e2fsck -a -y /dev/sda1
执行 e2fsck 或 fsck 前请先 umount partition,否则有机会令档案系统毁损。如果需要对根目录 (/) 进行检查及修复,便需要进入 singal user mode 执行。
使用例子
检查 /dev/sda1 是否有问题,如发现问题便自动修复:
e2fsck -a -y /dev/sda1
执行 e2fsck 或 fsck 前请先 umount partition,否则有机会令档案系统毁损。如果需要对根目录 (/) 进行检查及修复,便需要进入 singal user mode 执行.
e2fsck(ext2 file system check)
功能说明:检查ext2文件系统的正确性。
语法:e2fsck [-acCdfFnprsStvVy][-b <superblock>][-B <区块大小>][-l <文件>][-L <文件>][设备名称]
补充说明:e2fsck执行后的传回值及代表意义如下。
0 没有任何错误发生。
1 文件系统发生错误,并且已经修正。
2 文件系统发生错误,并且已经修正。
4 文件系统发生错误,但没有修正。
8 运作时发生错误。
16 使用的语法发生错误。
128 共享的函数库发生错误。
参数:
-a 不询问使用者意见,便自动修复文件系统。
-b<superblock> 指定superblock,而不使用预设的superblock。
-B<区块大小> 指定区块的大小,单位为字节。
-c 一并执行badblocks,以标示损坏的区块。
-C 将检查过程的信息完整记录在file descriptor中,使得整个检查过程都能完整监控。
-d 显示排错信息。
-f 即使文件系统没有错误迹象,仍强制地检查正确性。
-F 执行前先清除设备的缓冲区。
-l<文件> 将文件中指定的区块加到损坏区块列表。
-L<文件> 先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的。
-n 以只读模式开启文件系统,并采取非互动方式执行,所有的问题对话均设置以"no"回答。
-p 不询问使用者意见,便自动修复文件系统。
-r 此参数只为了兼容性而存在,并无实际作用。
-s 如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作。
-S 不管文件系统的字节顺序,一律交换字节顺序。
-t 显示时间信息。
-v 执行时显示详细的信息。
-V 显示版本信息。
-y 采取非互动方式执行,所有的问题均设置以"yes"回答。