[linux] ms-sysでMBRを修復しよう

パソコンが壊れて起動しないのだが、HDDの中身を取り出せないか?とのお願いが来た。写真など思い出が詰まってると。
結論からいうと、MBRが壊れていた。いままでならliloか、grubを入れてお茶を濁すところだが、今回ms-sysというMicrosoft互換のブートレコードを書けるプログラムを使って修復した。
linuxならなんでも行けると思うが、ubuntu6.06のlive cdを使って作業した。(実は9.10で試したらgnomeの立ち上げ時にエラーが出て立ち上がらなかった><)

使い方

$ sudo ms-sys /dev/hda

hdaは環境によって、sda,hdbなど異なるはず。事前に調べておくこと。

今回のパソコンはOSはWindows XPのみだし、liloやgrubをインストールするまでもないのでこの方法が良かった。WindowsのリカバリーCDを使っても修復可能だと思うけど、手元に無かったりする場合もあるし、この方法が良いと思う。

以下、この結論に至った作業ログ

  • とりあえず、電源入れてみるとOSが見えていない。
  • ubuntuのlive CDを使って、ubuntuを立ち上げてみる。
  • HDDはおそらくNTFSでフォーマットされるだろうから、apt-getで足りないパッケージをインストールしてHDDのマウントを試みる
  • 見れた。hdaが割り当てられている。
  • ファイルの中身は正常なのでMBR(Master Boot Recorder)が破損しているのでは?との推測を立てる
  • ubuntuを再起動して、OSを立ち上げるところでHDDから立ち上げてみる。
  • あっさり、windowsが立ち上がった。
  • 思い出を外付けHDDに移動させる。
  • もう一度CDからubuntuを立ち上げてMBRの修復作業
  • いつもならliloかgrubを入れるところだけど、ms-sysというMicrosoft互換ブートレコードが書けるプログラムがあることを知る
  • sudo ms-sys /dev/hdaで修復
  • 再起動。windowsが無事立ち上がる。