我有一个备份脚本,可以安装和卸载USB驱动器。
我只是注意到它警告我:
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
我的问题:运行mount命令时,如何使其自动运行e2fsck?
这就是它的样子/etc/fsck
UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 /media/backup_disk_1 auto defaults,rw,noauto 0 3
所以,<pass>
是3
的,所以我期待fsck
在需要时运行。
编辑
根据给定的答案,这就是我最终这样做的方式:
(在Bash脚本中)
function fsck_disk {
UUID=$1
echo "Checking if we need to fsck $UUID"
MCOUNT=`tune2fs -l "UUID=$UUID" 2> /dev/null | sed -n '/Mount count:\s\+/s///p'`
if [ "$MCOUNT" -eq "$MCOUNT" ] 2> /dev/null
then
echo "Mount count = $MCOUNT"
if (( $MCOUNT > 30 ))
then
echo "Time to fsck"
fsck -a UUID=$UUID \
1>> output.log \
2>> error.log
else
echo "Not yet time to fsck"
fi
fi
}
fsck_disk a60b1234-c123-123e-b4d1-a4a111ab2222
根据man fstab
:
第六个字段(fs_passno)。fsck(8)程序使用此字段来确定重新引导时文件系统检查的执行顺序。根文件系统应使用fs_passno指定为1,其他文件系统应将fs_passno指定为2。将顺序检查驱动器中的文件系统,但是将同时检查不同驱动器上的文件系统以利用硬件中可用的并行性。 。如果第六个字段不存在或为零,则返回零值,并且fsck将假定不需要检查文件系统。
所以3
是空的。而且,fstab
对启动时间的影响并不是每次安装设备时都会检查。因此,要在启动期间进行检查,请将第6个字段更改为2
。如果您想检查每个挂载,则可以通过简单的脚本甚至使用别名(例如
alias bk_mount='fsck -a UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 && \
mount /media/backup_disk_1'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句