Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説

Windows Server 2012 R2以降のHyper-Vでは、仮想マシンのハードディスクを動的にサイズ変更できるようになりました。「Online VHDX Resize」機能を利用すると、仮想マシンを停止することなく(オンラインのまま)、VHDXファイルのサイズを拡大・縮小できます。本記事では、Windows 10やWindows Server 2016上で稼働するHyper-Vにおいて、仮想マシンのハードディスクサイズを拡張または縮小する方法を詳しく解説します(手順は無料のHyper-V Serverを含む、サポートされているすべてのバージョンのHyper-Vに適用可能です)。

Online VHDX Resizeの主な特徴と制限事項

  • 固定、可変、差分のいずれの種類のHyper-V仮想ディスクでもサイズ変更が可能です。
  • VHDXディスク(ゲストOSのシステムドライブを含む)は、仮想マシンを停止せずにオンラインでサイズ変更できます。ただし、動的なサイズ変更に対応しているのはVHDX形式のみで、旧形式のVHDは対象外です。VHDを使用している場合は、あらかじめVHDX形式へ変換しておく必要があります。
  • VHDXディスクは仮想SCSIコントローラー経由で接続されている必要があります。IDEコントローラーに接続されたディスクのオンライン拡張はサポートされておらず、その場合は仮想マシンをシャットダウンしてからサイズを変更します。
  • 第1世代・第2世代のどちらのHyper-V仮想マシンでも利用可能です。
  • ゲストOSはWindowsでもLinuxでも構いません。
  • 仮想ディスクの拡張と縮小の両方に対応しています。
  • Hyper-Vマネージャーのグラフィカルコンソール、PowerShell、Windows Admin Centerのいずれからでもサイズ変更できます。
  • クラスタで使用される共有VHDX(AVHDX)ディスクのサイズ変更はサポートされていません。
  • チェックポイント(スナップショット)が作成されている仮想ディスク(バックアップ処理中など)はサイズ変更できません。

Hyper-Vで仮想マシンのハードディスクを拡張する方法

Hyper-Vマネージャーコンソールから、仮想VHDXディスクのサイズを拡張できます。

  1. Hyper-Vマネージャーで対象の仮想マシンを選択し、「設定」を開いて「SCSI コントローラー」を展開します。
  2. サイズを変更する仮想ディスクを選択し、「編集」ボタンをクリックします。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説 「編集」ボタンがグレーアウトしていて「この仮想マシンにはチェックポイントが存在するため編集できません」という警告が表示される場合は、すべてのチェックポイントを削除してください。必要に応じて、仮想マシンのプロパティで「実稼働チェックポイント」オプションを無効化することも検討してください。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説
  3. 表示された「仮想ハードディスクの編集」ウィザードで「拡張」を選択します。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説
  4. 新しい仮想ハードディスクのサイズを指定します(ここでは例として170GBに拡張します)。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説
  5. 拡張したディスクを持つゲストOSのコンソールに移動します。ここでは、WindowsゲストOSのシステムパーティションを拡張する例を見てみましょう。「ディスクの管理」コンソールを開くと、ディスクに43GBの未割り当て領域が追加されていることが確認できます。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説
  6. 拡張したいパーティションを右クリックし、「ボリュームの拡張」を選択します(未割り当て領域の左側にあるボリュームのみ拡張可能です)。現在のボリュームサイズをどれだけ増やすか指定します。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説 なお、Windowsの回復パーティションが隣接している場合、ボリュームの拡張がブロックされることがあります。
  7. 拡張処理が完了すると、ボリュームサイズが増加します。LinuxゲストOSの場合は、partedツールなどを使用してディスクを拡張できます。

Hyper-Vの仮想ディスク(VHDX)を縮小する方法

続いて、Hyper-V上の仮想VHDXディスクを縮小する手順を見ていきましょう。

  1. Hyper-Vコンソールから仮想ディスクを縮小する前に、まずゲストOS内で論理パーティションのサイズを縮小し、空き領域を未割り当て領域に変換しておく必要があります。ゲストOSで「ディスクの管理」を開き、対象のボリュームを選択して「ボリュームの縮小」をクリックします。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説 注:「ボリュームの縮小」は、パーティションに十分な空き領域がある場合にのみ選択できます。
  2. 縮小する容量を指定します(この例では50GBを指定しています)。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説
  3. ゲストOS側でパーティションを縮小したら、Hyper-Vコンソールを開き、仮想ディスクの設定画面から「編集」ボタンを押します。
  4. 「仮想ハードディスクの編集」ウィザードで「縮小」を選択し、VHDXファイルの新しいサイズを指定します。ディスク上のデータ量より小さくすることはできないため、「最小」の値を確認してください。この例では、40GBから31GBまで縮小可能です。Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説 VHDXファイルを縮小する前に、最適化を行ってデフラグしておくと効果的です。前の画面で「圧縮」オプションを選択するか、PowerShellコマンドレットでHyper-Vの可変仮想ディスクを最適化・デフラグできます:Optimize-VHD -Path 'C:\VM\VHDHyper-V\fs01.vhdx'Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説
  5. 以上で完了です。

