何かの拍子でブートしなくなった。その直前にカーネルがアップデートしていたのでgrubの設定が不完全だったか、あるいはgrubの書き込みがおかしくなったか、あるいは/bootの入っているハードディスクが飛んだか、理由は色々考えられるが、とにかく修復しなければいけない。
修復するといっても修復するための道具立てが必要である。UbuntuのインストールCDにはシステムのレスキューも含まれているのでこれを使う。まずレスキューする道具立てを手に入れるまでの手順を忘れないうちに書いておく。
- UbuntuのCDイメージをラップトップのUbuntuにダウンロード
- 2GBのUSBメモリを用意する。というか手元にちょうど2GBのUSBがあったのでそれを使う
- スタートアップ・ディスクの作成のアプリケーション(usb-creator-gtk)を使いUSBメモリをブート可能にする
それを実機に挿し、BIOSメニューのレベルで選択して、USBメモリからブートする。元々はインストール用のイメージであるが、これのメニューにRescue a broken systemというのがあるのでそれを使う。ちなみに一番最初に言語選択が出てくるが、日本語を選択すると「インストーラの翻訳は~」と翻訳がきちんと済んでいないかのようなメッセージが出てくる。たぶん大丈夫みたいなことも書いているけど、だったらはじめから英語にしておいた方が無難である。
キーボードの種類やネットワーク環境を聞かれ、それが終わるとネットワーク経由で環境をセットアップし始める。
一通り終わるとルートファイルシステムはどれかときいてくるので、設定する。ちなみにさっきもそうだけど、これはVirtualBoxで再現したもので、今回レスキューをした実機の画面ではない。ちなみに実機はハードディスクが5つあって、それがRaid6を構成していて、さらにその上にLVMで領域が複数取られている。
選択をすると、今度はルートファイルシステム上でシェルを動かすか、インストール環境でシェルを動かすか、Grubを再インストールするかのメニューが現れる。
BIOSレベルではすべてのハードディスクは生きていることは確認できているし、とりあえずgrubを再インストールするだけのつもりだったので、ここですぐにgrubを再インストールしてリブートした。もちろん、何にもなかったように問題なくブートした。
色々と考えるに、これはハードウェア的な問題というより、ソフトウェア的な、もうちょっというとアップデートのスクリプトに問題があるのではないだろうかと疑う。なんせ使っている環境のストレージ回りはかなり変則的なことをやっているから。まあ、いずれにしても治ったのでよしとしよう。
ちなみに2時間ほどかかった。