Sorry. Written only in Japanese.


MBR を書き換えてしまってLinuxが立ち上がらなくなってしまった

0. はじめに

研究室の計算機は基本的に Linux と Windows?? のマルチブートにしています。 ところがある時、学生さんが Windows のインストールし直しをしてしまいました。 御存知のように Windows はインストールし直すと、 御丁寧にも MBR を書き換えてしまって、 その Windows しか立ち上がらなくなってしまいます。 これを復旧するのにかなり悪銭苦闘したのでその時のメモです。 (作業する前に一言知らせてくれれば、 あらかじめブートフロッピーから立ち上げられるようにしておくのに...) 手元には hamm の debian のインストーラー(CD-ROM)と potato の debian のインストーラー(CD-ROM)とがあり、 問題のマシーンは hamm のインストーラーでインストールした後に potato にアップグレードしていました。 また、研究室内の他のマシーンは これと同じ potato または woody になっています。 なお、私は Linux の仕組みのことをきちんとは理解していませんので、 おかしなことをやっていたり、回りくどいことをしていたり、 偶然うまくいっているだけのことがあったりします。

1. 他の potato マシーンでブートフロッピーを作ってそれで立ち上げてみる。

とりあえず、研究室の他のマシーンも細かい差はあれ、 似たような設定になっているので、 そこで作ったブートフロッピーで立ち上がるか試してみました。 何とか立ち上って、lilo さえ実行できればいいわけですから。 しかし、カーネルをロードして、機器を認識して...の途中で 固まってしまい、あえなく失敗。

2. hamm の debian のインストーラーから立ち上げて裏からliloを実行してみる。

次に、もともとインストールしたインストーラーなら 必ず立ち上がるはずですから、 立ち上がった時点で Alt+F2 を押して別画面を出し、 そこで、/dev/hda3 (Linux を入れたパーティション)を /target にマウントして、 これで liloを実行してみる。 しかし、ライブラリーが何とかで実行できないと言われる。 (そもそも、こういう方法では全くうまくいかないのかも知れないが、) ひょっとしたら、 hamm を入れた後、 中身はすでに potato にアップグレードしてしまっているので、 それでライブラリーがうまく使えないのかも知れないと考える。

3. potato の debian のインストーラーから立ち上げてみる。

というわけで、ひょっとしたら potato のインストーラーから立ち上げれば、 ライブラリーの問題もなくなるかもしれないと考えて、 potato の debian のインストーラーから立ち上げることを試みる。 ...しかし、なんと、このマシーン potato のインストーラーが立ち上がらない! 細かいパラメータを入れて見たら...とかは調べていないが、 もし、このマシーンに potato の段階からインストールしようとしたら はまってしまうところであった。

4. hamm の debian のインストーラーから立ち上げてメニューからliloを実行する。

で、結局どうやって復旧したかというと、 もともとインストールした hamm のインストーラーから立ち上げて、 そのまま、
「初期化済みのパーティションのマウント」
をして、マウントをし、 (メニューではフォーマットなどが上のほうにあるが、 当然ながらここでフォーマットとかしてはいけない。) メニューの最後近くにある
「起動フロッピーの作成」
でブートフロッピーを作ります。 その後、
「システムの再起動」
を選んで、このブートフロッピーでブートすると Linuxが立ち上がったので、 /etc/lilo.conf を書き換え、 /sbin/lilo を実行して復旧しました。

5. 教訓

こんな面倒くさいことにならないように、 良い子は最初からブートフロッピーを作っておきましょう。

2003年 4月 7日

上に戻る