我的/etc/fstab
主要操作系统分区:
UUID=5ee65c50-5672-42a6-9dcf-8bdba30c38aa / ext4 defaults,noatime,nodiratime,data=writeback,errors=remount-ro 0 1
如果出现任何错误,其中一个选项设置为将分区挂载为只读。
我希望操作系统自动运行fsck
,修复所有问题,然后在发现任何错误时重新启动并将分区设置为只读。我也已经FSCKFIX=yes
入手/etc/defaults/rcS
了目前,没有任何效果!
我可以让它工作的唯一方法是运行 bash 函数rc.local:
TIMEOUT=30
check_disk() {
DEV=/dev/mmcblk0p2
local TPREV=$(date +%s);
while :
do
ro=`awk '$4~/(^|,)ro($|,)/' /proc/mounts | grep "/dev/root"`
if [ ! -z "${ro}" ]
then
echo -e "parition is readonly; running fsck now \n"
fsck -y ${DEV}
reboot
break
fi
# Timeout
local TNOW=$(date +%s)
if ((TNOW - TPREV>=TIMEOUT)); then
break
fi
sleep 1
done
}
check_disk &
我需要循环 forx seconds
因为运行fstab
后重新安装分区rc.local
。
我正在运行 Debian。感谢帮助