Linux下如何使用fsck检查文件系统错误(linuxfsck)

Linux操作系统提供了很多工具用于维护文件系统,其中fsck是其中的重要工具。fsck (文件系统检查) 用于检查和修复Linux文件系统的错误。它可以帮助检测磁盘空间上的操作系统错误,因而可以恢复结构损坏的文件和目录。

在Linux下使用fsck检查文件系统错误需要先进入Single User模式,这是一种特殊的Linux系统模式,只允许一个登录用户使用系统,因此不会遭受正常用户正在使用系统时所产生的并发访问带来的数据搞乱等影响。

下面介绍Linux下如何使用fsck工具检查文件系统错误。首先启动系统,然后使用efi或grub2引导系统,在系统启动的过程中,按”Ctrl+X”键进入安全模式。

接下来,执行”fsck -A”命令来检查文件系统中所有文件系统错误。输入fsck命令会自动检测文件系统类型和挂载情况,然后对每一个文件系统分别执行检查任务:

# fsck -A
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sda1: clean, 11/152096 files, 523533/6084096 blocks
/dev/sda2: clean, 5/786432 files, 348270/31457280 blocks
/dev/sdb1: clean, 5/607238 files, 1280459/24122624 blocks
fsck.ext3: No such file or directory while trying to open /dev/sdc1
The superblock could not be read or does not describe a correct ext2 filesystem.
If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else),
then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:
...

当执行完fsck检查后,如果没有发现任何错误,那么文件系统检查就完成了,否则需要进一步检查。执行检查后系统会显示所有文件系统的检查结果,如果发现某个文件系统错误还可以运行fsck专门检查该文件系统:

# fsck /dev/sda1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sda1 has 11/152096 files (7.1% non-contiguous), 523533/6084096 blocks

如果fsck检查后发现文件系统错误,可以使用-y或-c参数自动修复错误:

# fsck -y /dev/sda1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sda1 has 11/152096 files (7.1% non-contiguous), 523533/6084096 blocks
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: ********** FILE SYSTEM WAS MODIFIED **********
/dev/sda1: 11/152096 files (6.5% non-contiguous), 523533/6084096 blocks

经过上述操作,就可以执行fsck检查操作,来检查和修复Linux文件系统的错误。此时,如果文件系统中存在任何问题,fsck就会发现并纠正它们,以便系统下次启动的时候正常工作。另外,有时我们也可以挂载文件系统并手工修复错误,但这需要对文件系统有较深入的了解,因此建议在执行文件系统检查和修复之前先备份系统重要数据等先进行确认。


数据运维技术 » Linux下如何使用fsck检查文件系统错误(linuxfsck)