Virtual Iron(仮想化ソフトウェア)の検証をしているうちに、仮想マシンのOS(Linux)が起動しなくなってしまった。
# まぁ、ストレージまわりで結構無茶なことをしてたせいもあるのですが。
別に仮想マシン上だけの問題ではなく、普通にLinuxを使っていても起こりうる現象だと思うので、ここにメモしておきます。
で、起動時のエラー画面は以下のような感じ。
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)が出来ることをギリギリ覚えていて助かりました。。。