これでできる!Virtual PC 仮想ディスクの拡張

時間はそれなりにかかりますが、やっていることは単純です。実マシンでHDD買ってきて再インストールしていたことを考えると、随分いい時代になりました。

仮想ディスクをコマンドラインから拡大/縮小する − @IT」によると、Windows7 などでは、Virtual PC 稼働ディスクの拡張が簡単にできるようです。まだWindowsのメインマシンはVistaなので、この方法が使えないのが残念です。ということで、Vistaでどうすればいいか調べてみました。

まず、vmtoolkit の VHD Resizer をダウンロードします。 Announcements : VHD Expander is now VHD Resizer でDownloadをメニューから選び、VHD Resizerをダウンロードします。

これを起動して、VHDディスクをリサイズします。リサイズされた仮想ディスクファイルは新規に作成されるのですが、このままでばボリュームが拡張されていないため、OSから見えるディスクのサイズ(ボリュームサイズ)は増えません。次の手順で拡張する必要があります。

VHD Resizerは、Windowsのシステム・ボリュームやブート・ボリュームは拡大できませんから、プライマリディスクとして使うためには、次の手順でリサイズをしてから、仮想マシンの設定を変更する必要があります。試したところ、どこかのタイミングでHDDの起動用情報が入っている領域が壊れるので、そこを修復するためにWindows Vista のインストールメディア(DVD)を使って直します(この部分は記憶に頼っている部分があるので、説明が足りていないかもしれません)。

  1. ツールでリサイズした仮想ディスクファイルを用意(コピーされるのでオリジナルはそのまま使える)
  2. リサイズした仮想ディスクファイルを2つめのHDD(ハードディスク2)として、仮想マシンへ登録(設定画面で可能)
  3. 仮想マシンを起動してログイン
  4. コマンドプロンプトを[管理者として実行]で起動
  5. diskpartツールを起動して、ディスクのボリュームサイズをリサイズ
  6. diskpartツールを終了して、仮想マシンをシャットダウン。終了時にハードディスクへの変更を保存。
  7. リサイズした仮想ディスクファイルを1つめのHDD(ハードディスク1)として、仮想マシンへ登録(設定画面で可能)
  8. 2つめのHDD(ハードディスク2)は「なし」として、仮想マシンへ登録(設定画面で可能)
  9. ホストマシンへWindows VistaインストールメディアDVDをいれて、仮想マシン起動
  10. メニューの [CD]-[物理ドライブの使用]をクリック
  11. DVDから起動できず、HDDから起動できないと、Windows起動に失敗したメッセージがでるので、[操作]-[リセット]をして、仮想マシンを再起動。DVDから起動できた場合は先に進む
  12. リセット後のコンソール画面で、DVDから起動する場合には、何かキーを押すようにいわれるので、[Enter]キーを押す。
  13. Windows Vista インストール画面が表示されたら、最初の画面で[次へ]ボタンをクリック。
  14. [今すぐインストール]の画面で、左下に[コンピュータを修復する]という項目があるので、これをクリックして修復
  15. [システム回復オプション]のウィンドウで、そのまま[次へ]ボタンをクリック
  16. [スタートアップ修復]をクリックして修復
  17. [シャットダウン]をクリックして終了。終了時にハードディスクへの変更を保存
  18. 仮想マシンを起動すると、Windwos Vista が起動する。
  19. ログインして、[スタート]-[コンピュータ]でハードディスクドライブの容量を確認する。

さて、大体の手順はわかったでしょうか。ここで、diskpartツールの使い方についても説明しておきます。

  1. コマンドプロンプトで diskpart とコマンド実行
  2. list disk で、ハードディスクの一覧を表示できます。Disk 1 が、Size 32GB なのに Free 16GB となっていることがわかります。これが拡張したハードディスクです。Disk 0 は Free 0B となっています。これは、システムディスクなので、すべての領域が使用済みだということがわかります。
  3. list volume で、ボリュームの一覧を表示できます。LtrがEとなっているものが、ハードディスク2として登録したディスクのボリュームです。Sizeが32GBだということがわかります。
  4. select volume 2 で、2番目のボリュームを選択します。
  5. extend コマンドで拡張します。
  6. list voume で、2番目のボリュームのSizeが32GBになったことを確認します。
  7. exitとして、diskpartを終了

実行時の画面は次のようになります。

C:\Windows\system32> diskpart
DISKPART> list disk

  Disk ###  Status           Size     Free     Dyn  Gpt
  --------  ---------------  -------  -------  ---  ---
  Disk 0    オンライン         20 GB      0 B
  Disk 1    オンライン         32 GB    12 GB

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  メディアなし

  Volume 1    C                NTFS  Partition     20 GB  正常       システム

  Volume 2    E                NTFS  Partition     20 GB  正常

DISKPART> select volume 2

ボリューム 2 が選択されました。

DISKPART> extend

DiskPart はボリュームを正常に拡張しました。

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  メディアなし

  Volume 1    C                NTFS  Partition     20 GB  正常       システム

* Volume 2    E                NTFS  Partition     32 GB  正常

DISKPART> exit

DiskPart を終了しています…

C:\Windows\system32>

ちなみに、Windows Vistaでは、GUIのディスク管理ツール([コンピュータの管理]-[記憶域]-[ディスクの管理]で表示可能)でも、この拡大操作が可能だったようですが、そちらは試していません。

最後の方で若干はまりましたが、無事切り替えができました。ところで、「管理者必携! 最強のデータ・サルベージ・ツールを自作する − @IT」のようにWindows PE といったものもあるのですね。ちょっと驚きました。

こちらのページ「Windows Vistaの起動用フロッピィを作成する方法」も参考になりました。

関連書籍:

同じカテゴリの記事: Win