fsck命令

时间:2019-04-29 03:17:32  来源:igfitidea点击:

FSCK-检查和修复LINUX文件系统

fsck

fsck用于检查和选择修复一个或多个Linux文件系统。执行fsck命令时,可以指定安装点,例如/,设备可以指定/ dev / sda1,也可以指定UUID。如果没有文件系统传递到命令行并且没有传递-A选项,则fsck将使用/ etc / fstab中的条目进行检查。Linux的许多发行版将在x天数或x次重新引导后运行自动的fsck。运行fsck命令时,应始终先卸载文件系统。这将减少发生任何损坏的机会。

fsck-错误代码:

fsck命令返回的退出代码是以下条件的和值:

  • 0-无错误
  • 1-更正了文件系统错误
  • 2-系统应重新启动
  • 4-文件系统错误未得到纠正
  • 8-操作错误
  • 16-使用或语法错误
  • 32-Fsck被用户请求取消
  • 128-共享库错误

fsck命令的示例

永远不要在已挂载的文件系统上运行fsck。

显示已挂载的文件系统

[root@centos ~]# mount | grep "/dev/sd*"
tmpfs on /dev/shm type tmpfs
(rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sdb1 on /test1 type ext3 (rw)
/dev/sdb2 on /test2 type ext3 (rw)
/dev/sdb3 on /test3 type ext3 (rw)
/dev/sdb5 on /test4 type ext3 (rw)
/dev/sdb6 on /test5 type ext3 (rw)
/dev/sdb7 on /test6 type ext3 (rw)
/dev/sdb8 on /test7 type ext3 (rw)
[root@centos ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/vg_centos-lv_root
                       6748936   3193112   3212992  50% /
tmpfs                   515368        80    515288   1% /dev/shm
/dev/sda1               495844     73013    397231  16% /boot
/dev/sdb1               287782     10293    262631   4% /test1
/dev/sdb2               295555     10287    270007   4% /test2
/dev/sdb3               295555     10287    270007   4% /test3
/dev/sdb5               295561     10287    270014   4% /test4
/dev/sdb6               295561     10287    270014   4% /test5
/dev/sdb7               295561     10287    270014   4% /test6
/dev/sdb8               264445     10287    240505   5% /test7

fsck-基本检查

卸载的命令是umount,不带n

[root@centos ~]# umount /dev/sdb1

[root@centos ~]# fsck /dev/sdb1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb1: clean, 14/74296 files, 19679/297168 blocks

### 指定了文件系统的名称而不是设备的名称。

[root@centos ~]# umount /test2
[root@centos ~]# fsck /test2
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb2: clean, 11/76608 files, 19964/305232 blocks

仅在卸载文件系统时执行fsck

-M参数指示fsck命令仅在未安装文件系统的情况下运行检查。在我们的示例中,我们没有卸载文件系统,因此未采取任何措施。如果未对已安装的文件系统采取任何措施,则返回返回代码0。我们可以通过执行echo $?来验证这一点。命令。

[root@centos ~]# fsck -M /dev/sdb3
fsck from util-linux-ng 2.17.2
[root@centos ~]# echo $?
0

养成每次运行fsck时都使用-M选项的习惯,因为这样可以防止意外地对已挂载的文件系统运行fsck。

fsck-自动修复错误

通过指定-y参数,fsck将尝试自动修复/修复任何错误。

[root@centos ~]# fsck -y /dev/sdb3 
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb3: clean, 11/76608 files, 19964/305232 blocks

运行fsck但不修复任何错误

通过使用-n参数,我们将运行fsck,但是,它将不会尝试对我们的文件系统进行任何修复。并非所有文件系统都接受-n选项。有时您可能需要运行-N选项,该选项将不进行任何修复,而只会报告将要执行的操作。

[root@centos ~]# fsck -n /dev/sdb3 
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb3: clean, 11/76608 files, 19964/305232 blocks