実パーティションにインストールされたWindows 7をVHDブート環境に移行する方法について、色々試したりしています。
その中で、いくつか問題があって、色々とハマったのでメモします。
その1.VHDファイルの最大容量と実パーティションの空き容量の問題
まず、立ちはだかるのが、VHDファイルの最大容量と空き領域の問題です。
バックアップ機能やDisk2VHDでファイルを作成すると、『最大サイズ=実パーティションのサイズな容量可変のVHD』が作成されます。
しかし、VHDファイルをアタッチしてブートする際には『VDHをホストしているHDDにアタッチするVHDの最大容量が必要』になります。具体例を挙げると、容量200GBの可変VHD、"win7.vhd"をVHDブートで起動しようとするならば、実際のファイルサイズが5GBであってもwin7.vhdを配置したHDDには合計200GB以上の空き領域が必要になるということになります。
ですので、上記のような方法で作成したVHDファイルを、元々の(作成の元になった)パーティションに配置して起動しようとしても、起動出来ません。
どうすれば良いかというと、おそらくは
- 解決策1:置き場所を大きくする
別ドライブに配置 or どうにかしてパーティションのサイズを拡張する*1等々、もっと大きい容量のパーティションに配置する - 解決策2:VHDを小さくする
何らかの方法でVHDファイルの最大容量を削減して、最大容量が現パーティションに収まる用にしてしまう
の何れかの方法をとる必要が出きます。
実は、前に試したケースでは、「80GBバイトのHDDにインストールされた7の環境を抜き出して320GBのHDDに交換しそこでVHDブートさせた」ので、結果的に解決策1に沿っていた事になり、この問題に当たりませんでした。
が、現実問題として解決策2をとらざるを得ないケースの方が多いと思います。
解決策2として私がやってみた対処方法は以下の通りで、こうすることでとりあえず起動する事に成功しました。
- DISKPART等でパーティション(ボリューム)の縮小を実施
- VHD Resizer(http://vmtoolkit.com/files/folders/converters/entry87.aspx)で最大容量を縮小
(これらの操作の詳細については、それぞれ、
あたりを参照されるとわかりやすいかと思います。)
問題はここから。
とりあえず上記の手順を踏めば、バックアップやDisk2VHDで作成したVHDファイルからブート出来るようになる……のですが、実はまだまだ問題が残っていたり……。
上記の解決策2で作成したVHDファイルからブートすると、『Windows 7がDドライブからブートしている』という状態になってしまうようなのです。
そして、Windows 7は起動元ドライブがDドライブになることを想定していないから……なのか、Dドライブから起動しているにも関わらず、各種リソースについてはCドライブにアクセスに行こうとしているような挙動に出ます。
どういう事かというと……。
たとえば、エクスプローラの「お気に入り」からアクセスした「ダウンロード」フォルダにファイルを作成してみると、(現状、Dドライブとしてマウントされている)起動したはずのVHDではなくて、物理ディスク(元々のCドライブ)の方にあるユーザフォルダ配下に書き込みを行ってしまいます。
このあたりの詳細とか、解決方法(……も微妙なんですが)は、また明日以降にでも書きたいと思います。
#今日はもう、眠い……(X_X)
2009/11/06追記
解消した……と思ったら、全然解消してなかった!!
物理的に違うHDDに交換されてれば良いのだけど、一度Cドライブとしてマウントしたのを覚えちゃってるっぽいので、パーティションを解放したり色々やってもやっぱり内蔵HDDをCドライブとしてマウントしてしまう……。
解決方法をご存じの方、教えてください(T_T)
*1:ディスクを大容量の物に交換するとか、つぶしてくっつけれるパーティションがあるならそれでどうにかする