先日、CentOS7のサーバーが突如ダウンし、緊急モードで起動しました。ログを見てみるとタイトルの通り、Timed out waiting for device... のエラーが。こいつを直すのに、苦労したので記事を書くことにしました。
結論から話すとエラーの原因は、/etc/fstab内にありました。
OSは起動時にfstabを読んで、ディスクパーティションやブートファイルをファイルシステムにマウントします。
/etc/fstabについては以下の記事の説明がわかりやすいです。
参考記事:fstabについて
エラーの原因
私のfstab内ではデバイスをdev_mapper_data等の名前で指定してmountさせていましたが、再起動時にデバイス名がディスクの認識順によって入れ替わることがあります。つまり、違うディスクにマウントされ、マシンエラーが起こります。また、今回エラーを吐いていたディスクが最近増設したHDDだったので、取り分け敏感だったのかもしれません。
解決法
この症状は、デバイス名の代わりにユニークな値であるUUIDを指定することで正しくOSがデバイスを認識してくれます。
後で調べたらCentOS7では普通UUIDで指定するらしいです。知らなかった...
UUIDは以下のコマンドで確認することができます。
blkid