/etc/fstabの記述ミスでOSブート不能
VMWare ESXi上で動かしていたLinuxサーバで、仮想ディスクの増設・削除作業を何度かしていたところ、うっかりfstabにエントリが残ったままで仮想ディスクを削除してしまったorz で、どうなるかというと、当然ながらOS起動時のファイルシステムチェックでエラーとなり、OSを起動できない状態となる。ちなみに/etc/fstab内のパーティションラベル名などの記述が間違っていた場合なども同じ状態になる。さて、今回はこんな時の対処方法を紹介。
対処手順
- 1.エラー画面でスーパーユーザ(root)のパスワードを入力し、メンテナンスモードに入る
- 2.「/」ファイルシステムが読み取り専用モードでマウントされているため、書き込み可能なようにマウントし直す
※これをやらないとfstabの編集ができない
# mount -o remount,rw /
- 3.fstabの不要エントリ(実際には削除されているが、エントリに残っているディスクパーティション)を削除
- 4.メンテナンスモードからサーバを再起動
# shutdown -r now
以上で無事サーバは起動してくれる。うーん、エントリ残ったまま仮想ディスクを消しちゃうなんてうっかりしていた。。
補足:ラベル記述ミスの場合の対処方法
fstabに記載したラベルの記載がおかしい場合にも同じ状況になると書いたが、この場合には(1)直接ドライブ指定で記述するか、(2)LABELを正しく設定するか、いずれかの方法でfstabの設定を修正し、システムを回復させる。
- (1)直接ドライブ指定の場合
# /dev/sda1 /data ext3 defaults,noatime 1 2
- (2)LABELを正しく設定する場合
# /sbin/e2label /dev/sda1 /data