T41 クラッシュ

TL10F 散る!?


それは油断から始まった...

 ThinkPad T41 では、Turbo Linux 10 F をメインに使用していますが、仕事で使う場合には、Windows を使わなければならないこともあります。そんな時には、Dual Boot の Windows XP を使うわけですが、環境構築の際に一つミスを犯してしまいました。それは、Windows 用の D ドライブの作成忘れ、という代物です。私は、Windows の環境では、必ずシステムドライブとデータドライブを分割するようにしています。これは、システムドライブは OS 入れ替えなどで、区画全体をフォーマットする必要が生じた場合に、作成済みデータを失わずにすむように、分離しているわけです。しかし、T41 へ Windows XP を導入した際には、それを忘れてしまっていたのでした。

 実際のところ、最初に作成することはしませんでした。というのも、Turbo Linux 10 F のインストール後に、拡張区画内に論理区画を作成するつもりでいたのですが、Turbo Linux インストール後にうっかりしてしまったのでした。Dual Boot の起動できる区画は、基本区画でなければなりませんが、それ以外であれば論理ディスクでよいため、最初に区画作成をしておけば良さそうですが、Turbo Linux の TFDisk では、1〜3までは基本区画となり、4が拡張区画と決めうちをしているようで、3を拡張区画とすると、インストールプロセスの最初の区画設定で落ちる、という不具合があります。Vine Linux では、CUI な fdisk がありますので、インストーラではなく fdisk により区画を作成しておけば、インストールが問題なく終了できるのですが、Turbo Linux では fdisk がないため、そのような対応ができません。このため、Turbo Linux のインストール終了後に Windows 用の区画を作成するつもりだったのです。

 Windows を起動し、ディスクの管理を呼び出したところ、少々困る事態となりました。空き領域となっている部分は、拡張区画が存在しているはずだったのですが、そうではなく、純然たる無指定区画となっていたのでした。この状態で区画作成を行うと、作成されるのは論理区画ではなく、基本区画が作成されてしまうことになります。作成する区画のサイズは、2GB 程度の予定であるため、その後ろに使用できない領域を生じてしまうことになります。このようなことから、少々困ってしまいました。

 今回の HDD 区画作成には、Partition Explorer を使っていたのですが、気を使いすぎているようで、作成した拡張区画を、確保した論理ディスクのサイズだけに制限していたようです。それでは困るので、再度 Partition Explorer を使い、拡張区画を広げることにしました。しかし、Partition Explorer は確保された論理区画分しか拡張区画を確保しませんので、やむを得ず、空き領域のすべてを満たす論理ディスクを作り、残りの空き領域を含めて拡張区画となるように設定をしました。

 Windows で起動しなおし、ディスクの管理から作成した論理区画を削除しました。これで改めて論理区画を作成すると、望みの区画となるのですが、なぜか胸騒ぎがして、区画の解放をした時点で、PC を再起動させました。この時点で拡張区画のサイズのみが異なり、区画数などは影響が生じていません。しかも、ブートローダーに grub を使用していることから、万に一つも起動に失敗することはありえない、と考えていました。しかし、不吉な予感が的中してしまいました。

ルートパーティションの崩壊

 起動させると、いつもの Turbo Linux の壁紙が表示されず、さらに grub のプロンプトが表示されているのです。これは明らかにおかしい状態です。やむを得ず、手動で /boot(/dev/hda2) を mount し、kernel を Load し、boot コマンドを実行しました。kernel を Load する際には、引数としてルートパーティションを指定する必要があります。なぜなら、起動時に読み込むべきコマンド類を保管しているパーティションがわからなければ、コマンドを読み込むことが出来なくなってしまうため、ルートパーティションは kernel による強制 mount が実行されなければならないのです。

 boot コマンドを実行したところ、kernel の読み込みが始まり、一安心かとおもっていたところ、ルートパーティションの mount 時の fsck チェックで引っかかってしまいました。さらに悪いことに、自動修復でも修復できず、手動修復のための root パスワードの入力要求が表示されました。我が家のルートパーティションは、ext3 にしているため、ジャーナリングによる自動修復機能に対応しているものとしていました。それが手動修復が必要となったのですから、傷はかなり深いと思われました。

 root のパスワードを入力し、fsck -fy にて修復を始めたところ、画面のスクロールが間に合わないほど多くのファイルが修復されていきました。一瞬、ハングアップしているのか、と錯覚するほどで、HDD のアクセスランプはつきっぱなし、画面は文字の残像が残るのみ、と相当に怖い状態となっていました。ただ、この時点で一つの疑問は感じていました。

 (なんで、そんなに影響がでているのだろう?実在パーティションの物理位置は一切変わっていないのに...)

 20分ほどかかって、fsck の修復が終わりました。fsck は最後に reboot すべし、というメッセージを表示していたので、再起動させました。この時点で、修復が完了していることから、いつもの状態に戻っていることを期待したわけですが、実はすでに地獄の釜のふたを開いてしまっていたのでした。

 再起動後、再び grub のプロンプトが表示されていました。(あれっ、なんでいつもの状態に戻らない?変だぞ)と考えながら、再び root コマンドによるパーティションの mount と、kernel コマンドによる kernel ファイルの読み込みを行い、boot コマンドを実行したところ、ルートパーティションが見つからない、という状態に陥りました。パーティション番号を間違ったのかと思い、起動し直しましたが、それでもルートパーティションが見つからない、という状態に陥りました。そこで、3度目の再起動時に、root コマンドを使って、ルートパーティションの中身がどうなっているか、調べることとしました。

 root コマンドと kernel コマンドを利用して覗き込んだルートパーティションは、驚愕の事態となっていました。なんと、ファイルリスト上にはたった一つのディレクトリしか表示されないのです。しかも、その見えるディレクトリは /lost+found なのです!

 しばし呆然となりながら、冷静に状況を分析しました。おそらく fsck は、存在するすべてのファイルおよびディレクトリを、この /lost+found に集めたようです。このディレクトリに属するファイルは、修復できないものであるため、事実上ルートパーティションは崩壊している状態となっていたのです。事態は、最悪の局面を迎えていました。

 幸い、/home は無事であったのですが、ルートパーティションが全滅している状態では、何もできない状態に他なりません。技術があれば、/lost+found から元の状態を復元できるかもしれませんが、修復に使うツールさえ、すでに存在していない状態であるのでは、私に打てる手はありませんでした。ことここに至った以上、OS の再インストールしかない、と決断せざるを得ませんでした。