PowerShellでHyper-Vの仮想ハードディスクサイズを変更する方法

Hyper-Vホスト上でPowerShellを使用して、VHDXディスクのサイズを変更することもできます。その際はResize-VHDコマンドレットを使用します(Windows標準のディスク管理用コマンドレットであるResize-VirtualDiskと混同しないよう注意してください)。

注:最新バージョンのHyper-Vでは、Resize-VHDコマンドレットを使って仮想ディスクのサイズを変更する際に、仮想マシンをシャットダウンする必要はありません。

まず、仮想マシンのVHDXディスクへの完全なパスを取得します:

Get-VM -VMName fs01 | Select-Object VMId | Get-VHD

これらのコマンドレットは、ストレージ上のVHDXファイルの実際のサイズ(FileSize)と最大サイズ(Size)も返します。MinimumSizeは、仮想ディスクファイルを縮小できる最小サイズです。

Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説

VHDXディスクのサイズを拡張するには、新しいサイズを指定します:

Resize-VHD -Path 'C:\VM\fs01\VHD\fs01.vhdx' -SizeBytes 50Gb

指定した新しいサイズがディスク上のデータ量より小さい場合、次のようなエラーが表示されます:Resize-VHD : Failed to resize the virtual disk(仮想ディスクのサイズ変更に失敗しました)。

あとはゲストOS側でパーティションのサイズを変更するだけです。

Windowsのディスクは、PowerShellリモーティングを使ってリモートから拡張することもできます。Invoke-CommandまたはEnter-PSSessionコマンドレットを使用して(ネットワーク経由またはHyper-V PowerShell Direct経由で)、リモートの仮想マシンに接続します:

Enter-PSSession -ComputerName fs01
パーティションを拡張できる最大サイズを取得し、利用可能な最大サイズまで拡張します:

$MaxSize = (Get-PartitionSupportedSize -DriveLetter C).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSize

仮想ディスクを可能な限り最小のサイズまで縮小したい場合は、次のコマンドを実行します:

Resize-VHD -Path 'C:\VM\fs01\VHD\fs01.vhdx' -ToMinimumSize

Hyper-Vで仮想ハードディスク(VHDX)を拡張・縮小する方法|GUIとPowerShellの手順を解説

このコマンドにより、VHDXファイルの最大サイズが6GB削減されます。

KVMやVMwareなど、他のハイパーバイザーでの仮想ディスクのサイズ変更手順については、関連ドキュメントを参照してください。

  1. Macのハードディスクを完全に消去する方法|売却・譲渡前の初期化手順を徹底解説

    新しいMacの購入や機種変更をお考えですか?Macを誰かに手渡す前に、ハードディスクを完全に消去することは非常に重要です。ハードディスクには写真、書類、動画、音楽、メモなど、あらゆる個人情報が保存されています。そのため、デバイスを売却する場合でも、友人や家族に一時的に貸す場合でも、ハードディスク内のデータを必ず消去し、第三者があなたのファイルにアクセスできないようにしましょう。 「Macのハードディスクを消去して工場出荷時の状態に戻すにはどうすればいいの?」とお悩みの方は、まさにここを読むべき場所です。本記事では、ハードディスク上のすべてのデータを消去し、macOSを初期状態に戻すための完全

  2. Windowsでハードディスクエラーを修復する方法【chkdsk完全ガイド】

    Windowsは世界で最も広く使われているオペレーティングシステムです。パソコンを使ったことがある方なら、誰もがWindowsの操作環境に馴染みがあるのではないでしょうか。パーソナルコンピュータの誕生以来、Windowsは私たちの記憶の中に確固として残り続けている存在です。 Windowsに関する基本的な用語はご存じの通りとして、ここからはさらに踏み込んで解説していきます。動作の遅い、もっさりしたPCを使いたい人はいませんよね。特定のエラーやバグの存在が、Windowsのパフォーマンス低下を招いてしまうのです。その中でも頻繁に発生するのが、HDD(ハードディスク)エラーと呼ばれるもので、時にか