元からwindowsが入っていたHDを、qtpartedというソフトで後からパーティション切って、linuxとデュアルブート環境にしたのですが、windowsが起動しなくなりました。
その時のmsgは「a disk error occured」みたいな感じだったと思います。
しかし、linuxからwindowsのパーティションをマウントできて、中のファイルも見れたので、windowsはまだ生きていると思い、復旧作業を行いました。
その結果、結構苦戦しましたが、ついにwindows復活!
自分のやった手順を書いておきます。
↓の参考サイトを見て、必要なツールを揃える。
http://lets-go.hp.infoseek.co.jp/testdisk1.html「【TestDisk】を使ってパーティションテーブルを回復」の手順に従い、矛盾のない領域を選択する。
これによって↓の画像の状態になった。
「Incorrect number of heads/cylinder 255 (NTFS) != 16 (HD)
の表示が出ている。

↓number of heads per cylinderの数値を、geometry menuで16から8に変更しろと言っている。

↓そのように設定すると、先ほどのmsgは消えた。

↓アクティブな基本領域「*」をNTFSに設定し、linuxのパーティションは、アクティブではない基本領域「P」に設定した。

↓この設定でwindowsが起動するかと期待を込めてリブートしたが、今度は「NTLDR is missinng」のmsg。
しかし、linuxからwindowsのパーティションをマウントした時、NTLDRは存在していた。
先ほどのサイトに、
ただしこの
NTLDR is missing というエラーがでる場合の大半は、NTLDRそのものの損 傷・消失とは違う原因で起こると思われます。
とあったので、ディスクパラメータを疑ってみることにする。

【TestDisk】を使ってブートセクタ(ディスクパラメータ)を回復の手順に従い、ブートセクタを参照すると、↓の画面の状態だった。
boot sectorはOKではあるが、heads/sylinderの数値が255になっているので、240に治せと言っている。
backup boot sectorは駄目なようだ。

debugを覗いてみると、backupは完全に破壊された状態、boot sectorは「1シリンダあたりのヘッド数」の領域が「ff」つまり「255」になっている。
さっき、この数値を240に治せとmsgが出ていたので、治すことにする。

写真を撮り忘れたが、
PTS DiskEditorというツールを使い、「ff」を「f0」に手動で修正した。
右はbackup boot sectorが復活しているが、これは念のため、修正を加える前にオリジナルのboot sectorをバックアップにコピーしておいたもの。なので、バックアップ側はまだ「ff」の状態になっている。

↓確認すると、boot sectorは「OK」表示になった。buckupは修正してないので、エラーメッセージが出ている。両者が一致していないので、sectors are not identical表示。

↓この設定でwindowsを起動してみると、めでたく起動しました!

↓この設定で正しいのが解ったので、念のためboot sectorをbuckup boot sectorにコピーしておきます。
これでスッキリした表示になりました。

結局、非常に丁寧に解説されているサイトのおかげで助かったのですが、いまいちよく解らない所があります。
最初の
「Incorrect number of heads/cylinder 255 (NTFS) != 16 (HD)
のmsgと、
後に出てきた
「Incorrect number of heads/cylinder 255 (NTFS) != 240 (HD)
の違いです。
最初のMSGに対しては、次の画面で出てきたジオメトリ・メニューで値を変更の通りに対応したのですが、2回目のMSGに対しては、ディスクパラメータを編集で対応しました。
この対応が合っているかどうかも解らないのですが、二回出てきたMSGの違いが何なのでしょうか?
まあ、windows起動できたので、良しとしますが。。
- 2007/02/03(土) 03:56:49|
- diary
-
| トラックバック:0
-
| コメント:0