[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が無事立ち上がる。