WindowsXPのディスク管理はもう使ってはいけない

■ WindowsXPのディスク管理はもう使ってはいけません

 ハードディスクの初期化時、あるいはパーティションの作成や 削除のときには、ディスク管理(ディスクアドミニストレータ)を使います。 これはNT系OSには必ずある機能です。しかしWindowns XPまでと VISTA以降では ディスク管理というかパーティション境界割り当てのルールが大きく変わりました。 これに伴って、XPまでのディスク管理をVISTA以降の時代に使うと、 様々な問題が発生することがわかりました。中には大変危険な問題もあります。

■ Windows VISTA/7で何が変わったか

 かつてIBM-PCにおいては、パーティション境界の割り当て方は、 「ハードディスクのBIOSシリンダ単位」という規則がありました(ただし先頭のパーティションの開始位置のみはBIOSヘッド境界)。 それはディスクアクセスのアドレッシングが、シリンダ、ヘッド、 セクタというCHS方式であったためで、すべてのハードディスク 管理ツールはこれを遵守していました。

 しかしリニアな論理アドレス(LBA)で指定する時代に移行すると、この規則の 意味は有る程度薄れ、遵守しなくても起動やパーティション割付けに 問題がない場合も多くなってきました。実際XPではシリンダ単位に パーティション境界がなくても、認識や起動は可能です。しかし過去の習慣から ほとんどのディスク管理ツールはこの規則に従ってきました。

 いまのほとんどのDISK BIOSでは、従来からの互換性の範囲での最大値、 すなわち255ヘッド、63セクタという値を返します。Windows XPのディスク管理でも これに従って、先頭パーティションは63(16進数で3Fh)から、その終了の次のパーティションは 255*63の倍数セクタが境界となるようにパーティションを作成します。 ところがこのルールではSSDやAFTドライブといった新デバイスでは都合が悪い点が多く、 Windows VISTA/7からは、パーティション境界1MB(セクタ2048、16進数で800h)とするように改められました。

■ 何が起こるか

 WindowsXPから7への過渡期には、これに伴った問題が出てくることになりました。 まず、旧来方式でフォーマットしたディスクにWindows VISTA/7のディスク管理を行うと、 ギャップが生じることになりました。これはとくに致命的なことにはなりませんが、 この逆、つまり、Windows VISTA/7のディスク管理ツールや それに準拠したフォーマッタでパーティションを1MB境界で確保してあるディスクに対して、 Windows XPのディスク管理を適用した場合に、 とんでもないことが起こるのです。最悪の場合パーティションテーブルを破壊します。

 確実に再現するのを確認した例としては、拡張パーティションの破壊というのがあります。 これは、論理パーティションが既に1MB境界ルールで作られている場合に、 XPのディスク管理を適用すると、先頭の論理パーティション以外が消えてしまうという 現象です。さらには拡張パーティション全体の容量もおかしな値になります。 調べてみると、EPBR(拡張パーティションブートレコード)の記述自体が先頭から おかしくなってしまっていました。

 XPのディスク管理の適用といっても、論理パーティションに対する操作をしたわけでは ありませんし、パーティション削除や作成の操作もしていません。 別に存在する基本パーティションのアクティブ変更操作だけです。 それでも全体を失ってしまうのですから、恐ろしい限りです。 この操作をした直後、いったい何が起こったのかすぐにはわかりませんでした。

拡張パーティションに1MB境界で論理パーティションがある状態で

拡張パーティションに無関係な基本パーティションのアクティブを変更しただけで・・・

論理パーティションが消えた!

■ どうすればよいか

 というわけで、Windows VISTA/7で作った拡張パーティションがあるハードディスクには、 Windows XP/2000のディスク管理を絶対に起動しないように注意する必要があります。 もちろんDOSのFDISKもダメです(拙作FDSKは拡張パーティション内の論理パーティションの 操作機能がそもそもないので無問題)。 XPもしばらくVISTA/7と混在させるという人は、AFTでないHDDに対しては、あえて 従来通りのパーティション境界でフォーマットしておくことをおすすめします。 Windows XPでWindows VISTA/7のパーティションをとくにアクセスすることはない という人は、もうディスク管理方式をMBRではなくGPTにしてしまうのも手でしょう。

 拡張パーティションを使わず基本パーティションしか使わない場合には、 このような致命的なことは起こらないようですが、それでもXPのディスク管理で パーティションの新規作成をするのは避けたほうがよいでしょう。Vista/7の ディスク管理を使うか、DOSでは拙作のFDSKを使ってください。

 XPとVISTA/7を混在するわけではないがXPでAFTドライブを使いたいという場合にも、 VISTA/7方式のパーティション境界であることが望ましいのですが、とりあえず 8の倍数セクタに境界があれば問題はないので、ヘッド数、セクタ数、8の公倍数である 255*63*8=128520の倍数の境界にパーティションを作るという手があります。 その場合先頭パーティションの始まりは800hでもかまいませんが、128520セクタからと しておくのがよいでしょう。ただしそのように器用にフォーマットできるツール というのは知りません。拙作FDSKでも、240*63や128*63にはできるようにしていますが それ以外はいまのところ考慮していません。

←戻る