/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文を抜けるとシングルユーザーモードに突入。