Windows2000の再インストールでHDDが壊れた

事象

  • マシンのスペック
    • OS: Windows2000SP4
    • MB: Intel D865PERLK
    • HDD: Seagate ST3300622A 300GB SATA100 c:\20GB + d:\280GBに分割
  • CDROMからWindows2000SP4を起動し、Installerでc:\をNTFSでフォーマット。その後、通常手続でインストール終了。再起動したところHDDから起動せず、CDROMから立ち上がってしまう。
  • その後、再びInstallerでパーティション情報を見たところ、↓の人と同じ状態に陥る。
  300164 Re:現状です あっきー  2005/10/16-23:33 
  
  記事番号299950へのコメント
  「未使用の領域」自体の削除はできません。
  また、分かれているのはもともと
  「C:新規」という領域と「未使用の領域」となっていて、
  「C:新規」をDキーで削除するとこれも「未使用の領域」になって、
  結果、「未使用の領域」がふたつできる結果となります。 
  • これまでも同じ状態に陥ったことは何回かありますが、他の要因の所為だと思ってあまり深く追求してませんでした。さすがにこうも続くと大問題なので、原因を追及してみたいと思います。年に数回はOSを再インストールする人なので、場合によってはWindows2000を捨てる判断をしないとならないかも。

調べてみた結果

  • Googleで同様の事例を調べてみると、SP2以前のWindows2000は48bit LBAを扱えないため、137GB以上のHDDの容量を正しく認識できないという内容ばっかりですね。言い換えれば、48bit LBAを扱えないOSが稼働している状態で、新たに137GB以上のHDDを接続した状態で、如何にしてその容量を正しく認識させるかという問題。これは解決法含めて分かっていて、レジストリに↓のエントリを入れて再起動してあげればOK
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi\Parameters]
"EnableBigLba"=dword:00000001

検証

  • どうにも気持ち悪いので、納得できるまで検証してみることにしました。実デバイスで実験できればよいのですが、さすがに無理なのでVMWare Serverを使ってみます。バックアップ復元前のd:\に278GBほど空きがあるので、200GB位確保して実験してみる。仮想環境で再現するかどうかは分かりませんが、もしも再現するのであれば見切りを付けるしかないですね。
  • VMWare ServerはWindows2000でも普通に動くのですが、一点だけ要注意。VMWare Registration Serviceだけ自動的に開始してくれないので、管理ツールから手動で開始しないとなりません。一年前に引っかかったっけ。
  • しまった。VMWareで使用する仮想ディスクは、事前に領域確保しておかなくてもよいんだっけ。パフォーマンスが良くなるらしいが、この程度の実験じゃ関係ない。しかも、確保した領域がSCSIだった罠。一晩がかりの作業は何だったんだ。orz
  • 前者はおそらく無理なんだろう。すると、後者で何とかするしかない。その最も確実な方法は、どっちも現実的じゃなさそうだなあ...
    • いかなる容量のドライブを搭載していたとしても、c:\の容量は常に137GB未満に制限する。そして、再インストールのたびに全域をFDISK -> Formatすることにする。つまり、システムドライブにはパーマネントなデータを一切置かない事にする。
    • c:\ 20GB + d:\ 280GBとしてもよいが、再インストールのたびにc:\もd:\も削除して、c:\を作成してインストールして、48bit LBAを使えるパッチを宛てた後にd:\を確保する。そしてd:\をバックアップから回復する。
  • WindowsXPSP2で同じ問題が発生しないのであれば、これを機に母艦のOSをXにするのが最も確実なような気がしてきた。しかし、結構大変だぞこれは。何とかならんかなあ。