Linuxのファイルシステム障害を直してみた

The Beach at Vik by etravelphotos.co


Virtual Iron(仮想化ソフトウェア)の検証をしているうちに、仮想マシンのOS(Linux)が起動しなくなってしまった。
# まぁ、ストレージまわりで結構無茶なことをしてたせいもあるのですが。


別に仮想マシン上だけの問題ではなく、普通にLinuxを使っていても起こりうる現象だと思うので、ここにメモしておきます。


で、起動時のエラー画面は以下のような感じ。

https://farm2.static.flickr.com/1150/1149050344_dceda91176.jpg

 

WARNING: Your /etc/fstab does not contain the fsck passno field.
         I will kludge around things for you, but you should
         fix your /etc/fstab file as soon as you can.

fsck.ext2: Is a directory while trying to open /


どうも、/etc/fstabがおかしいらしい。
というわけで、頑張って直してみました。


上記の画面まで来ると、まずrootパスワードの入力を求められるので、入力。
(Repair filesystem)のプロンプトが出てくるので、vi等で/etc/fstabを覗いてみると、確かに中身がおかしなことになっていた。


ので、書き直そうとしたらファイルシステム自体がRead onlyという状況。。。
つーわけで、ファイルシステム(つまりデバイス)のチェックを実施します。

# e2fsck -f -b offset ${DEVICE_NAME}

みたいな感じで。
今回の検証環境では、/etc/fstabのあるラベル"/"は、/dev/hda3ということがわかっていたので、

# e2fsck -f -b offset /dev/hda3

と、入力して実行。
途中、修復ポイントを直すか、という質問が数度出てくるので、全て"y"を入力。(yes)
終了後、ファイルシステムをread/write可の状態でremountします。

# mount -n -o remount,rw /

で、マウント後、改めてvi等で/etc/fstabを開くと書込みできるはずなので、正しくfstabを手動で書き直した後、保存してrebootすると、上手く稼動し始めました。

めでたしめでたし。



# 余談ですが、Virtual Ironの仮想コンソールは英語キーボード対応なので、すごく苦労しました。
# 何が苦労したって、キー配置が違うことはもちろん":"が打てないのです。(つまりviが終了できないw)
# が、「ZZ」(Shift z を2回)で保存⇒終了(:wq)が出来ることをギリギリ覚えていて助かりました。。。