さらなる悲劇

 さらに不幸が私を襲いました。なんと、Turbo Linux 10 F のメディアが見つからないのです (T_T)。泣きっ面に蜂、という格言がありますが、まさにその状態でした。もてる情報を総動員したところ、予想だにしない場所でパッケージは発見されました。なんと、実家に置き忘れてきたのでした。実家までは、片道 50Km ほどあり、さらには道路は積雪ないし路面凍結という事態であり、実家に向かうことは、かなりの困難を極めました。なんとか、時間の工面をつけ、電車を使い実家に戻り、無事パッケージを手中に収めることに成功しました。

 落ち着いてから考えてみると、Turbo Linux 10 F のインストールは、正月の帰省中に実家で行っていました。この時に、持ち帰ってきたつもりだったのですが、うっかり忘れてしまっていたのだ、と気づきました。実家の部屋で炬燵にあたりながら、Turbo Linux 10 F を 再インストールし、併せて Turbo Update も実行しました。実家に ADSL を導入しておいて、本当によかったと感じました。

再インストールを終えて...

 正直、手順として間違ってはいないと今も考えています。しかし、パーティションを操作する危険性は、わかっていたはずですが、蚊帳の外においており、使い方を誤ると危険なツールを、慢心の中で使用していたことは否めません。また、このような危険な操作を行う以上、とっておくべき完全バックアップもないような状態では、情けないの一言につきてしまいます。

 QTParted にしろ、Partition Magic にしろ、パーティションを操作するツールには、本質的なリスクがあります。しかし、元来面倒なパーティションのリサイズは、その手間の多さを知る人間には、とても便利なツールでもあります。ついつい人はそのリスクを忘れ、利点ばかりを考えてしまいますが、やはりきちんとそのリスクを見切り、回避できるものは回避するための手段を執っておく必要が大事であることを、再確認させられました。

 ふと思い出すと、昨年の当初にもにたようなことがありました。前回は、メイン環境の Windows XP がクラッシュしてしまい、OS のインストールから環境の再構築まで、実に三日を要するまでに至りました。仕事の上ではバックアップをとることの重要性を歌い、周りに指導している身でありながら、肝心の自分の環境については、まったくなっていないというのも、なんとも皮肉なことです。そうはいっても、二度あることは三度あるともいいますので、3度目の正直となるべく、バックアップをきちんととっておきましょう。

 そういえば、今回の再インストールで、/home は別パーティションにしておく必然性を体感することになりました。当初はシングルパーティションにするつもりでしたが、なんとなく分けた方がよいように感じ、/home を分けていたのですが、結果として、環境の再構築はする必要がなくなりました。再インストール時に、/home をそのまま mount することで、従前の環境の多くが戻ってきました。以前のように、インストール猿だったころや、Router として使うなどクライアント的な使用をしていなかったころと異なり、クライアント的に使うと、環境を失うことはかなりのダメージになるので、今回のようにすぐに復活できることは、非常にありがたいです。今後、Linux をインストールする場合は、4パーティション構成(/、/home、/boot、swap)を基本としていくことになりました。


Last Update is 2005/01/08. CopyRights Tazoe Kazuya 2005.