use*_*979 5 mount fsck fstab e2fsck
我有一个安装和卸载 USB 驱动器的备份脚本。
我只是注意到它警告我:
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Run Code Online (Sandbox Code Playgroud)
我的问题:当运行 mount 命令时,如何让它自动运行 e2fsck?
这是它的外观/etc/fsck
UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 /media/backup_disk_1 auto defaults,rw,noauto 0 3
Run Code Online (Sandbox Code Playgroud)
所以<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
Run Code Online (Sandbox Code Playgroud)
根据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'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3358 次 |
最近记录: |