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日
上に戻る