我们将要讨论的工具是“tune2fs”文件系统管理实用程序。使用“tune2fs”,我们可以导出一些与文件系统健康检查相关的重要信息。
最后一次检查文件系统/dev/sdx
是什么时候?
# tune2fs -l /dev/sdbX | grep Last\ c Last checked: Sun Dec 13 09:14:22 2014
我们的/dev/sdX
文件系统已经安装了多少次:
# tune2fs -l /dev/sdbX | grep Mount Mount count: 157
在强制文件系统检查之前允许挂载多少次:
# tune2fs -l /dev/sdbX | grep Max Maximum mount count: -1
根据以上输出,我们可以建立以下信息摘要。上次检查“/dev/sdbX”文件系统是在“Sun Dec 13 09:14:22 2014”。自上次检查以来,在下一次文件系统fsck检查之前,此文件系统已装载“157”次,最大挂载次数值为“-1”表示禁用fsck。
让我们讨论一下在/etc/fstab
文件中找到的系统配置选项,该文件包含所有启动时可装载的分区及其相关装载选项。
# blkid | grep sdb1 /dev/sdb1: UUID="c6e22f63-e63c-40ed-bf9b-bb4a10f2db66" TYPE="ext2" # grep c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /etc/fstab UUID=c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /mnt ext2 errors=remount-ro 0 0
最后一列是第6列,也称为fsck PASS列,fsck使用该列确定fsck是否应在安装文件系统之前检查文件系统,以及检查“/etc/fstab”中给定分区的顺序。fstab PASS列的可能条目为0、1和2。
- 0 - 已禁用,即不检查文件系统
- 1 - 具有此传递值的分区具有更高的优先级并首先检查。此值通常设置为根
/
partition - 2 - 将最后检查具有此通行值的分区
对root分区强制fsck
强制对根分区(如“/dev/sda1”)执行fsck文件系统检查的最简单方法是:
在分区的根目录中创建一个名为“forcefsck”的空文件。
# touch /forcefsck
此空文件将临时覆盖任何其他设置,并在下次系统重新启动时强制“fsck”检查文件系统。
检查文件系统后,“forcefsck”文件将被删除,因此下次重新启动文件系统时不会再次检查文件系统。
为了每次重新启动时强制检查文件系统,我们需要操纵文件系统的“Maximum mount count 最大挂载计数”参数。
下面的linux命令将确保每次linux系统重新启动时都检查文件系统“/dev/sdb1”:
# tune2fs -c 1 /dev/sdb1
或者,我们可以在每10次重新启动后执行FSCK:
# tune2fs -c 10 /dev/sdb1
对其他非root分区强制FSCK
对所有其他非根分区强制FSCK的唯一方法是操纵文件系统的“Maximum mount count最大挂载计数”参数,
并在“/etc/fstab”配置文件中设置PASS值。
例如:
UUID=c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /mnt ext2 errors=remount-ro 0 2
并将maximum mounts filesystem参数更改为正整数,具体取决于您希望允许在不检查的情况下挂载指定文件系统的次数。
每次重新启动时强制fsck:
# tune2fs -c 1 /dev/sdb1
或者,我们可以将FSCK设置为在每5次重新启动后检查文件系统:
# tune2fs -c 5 /dev/sdb1
要禁用fsck:
# tune2fs -c 0 /dev/sdb1 或者 # tune2fs -c -1 /dev/sdb1
它将把文件系统的“Maximum mount count最大挂载计数”参数设置为“-1”。