/etc/rc fsck(case)

お次はこれ

	echo "Automatic reboot in progress: starting file system checks."
	fsck -p
	case $? in
	0)
		;;
	2)
		exit 1
		;;
	4)
		echo "Rebooting..."
		reboot
		echo "Reboot failed; help!"
		exit 1
		;;
	8)
		echo "Automatic file system check failed; help!"
		exit 1
		;;
	12)
		echo "Boot interrupted."
		exit 1
		;;
	130)
		# interrupt before catcher installed
		exit 1
		;;
	*)
		echo "Unknown error; help!"
		exit 1
		;;
	esac

ファイルシステムを-pでチェック。
pはpreen モードのこと。
preen モードでは、害のないファイルシステムの不整合のうち、限られたものだけを修復します。」
つまり、

参照されない inode
inode のリンクカウントが多すぎる
フリーマップ中にないフリー (空き) ブロック
フリーマップとファイルの両方にあるブロック
スーパブロック内の数値の異常

のみ修正するということ。
シェル変数$?はfsckコマンドの戻り値が入る。
$?=直前に実行されたコマンドの終了コードね。
最終的にはpreen.cのcheckfstabという関数内でチェックをしていると思うんだけれど、
ソースが難しくて挫折。
exit 1でcase文を抜けるとシングルユーザーモードに突入。