當 mount 硬碟時老是出現
"EXT3-fs warning: maximal mount count reached, running e2fsck is recommended"
是提醒你該用 e2fsck 做檔案系統的檢查,請依下列步驟處理:
1. 查看目前的 mount 次數及限制
df 查出磁盘的挂载点 (挂载点是一个目录)
tune2fs -l 挂载点 | grep ^M 查看设置的最大挂载次数
$ tune2fs -l /dev/sdb1 | grep ^M
Mount count: 26
Maximum mount count: 22
2. 取消最大 mount 次數檢查
$ tune2fs -c0 -i0 /dev/sdb1
tune2fs 1.39 (29-May-2006)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
3. 查看目前的 mount 次數及限制
$ tune2fs -l /dev/sdb1 | grep ^M
Mount count: 26
Maximum mount count: -1
1. 取消 mount,並做檔案系統檢查及自動修復處理
$ umount /dev/sdb1
$ e2fsck -p /dev/sdb1
(PS.執行 e2fsck 時請務必先 umount 硬碟,以免發生不可預期的錯誤)
2. 如果 e2fsck 有出現其它錯誤,例如:
/dev/sdb1 contains a file system with errors, check forced.
/dev/sdb1: Inode 81969341 has illegal block(s).
/dev/sdb1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
依指示執行 fsck 修復檔案系統錯誤:
$ fsck /dev/sdb1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/sdb1 contains a file system with errors, check forced.
...
3. 所有步驟完成,可以 mount 硬碟了
前面的 fsck 指令是針對「檔案系統」做檢查與修復,如要檢查硬碟有沒有壞軌,則使用 badblocks 指令:
$ badblocks -sv /dev/hdb
checking blocks 0 to 1465138584
checking for bad blocks (read-only test): 0/ 1465138584
...
done
Pass completed, 10 bad blocks found.
常用选项说明:
-l 查看文件系统信息
-c max-mount-counts 设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次数就会强制自检
-i interval-between-checks[d|m|w] 设置强制自检的时间间隔[d天m月w周]
-m reserved-blocks-percentage 保留块的百分比
-j 将ext2文件系统转换为ext3类型的文件系统
-L volume-label 类似e2label的功能,可以修改文件系统的标签
-r reserved-blocks-count 调整系统保留空间
-o [^]mount-option[,...] Set or clear the indicated default mount options in the filesystem. 设置或清除默认挂载的文件系统选项
编辑
tune2fs -c 30 /dev/hda1 设置强制检查前文件系统可以挂载的次数
tune2fs -c -l /dev/hda1 关闭强制检查挂载次数限制。
tune2fs -i 10 /dev/hda1 10天后检查
tune2fs -i 1d /dev/hda1 1天后检查
tune2fs -i 3w /dev/hda1 3周后检查
tune2fs -i 6m /dev/hda1 半年后检查
tune2fs -i 0 /dev/hda1 禁用时间检查
tune2fs -j /dev/hda1 添加日志功能,将ext2转换成ext3文件系统
tune2fs -r 40000 /dev/hda1 调整/dev/hda1分区的保留空间为40000个磁盘块
tune2fs -o acl,user_xattr /dev/hda1 设置/dev/hda1挂载选项,启用Posix Access Control Lists和用户指定的扩展属性
开机取消自检:
tune2fs -l /dev/sdb1 | grep -E ‘Maximum mount count:|Check interval’
tune2fs -i 0 -c 0 /dev/sdb1