奇跡の生還スペシャル!
2年前に買った現在のメインPC。
2ヵ月後には夏の暑さにやられ、3Dゲームなんかしてるとしょっちゅうブルースクリーンが出てた、へたれマシン。
memtest86かければエラー大量に出るわ、DVD再生中に固まるわ。
しかし、なんだかんだで現在も使用中。
乱暴に扱っても(*1)、意外と致命的には壊れないのである。
*1 例えば、ハードディスクアクセスしてるのに電源長押しする。
どこの馬の骨だか知れないドライバをインストールしてみる。
Linuxをインストールしてみるなど。
−
そんなマシンにも、2回ほど、嗚呼こりゃもう駄目だ、というときがあった。
−
その一つは、1年ほど前、Linuxをインストールし、デュアルブートを試みたとき。
−
マシンに複数のOSをインストールし、使い分けることをデュアルブートという。
それを実現するためには、ブートローダーについて知らなければならない。
パソコンのスイッチをオンにすると、まずMBRというところにあるプログラムが動く。
これをブート・ストラップ・ローだと呼ぶらしいが、長いからMBRでいいや。
MBRはパソコンに一つだけ。
MBRの役割は、OSの読み込み・起動を行うプログラムを呼び出すこと。
このプログラムは、ブートセクタという場所にある。
ブートセクタはハードディスクのパーティション(区分け)ごとにある。
MBRとブートセクタにあるプログラムをまとめて、ブートローダと呼ぶ。
−
デュアルブートを構築するときは、以下の手順となる。
1.ハードディスクの中を2つに分割し、パーティション1にWindows、2にLinuxをインストールする。
(この時点で、パーティション1のブートセクタにはWindowsを起動するプログラム、
2のブートセクタにはLinuxを起動するプログラムがそれぞれ入る。)
2.MBRに、OSの切替メニューを表示するプログラムをインストールする。
−
こういう構成にすれば、電源ONすればOSの切替メニューが表示され、どちらかを選択すると、それぞれのブートセクタを呼び出し、OS起動。
デュアルブート環境の出来上がり。
−
頭の中では分かっていた。
しかし、人間は間違ってしまうのだ。
−
何をやったかというと、MBRにインストールすべきGRUB(フリーの切替ソフト)を、Windowsのブートセクタにインストールしてしまった。
あわててMBRにGRUBをインストールしなおしたが、すでに遅し。
再起動した。
起動メニューが出ました。
Windowsを選びました。
起動メニューが出ました。(!!)
その先は、、、何もなし。
メインで使っていたWindowsが起動しなくなってしまいました。再インストール〜♪
−
しかし、再インストールが嫌だった私は、試行錯誤の末、別の方法でWindowsを復活させた。
−
まず、幸いにもLinuxは起動に成功したので、インターネットに接続し、情報収集した。
Windowsのブートセクタを復元すればどうにかなるはずなのだ。
バイナリイメージは落ちてなかったが、重要な情報を手に入れた。
NTFS(Windowsのディスク形式)は、ブートセクタのバックアップを持っている。
その場所は、パーティションの最後尾。
hda1のお尻512バイトをhexdumpしてみると、確かにブートセクタぽい文言が見える。
じゃあ、お尻512バイトを頭512バイトに上書きすりゃいいんじゃね?
そんなことができるの?
できるんです。Linuxのddコマンド使えば。
(奇跡的にその数ヶ月前、仕事でddコマンドを見かけていた。)
あと必要なのは、勇気!
これは試練だ。未熟な過去に打ち勝てという試練と俺は受け取った!
賽は投げられた。余はブートセクタをコピる。手で!
−
どきどきしながら再起動。
だめでもともとさ〜、と思いながらWindowsを選択。
見慣れた起動ロゴ。
ヤッターーーー。
−
自慢のように聞こえるかもしれないが、立派な自慢です。
〜〜奇跡の生還スペシャル・完〜〜