D.8. /etc/rc.d/init.d/checkfs
#! / bin / sh
################################################ ######################
# ເລີ່ມຕົ້ນການກວດສອບ
#
# ລາຍລະອຽດ : ກວດສອບລະບົບໄຟລ໌
#
# ຜູ້ຂຽນ : Gerard Beekmans - [email protected]
# ອ.ລືເບ - [email protected]
# DJ Lucas - [email protected]
# ອັບເດດ: Bruce Dubbs - [email protected]
#
# ລຸ້ນ : LFS 7.0
#
# ອີງໃສ່ checkfs script ຈາກ LFS-3.1 ແລະກ່ອນຫນ້ານັ້ນ.
#
# ຈາກຜູ້ຊາຍ fsck
# 0 - ບໍ່ມີຂໍ້ຜິດພາດ
# 1 - ແກ້ໄຂຂໍ້ຜິດພາດຂອງລະບົບໄຟລ໌
# 2 - ລະບົບຄວນຈະ rebooted
# 4 - ຄວາມຜິດພາດລະບົບໄຟລ໌ປະໄວ້ uncorrected
# 8 - ການເຮັດວຽກຜິດພາດ
# 16 - ການນໍາໃຊ້ຫຼື syntax ຜິດພາດ
# 32 - Fsck ຖືກຍົກເລີກໂດຍການຮ້ອງຂໍຂອງຜູ້ໃຊ້
# 128 - ຄວາມຜິດພາດໃນຫ້ອງສະໝຸດທີ່ແບ່ງປັນ
#
############################################### #######################
### ເຂົ້າຮ່ວມຂໍ້ມູນ
# ສະໜອງ: checkfs
# Required-Start: udev swap $time
# ຄວນເລີ່ມຕົ້ນ:
# ຕ້ອງຢຸດ:
# ຄວນຢຸດ:
# Default-Start: S
# ການຢຸດເລີ່ມຕົ້ນ:
# ຄໍາອະທິບາຍສັ້ນ: ກວດເບິ່ງລະບົບໄຟລ໌ທ້ອງຖິ່ນກ່ອນທີ່ຈະຕິດຕັ້ງ.
# ລາຍລະອຽດ: ກວດເບິ່ງລະບົບໄຟລ໌ທ້ອງຖິ່ນກ່ອນທີ່ຈະຕິດຕັ້ງ.
# X-LFS-Provided-By: LFS
### ສິ້ນສຸດຂໍ້ມູນພາຍໃນ
. /lib/lsb/init-functions case "${1}" ໃນ
ເລີ່ມຕົ້ນ)
ຖ້າ [ -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}ຫຼັງຈາກທີ່ທ່ານກົດ Enter, ລະບົບນີ້ຈະຖືກຢຸດ " msg="${msg} ແລະປິດເຄື່ອງ.\n\n"
log_failure_msg "${msg}"
log_info_msg "ກົດ Enter ເພື່ອສືບຕໍ່..." wait_for_user
/etc/rc.d/init.d/halt ຢຸດອີກ
log_success_msg2
fi
ຖ້າ [ -f /forcefsck ]; ຈາກນັ້ນ msg="/forcefsck ພົບ, ບັງຄັບໄຟລ໌"
msg="${msg} ກວດສອບລະບົບຕາມທີ່ຮ້ອງຂໍ." log_success_msg "$msg"
options="-f" ອື່ນ
ຕົວເລືອກ = ""
fi
log_info_msg "ກຳລັງກວດສອບລະບົບໄຟລ໌..."
# ໝາຍເຫດ: -a ທາງເລືອກທີ່ໃຊ້ເປັນ -p; ແຕ່ນີ້ລົ້ມເຫລວ e.g. ໃນ fsck.minix ຖ້າ is_true "$VERBOSE_FSCK"; ແລ້ວ
fsck ${options} -a -A -C -T ອື່ນ
fsck ${options} -a -A -C -T >/dev/null
fi error_value=${?}
ຖ້າ [ "${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
ຖ້າ [ "${error_value}" = 2 -o "${error_value}" = 3 ]; ຈາກນັ້ນ msg="\nຄໍາເຕືອນ:\n\nຄວາມຜິດພາດຂອງລະບົບໄຟລ໌ " msg="${msg}ໄດ້ຖືກພົບເຫັນ ແລະໄດ້ຮັບການແກ້ໄຂ " msg="${msg}, ແຕ່ລັກສະນະຂອງ "
msg="${msg}ຂໍ້ຜິດພາດຮຽກຮ້ອງໃຫ້ລະບົບນີ້ປິດເປີດໃໝ່.\n\n" msg="${msg}ຫຼັງຈາກທີ່ທ່ານກົດ enter, "
msg="${msg}ລະບົບນີ້ຈະຖືກປິດເປີດໃໝ່\n\n" log_failure_msg "$msg"
log_info_msg "ກົດ Enter ເພື່ອສືບຕໍ່..." wait_for_user
reboot -f
fi
ຖ້າ [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; ຈາກນັ້ນ msg="\nFAILURE:\n\nບັນຫາລະບົບໄຟລ໌"
msg="${msg}ໄດ້ພົບທີ່ບໍ່ສາມາດຖືກແກ້ໄຂໄດ້" msg="${msg}ແກ້ໄຂອັດຕະໂນມັດ.\nລະບົບນີ້ " msg="${msg}ບໍ່ສາມາດສືບຕໍ່ບູດໄດ້ ແລະຈະ " msg="${msg}ດັ່ງນັ້ນ ຈະຖືກຢຸດຈົນກ່ວາ " msg="${msg}ຄວາມຜິດພາດເຫຼົ່ານັ້ນຖືກແກ້ໄຂດ້ວຍຕົນເອງໂດຍ " msg="${msg}ຜູ້ເບິ່ງແຍງລະບົບ.\n\n"
msg="${msg}ຫຼັງຈາກທີ່ທ່ານກົດ Enter, ລະບົບນີ້ຈະຖືກຢຸດ " msg="${msg} ແລະປິດເຄື່ອງ.\n\n"
log_failure_msg "$msg"
log_info_msg "ກົດ Enter ເພື່ອສືບຕໍ່..." wait_for_user
/etc/rc.d/init.d/halt ຢຸດ
fi
ຖ້າ [ "${error_value}" -ge 16 ]; ຈາກນັ້ນ msg="FAILURE:\n\nຄວາມລົ້ມເຫລວທີ່ບໍ່ຄາດຄິດ " msg="${msg}ແລ່ນ fsck. ອອກດ້ວຍຂໍ້ຜິດພາດ " msg="${msg} code: ${error_value}.\n" log_info_msg $msg
ອອກຈາກ ${error_value}
fi
*)
ວ່າ C
ທາງອອກ 0
;;
echo "ການນຳໃຊ້: ${0} {start}" ອອກຈາກ 1
;;
# ສິ້ນສຸດການກວດສອບ