Debian上のVMWareでWindowsXPを使っている。
パーティション構成は
HDD1 C: 8GB D: 12GB
このようになっていた。
最初にインストールするときは少ないサイズで作成することが多いが、大抵後から拡張したくなる。
本格的に使い出すと 8GB や 12GB じゃ足りない。
HDD1 C: 20GB HDD2 D: 40GB
このように変更する。
Windows付属の diskpart.exe を使った。
http://www.atmarkit.co.jp/fwin2k/win2ktips/577diskext/diskext.html
記事にも書いてある通り、システムドライブのCドライブは拡張できない。これを何とかする。
- まずはVMWareで40GBのHDDを追加する。それからWindowsを立ち上げてNTFSでフォーマットする。
- Windowsを終了して、設定画面からmountをして、HDD1のD: を HDD2 に cp -a などで丸ごとコピー。System Volume Informationディレクトリだけは外した。
- Windowsを立ち上げて新しいドライブのラベルをDに設定する。これでDドライブの移動は完了。動作確認ができたら古いHDD1のDとして使っていたパーティションを削除する。
- tmpディレクトリを作ってVMWareのHDD1のディスクイメージ全てコピーする。vmdkファイルに書かれているファイルも丸ごとコピー。parentFileNameHintの行があるなら、パスを調整する。
- VMWare設定で既存のHDD追加を選択し、今コピーしたイメージを追加する。これでWindowsシステムドライブのクローンが別のドライブとしてWindowsから見える。
- Windowsを立ち上げて、システムドライブのクローンのパーティションをdiskpart.exeで拡張する。
- Windowsを終了し、VMWareのHDD1のディスクイメージを適当なディレクトリに退避してから mv tmp/* . して拡張したパーティションをシステムドライブとして利用するようにする。
無事に立ち上がれば成功。