D.8。 /etc/rc.d/init.d/checkfs
#!/ bin / sh的
############################################### ######################
# 开始检查
#
# 描述:文件系统检查
#
# 作者:杰拉德·比克曼斯 - [电子邮件保护]
# A.吕布克 - [电子邮件保护]
# DJ 卢卡斯 - [电子邮件保护]
# 更新:布鲁斯·杜布斯 - [电子邮件保护]
#
# 版本:LFS 7.0
#
# 基于 LFS-3.1 及更早版本的 checkfs 脚本。
#
# 来自 man fsck
# 0 - 没有错误
# 1 - 更正文件系统错误
# 2 - 系统应该重新启动
# 4 - 文件系统错误没有得到纠正
# 8 - 操作错误
# 16 - 用法或语法错误
# 32 - Fsck 被用户请求取消
# 128 - 共享库错误
#
############################################### #######################
### BEGIN INIT INFO
# 提供:checkfs
# 必需-开始: udev 交换 $time
# 应该-开始:
# 需要停止:
# 应该停止:
# 默认开始:S
# 默认停止:
# 简短描述:在挂载前检查本地文件系统。
# 描述:在挂载前检查本地文件系统。
# X-LFS-提供者:LFS
### END INIT INFO
. /lib/lsb/init-functions case "${1}" in
启动)
如果 [ -f /fastboot ]; 然后 msg="/fastboot 找到,将省略"
msg="${msg} 文件系统按要求检查。\n" log_info_msg "${msg}"
退出0
fi
log_info_msg "正在以只读模式挂载根文件系统..." mount -n -o remount,ro / >/dev/null
如果 [ ${?} != 0 ]; 然后 log_failure_msg2 msg="\n\n无法检查根目录"
msg="${msg} 文件系统,因为它无法以只读模式挂载" msg="${msg}。\n\n"
msg="${msg}按回车后,系统将" msg="${msg}停止并关机。\n\n"
log_failure_msg "${msg}"
log_info_msg "按 Enter 继续..." wait_for_user
/etc/rc.d/init.d/halt 停止其他
日志_成功_消息2
fi
如果 [ -f /forcefsck ]; 然后 msg="/forcefsck 找到,强制文件"
msg="${msg} 系统根据要求进行检查。" log_success_msg "$msg"
选项=“-f”其他
选项=""
fi
log_info_msg "正在检查文件系统..."
# 注意:-a 选项曾经是 -p; 但这在 fsck.minix 上失败,如果 is_true "$VERBOSE_FSCK"; 然后
fsck ${选项} -a -A -C -T else
fsck ${options} -a -A -C -T >/dev/null
fi 错误值=${?}
如果 [ "${error_value}" = 0 ]; 然后 log_success_msg2
fi
如果 [ "${error_value}" = 1]; 然后 msg="\n警告:\n\n文件系统错误 " msg="${msg} 被发现并已更正。\n" msg="${msg} 您可能需要仔细检查" msg=" ${msg}一切都已正确修复。” log_warning_msg "$msg"
fi
if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; 然后 msg="\nWARNING:\n\n文件系统错误" msg="${msg}被发现并且已经被" msg="${msg}更正,但是"
msg="${msg}错误需要重新启动系统。\n\n" msg="${msg}按回车键后,"
msg="${msg}这个系统将重新启动\n\n" log_failure_msg "$msg"
log_info_msg "按 Enter 继续..." wait_for_user
重启-f
fi
if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then msg="\nFAILURE:\n\n文件系统错误"
msg="${msg} 遇到无法自动修复的" msg="${msg}。\n此系统" msg="${msg}无法继续启动,因此将" msg="${msg}被暂停,直到那些“ msg="${msg} 错误被“ msg="${msg} 系统管理员手动修复。\n\n"
msg="${msg}按回车后,系统将" msg="${msg}停止并关机。\n\n"
log_failure_msg "$msg"
log_info_msg "按 Enter 继续..." wait_for_user
/etc/rc.d/init.d/halt 停止
fi
if [ "${error_value}" -ge 16 ]; then msg="FAILURE:\n\nUnexpected failure " msg="${msg}running fsck. Exit with error " msg="${msg} code: ${error_value}.\n" log_info_msg $msg
退出 ${error_value}
fi
*)
ESAC
退出0
;;
echo "用法:${0} {start}" exit 1
;;
# 结束 checkfs