Edited at

OS起動時にfsckが自動実行されるのを防止する

More than 3 years have passed since last update.


一定期間でOS起動時にfsckが実行される

Linuxでは一定期間ファイルシステムのチェックを行っていないと、起動時にチェックを行う機能がありますが、これを忘れたまま再起動を行うと数分のダウンのはずが、予測していなかった大幅なダウンタイムとなってしまう場合もあると思います。

※AmazonLinuxなどデフォルトで無効となっているディストリビューションもあります。

ec2の場合は、起動時にfsckが走ると、ネットワークサービスが起動していないのでStatus Checksがpassedにならず、

status fail.png

Get System Logを確認すると

syslog.png

root has gone xxx days without being checked, check forced.

のような出力で止まっている(チェック中)ことが確認できると思います。

こうなってしまえばもう待つしかありません。


fsckの自動起動を停止

もちろん定期的にfsckをしなくていいというわけではありませんのが、

予期せぬfsckを防ぐためには、以下の2つの方法があります。


fstabで起動時のチェックを無効化

第6フィールドの数値を「0」に変更します。

vi /etc/fstab

-------
LABEL=root / ext3 defaults 1 1
↓修正↓
LABEL=root / ext3 defaults 1 0
-------


tune2fsでチェック期間を無期限に

tune2fs -i 0 /dev/sda1

tune2fs -l /dev/xvde1 | grep -i interval
--------
Check interval: 0 (<none>)
--------

※マウント回数でfsckが実行される設定もあるので、その場合は以下で無効に設定できます

tune2fs -c 0 /dev/xvde1


(おまけ)スペックの違いによるfsckからの起動時間

fsckの実行時間は環境によると思いますので、参考まで。

それぞれ1回しか試していません。

環境はCentOS5/ディスク30GB(IOPSのインスタンスはは起動時に100GBに変更)です。

インスタンスサイズ
ディスク
起動までの時間

m1.small(1core/1.7GB)
Magnetic
48分

m1.small(1core/1.7GB)
プロビジョンド iops(3000)
48分

c3.8xlarge(32core/60GB)
Magnetic
48分

IOが高速だとfsckも早くなると予想したのですが、意外な結果が...