- 技術 💻
Hyper-Vとは|有効化・仮想マシン作成・仮想スイッチ・エラー対処
結論
Hyper-Vとは、Windowsに組み込まれた仮想化機能で、Pro以上のエディションなら追加料金なしで使えます。Home では使えません。
この記事でわかること
- 有効化3通りと、仮想マシン作成の8画面の手順
- 仮想スイッチ4種の違いをLinuxで再現した結果
- PowerShell早見表36行とエラー原文10種の直し方
Hyper-V はハードウェアの上で直接動く「ハイパーバイザー」です。有効にすると、Windows 本体(管理 OS)も仮想マシンも、その上に並んで動きます。
flowchart TD
HW[PC のハードウェア<br>CPU の仮想化支援 VT-x・AMD-V] --> HV[Hyper-V<br>ハイパーバイザー]
HV --> P[Windows 本体<br>管理 OS]
HV --> V1[仮想マシン1<br>Ubuntu など]
HV --> V2[仮想マシン2<br>Windows など]
P -.->|Hyper-V マネージャー・PowerShell で操作| V1
やりたいことごとの入口は次のとおりです。
| やりたいこと | 最初にやること | 詳しくは |
|---|---|---|
| 自分のPCで使えるか調べる | systeminfo の Hyper-V の要件を見る |
使える条件 |
| 有効にする | Windows の機能で Hyper-V にチェック → 再起動 | 有効にする方法 |
| 仮想マシンを作る | Hyper-V マネージャー → 新規 → 仮想マシン | 仮想マシンの作成手順 |
| 仮想マシンをネットにつなぐ | ネットワークで Default Switch を選ぶ | 仮想スイッチ |
| 変更前の状態に戻せるようにする | チェックポイントを作る | チェックポイント |
| Home で仮想マシンを使いたい | Hyper-V は不可。WSL2・VirtualBox など | 違い表 |
| VirtualBox・VMware が動かない | Hyper-V と同時に使える版か確かめる | 同時に使えるか |
| やめたい | Windows の機能でチェックを外す | 無効にする方法 |
確認環境:Hyper-V の要件・有効化・仮想マシンの作成・仮想スイッチ・NAT・チェックポイント・世代・構成バージョン・拡張セッション・入れ子の仮想化・PowerShell のコマンドレットは Microsoft Learn(日本語版と英語版)と、Microsoft Learn の元原稿(GitHub の MicrosoftDocs)のスクリーンショットで確かめました。Hyper-V は Windows の機能のため、仮想スイッチの考え方は Ubuntu 24.04.4(カーネル 6.18)の ip netns の中で Linux のブリッジを使い、iproute2 6.1.0・nftables 1.0.9・tcpdump 4.99.4・iputils 20240117 で外部・内部・プライベート・NAT の4通りを再現しました。仮想ハードディスクは qemu-img 8.2.2 で VHDX(容量可変・固定)を作り、チェックポイントの仕組み(差分ディスク)は qcow2 の差分ディスクで再現しています。WSL2 は Microsoft Learn、Docker Desktop は docs.docker.com、VirtualBox は virtualbox.org と Oracle のマニュアル、VMware Workstation は VMware のドキュメント・Broadcom のナレッジ記事・VMware のブログで確かめました(確認日 2026年10月22日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Hyper-Vとは|有効化・仮想マシン作成・仮想スイッチ・エラー対処」
Hyper-Vとは(読み方・仕組み・無料か)
この節では、Hyper-V が何をするもので、どの Windows に入っていて、お金がかかるのかが分かります。
Hyper-V(ハイパーブイ)は、Microsoft が Windows と Windows Server に組み込んでいる仮想化の機能です。 1台の PC の中に「仮想マシン」(ソフトウェアで作ったもう1台のコンピューター)を作り、Ubuntu や別の Windows を同時に動かせます。
Microsoft Learn は Hyper-V を「type-1 ハイパーバイザー」と説明しています。type-1 は、OS の上のアプリとして動くのではなく、ハードウェアの上で直接動く形です。そのため、Hyper-V を有効にすると Windows 本体もハイパーバイザーの上で動く形になります(冒頭の図)。
| 項目 | 内容 |
|---|---|
| 正式な位置づけ | Windows のオプション機能(Windows Server ではサーバーの役割) |
| 入っている Windows | Windows 11 の Pro・Enterprise・Education、Windows 10 の Pro・Enterprise |
| 料金 | Windows に含まれる。Microsoft Learn には「Hyper-V ダウンロードはありません」とある |
| 動かせる OS | Windows・Linux・FreeBSD の多くの版 |
| 操作する道具 | Hyper-V マネージャー(画面)、PowerShell、仮想マシン接続(VMConnect) |
| ハイパーバイザーの種類 | type-1(ハードウェアの上で直接動く) |
Windows 11 で入っているエディションは、Hyper-V の概要のページでは Pro・Enterprise・Education、インストール手順のページでは Pro・Enterprise と書かれています。どちらのページも Home は含みません。
1別の OS を試せる
Windows を入れたまま、Ubuntu や別の版の Windows を仮想マシンで動かせる。
2失敗しても戻せる
チェックポイントを作っておくと、設定変更の前の状態に仮想マシンを戻せる。
3本体から切り離せる
仮想マシンの中で起きたことは、Windows 本体と分かれている。検証用の環境に向く。
4ネットワークを組める
仮想スイッチで、仮想マシン同士だけの網や、LAN に直接出る網を作れる。
Hyper-V は Windows 8 以降の Windows に入っていて、その前の Windows 7 には、ホスト型(Windows の上のアプリとして動く形)の「Windows Virtual PC」がありました(PC Watch の連載「Windows 11便利テク」による)。Windows 11 の Hyper-V は、仮想マシンの構成バージョン 12.0(24H2)まで扱えます(後の「Get-VM の出力の読み方」)。
Hyper-Vが使える条件(エディション・CPU・メモリ)
この節では、自分の PC で Hyper-V を有効にできるかを、コマンドで確かめる方法が分かります。
Microsoft Learn の「Windows Hyper-V システム要件」に書かれている条件です。
- 1エディションが Pro・Enterprise・EducationWindows 10 Home・Windows 11 Home には入れられない
- 264ビットの CPU で、第2レベルのアドレス変換(SLAT)があるHyper-V マネージャーなど管理ツールだけなら SLAT は要らない
- 3CPU に VM モニター モード拡張機能があるIntel VT・AMD-V などの仮想化支援
- 4BIOS・UEFI で仮想化がオン設定の場所は PC のマニュアルで確かめる
- 5データ実行防止(DEP)が有効Intel は XD ビット、AMD は NX ビット
- 6メモリが 4GB 以上ホストと同時に動かす仮想マシンの分が要る
systeminfoで確かめる
コマンドプロンプトか PowerShell で systeminfo を実行し、最後の Hyper-V Requirements(Hyper-V の要件)の欄を見ます。Microsoft Learn(英語版)のスクリーンショットに写っている部分を書き起こすと、次のとおりです。
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
| 行 | 意味 | No のときに見る所 |
|---|---|---|
| VM Monitor Mode Extensions | CPU に仮想化支援があるか | CPU の型番の仕様 |
| Virtualization Enabled In Firmware | BIOS・UEFI で仮想化がオンか | BIOS・UEFI の設定 |
| Second Level Address Translation | SLAT があるか | CPU の型番の仕様 |
| Data Execution Prevention Available | DEP が使えるか | BIOS・UEFI の XD・NX の設定 |
4行とも Yes なら Hyper-V を有効にできます。すでに Hyper-V が動いている PC では、4行の代わりに次の1行が出ます。Microsoft Learn には、この表示は Hyper-V がすでに動いているときのものと書かれています。
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
Linuxで同じことを調べると
仮想化支援の有無は Linux でも確かめられます。この記事の確認に使った Ubuntu 24.04.4 で実行した出力です。
$ lscpu | grep -E "Hypervisor vendor|Virtualization type"
Hypervisor vendor: KVM
Virtualization type: full
$ grep -cE 'vmx|svm' /proc/cpuinfo
0
$ ls /dev/kvm
ls: cannot access '/dev/kvm': No such file or directory
Hypervisor vendor: KVM は、この Linux 自体が KVM の仮想マシンの中で動いているという意味です。CPU の仮想化支援を表す vmx(Intel)・svm(AMD)の印が 0 件なので、この中ではさらに仮想マシンを動かせません。Windows の仮想マシンやクラウドの仮想マシンに Hyper-V を入れようとして失敗するのも同じ理由で、後の「よくあるエラー」の The processor does not have required virtualization capabilities に当たります。
Windows 11 Homeでは使えない
Microsoft Learn には「Hyper-V の役割は、Windows 10 Home または Windows 11 Home にはインストールできません」とあります。Home で仮想マシンを使う方法は、後の「WSL2・Docker Desktop・VirtualBox・VMware との関係と違い」にまとめています。WSL2 は Home でも使えます。
Hyper-Vを有効にする方法(Windowsの機能・PowerShell・DISM)
この節では、Hyper-V を有効にする3つの方法と、終わったかの確かめ方が分かります。どの方法でも最後に再起動が要ります。 Hyper-V は Windows に組み込まれているので、ダウンロードはありません。
画面で有効にする(Windows 11)
スタートで「コントロール パネル」を開き、プログラム → プログラムと機能 → Windows の機能を有効または無効にする を選びます。Hyper-V にチェックを入れて OK を選ぶと、終わったところで再起動を求められます。
PowerShell で有効にする
Windows PowerShell を右クリックして 管理者として実行 し、Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All を実行します。再起動を聞かれたら Y を入力します。
DISM で有効にする
管理者の PowerShell かコマンドプロンプトで DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V を実行します。「操作が正常に完了しました」と出れば有効になっています。
再起動して確かめる
再起動後、スタートで「Hyper-V マネージャー」が出れば使えます。systeminfo の欄が「A hypervisor has been detected.」の1行になっていれば、ハイパーバイザーが動いています。
Microsoft Learn に載っているコマンドをまとめると次のとおりです。
# 管理者の PowerShell で実行する
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# DISM の場合
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
Windows の機能の一覧に Hyper-V が無く、Windows ハイパーバイザー プラットフォーム だけがある場合について、Microsoft Learn は「システムが Hyper-V と互換性がない可能性がある」としています。エディションと上の要件を見直します。Windows ハイパーバイザー プラットフォームは、VirtualBox などほかの会社のソフトが Hyper-V の仕組みを使うための API です(後の「同時に使えるか」)。
Hyper-Vで仮想マシンを作成する手順
この節では、Hyper-V マネージャーの「仮想マシンの新規作成ウィザード」で、何をどう選ぶかが分かります。作る前に、OS のインストール用の .iso ファイルを用意しておきます。
ウィザードを開く(開始する前に)
Hyper-V マネージャーの左でコンピューター名を選び、右の 操作 → 新規 → 仮想マシン を選びます。最初の説明の画面は 次へ。
名前と場所の指定
仮想マシンの名前を入れます。構成ファイルを別の場所に置くときは 仮想マシンを別の場所に保存する にチェックを入れます。
世代の指定
Microsoft Learn は、第1世代にする理由が無ければ 第2世代 を選ぶとしています。作成後に世代は変えられません。
メモリの割り当て
起動時に割り当てるメモリを入れます。動的メモリ を有効にすると、仮想マシンの使う量に合わせて割り当てが変わります。最小は 32MB です。
ネットワークの構成
つなぐ仮想スイッチを選びます。インターネットにつなぐだけなら Default Switch。スイッチを作っていなければ後で設定できます。
仮想ハード ディスクの接続
仮想ハード ディスクを作成する(名前・場所・サイズ)、既存の仮想ハード ディスクを使用する(.vhd・.vhdx)、後で仮想ハード ディスクを接続する から選びます。
インストール オプション
OS のインストール方法を選びます。.iso から入れるなら 起動可能なイメージ ファイルからオペレーティング システムをインストールする を選び、ファイルを指定します。
概要で確かめて完了
選んだ内容を見て 完了 を選びます。一覧に仮想マシンが出たら、右クリック → 接続 → 起動 で OS のインストールが始まります。
仮想マシンを作るには、ローカルの Administrators グループか Hyper-V Administrators グループに入っている必要があります。PowerShell で同じものを作る方法は、後の「PowerShell コマンド早見表」にあります。
第1世代と第2世代の違い
Microsoft Learn の「Hyper-V でジェネレーション 1 または 2 の仮想マシンを作成するか」から、選ぶときに効く違いをまとめました。
| 項目 | 第1世代 | 第2世代 |
|---|---|---|
| ファームウェア | 従来の BIOS | UEFI(セキュアブートが既定でオン) |
| 起動ディスク | IDE の .vhd・.iso・物理 CD/DVD | SCSI の .vhdx・.iso |
| ブートボリュームの上限 | .vhdx 2TB・.vhd 2040GB | 64TB |
| ゲスト OS | 32ビットを含むほとんどの OS | 64ビットの Windows、新しい Linux・FreeBSD |
| Windows 11 | 使えない | 使える |
| 物理 CD/DVD ドライブ | つなげる | つなげない(ISO だけ) |
作成後に世代は変えられません。 迷ったら第2世代にし、32ビットの OS や BIOS でしか起動しない既存の仮想ディスクを使うときだけ第1世代にします。
仮想ハードディスク:容量可変と固定(VHDXの実物)
Hyper-V の仮想ハードディスクは .vhdx(以前の形式は .vhd)のファイルです。PowerShell の New-VHD の説明では、種類を指定しないと容量可変(Dynamic)になり、使った分だけファイルが大きくなります。固定(Fixed)は作った時点で全部の大きさを確保します。
VHDX は公開された形式なので、Linux の qemu-img 8.2.2 でも作れます。20GiB の容量可変と、64MiB の固定を作って比べました。
$ qemu-img create -f vhdx -o subformat=dynamic dyn.vhdx 20G
Formatting 'dyn.vhdx', fmt=vhdx size=21474836480 log_size=1048576 block_size=0 subformat=dynamic
$ qemu-img create -f vhdx -o subformat=fixed fixed.vhdx 64M
Formatting 'fixed.vhdx', fmt=vhdx size=67108864 log_size=1048576 block_size=0 subformat=fixed
$ qemu-img info dyn.vhdx
image: dyn.vhdx
file format: vhdx
virtual size: 20 GiB (21474836480 bytes)
...
file length: 8 MiB (8388608 bytes)
$ qemu-img info fixed.vhdx
...
virtual size: 64 MiB (67108864 bytes)
...
file length: 72 MiB (75497472 bytes)
$ od -c -N 8 dyn.vhdx
0000000 v h d x f i l e
続けて、容量可変のディスクの先頭と、10GiB の位置に 1MiB ずつ書き込みました。
$ qemu-io -f vhdx -c "write 0 1M" -c "write 10G 1M" dyn.vhdx
wrote 1048576/1048576 bytes at offset 0
wrote 1048576/1048576 bytes at offset 10737418240
$ qemu-img info dyn.vhdx | grep -E "virtual size|file length"
virtual size: 20 GiB (21474836480 bytes)
file length: 40 MiB (41943040 bytes)
ファイルの先頭8バイトは vhdxfile という目印でした。容量可変は、書いた場所に応じて決まった大きさの区画(このファイルでは 16MiB)ずつ増えていきます。容量可変は「最大サイズ」までホストのディスクを使う可能性があるので、ホストの空き容量は最大サイズで見積もります。
クイック作成(ギャラリー)
Hyper-V マネージャーの クイック作成 は、ギャラリーから OS のイメージを選ぶか、ローカル インストール ソース で手元の .iso・.vhdx を指定して、少ない入力で仮想マシンを作る機能です。Microsoft のブログ(2017年11月、Windows 10 Fall Creators Update の新機能)で紹介され、ギャラリーには自分のイメージも足せます。Ubuntu の公式ドキュメントは、Windows 10・11 では Quick Create の Ubuntu イメージを使う方法を勧めていて、このイメージにはクリップボードの共有・画面の大きさの自動調整・共有フォルダーが設定済みとしています。
PC Watch(2022年1月)で紹介されている「Windows 11 開発環境」のイメージについては、配布元の Microsoft のページ(developer.microsoft.com の仮想マシンのダウンロード)が、2026年10月22日時点で Microsoft Learn の「Windows の開発環境」のページへ転送されます。
Windows 11を入れるとき(第2世代とTPM)
Windows 11 は第2世代の仮想マシンだけが対応です。Windows 11 のインストールには TPM が要るため、仮想マシンの TPM(仮想 TPM)を有効にします。画面では仮想マシンの 設定 → セキュリティ で、PowerShell では Enable-VMTPM -VMName "VM01" です。仮想 TPM は構成バージョン 7.0 以降の機能です。
Ubuntuを入れるとき(セキュアブートのテンプレート)
第2世代ではセキュアブートが既定でオンで、テンプレートは Windows 用になっています。Microsoft Learn は、セキュアブートを使う第2世代の Linux 仮想マシンでは「UEFI CA」のテンプレートを選ぶとしています。Ubuntu の公式ドキュメントの手順では、作成後・起動前に仮想マシンの設定の Security で、テンプレートを「Microsoft Windows」から「Microsoft UEFI Certificate Authority」に変えます。メモリは 2048MB 以上、ディスクは 25GB 以上を勧めています。テンプレートを変える代わりに、セキュアブートをオフにする方法もあります(PowerShell では Set-VMFirmware -VMName 'TestVM' -EnableSecureBoot Off)。同じドキュメントによると、ISO から手で入れた Ubuntu では、クイック作成のイメージにあるクリップボードの共有・画面の大きさの自動調整・共有フォルダーは、既定では有効になりません。
仮想マシンの起動・接続と拡張セッション
この節では、作った仮想マシンを動かし、画面に接続する方法と、コピー&貼り付けができる「拡張セッション」の条件が分かります。
| 操作 | Hyper-V マネージャー | PowerShell |
|---|---|---|
| 起動 | 右クリック → 起動 | Start-VM -Name TestVM |
| 画面に接続 | 右クリック → 接続 | VMConnect.exe localhost "TestVM" |
| シャットダウン | 右クリック → シャットダウン | Stop-VM -Name TestVM |
| 電源を切る | 右クリック → 停止 | Stop-VM -Name TestVM -TurnOff |
| 一時停止 | 右クリック → 一時停止 | Suspend-VM -Name TestVM |
| 状態を保存して止める | 右クリック → 保存 | Save-VM -Name TestVM |
Stop-VM はゲスト OS を通してシャットダウンします。-TurnOff は電源を抜くのと同じで、保存していないデータが失われることがあります。-Force は、保存していないアプリがあっても5分待ってからシャットダウンします。
拡張セッション モードは、仮想マシン接続(VMConnect)がリモートデスクトップ(RDP)の仕組みでつなぐ形です。Microsoft Learn によると、この機能は Windows の仮想マシンだけで使え、ウィンドウの大きさの変更、クリップボードの共有、コピー&貼り付けによるファイルの受け渡し、USB 機器・ドライブ・プリンター・マイクとスピーカーの共有ができます。
使うには、仮想マシンの Windows でリモートデスクトップを有効にします。Windows 10(2004 以降)と Windows 11 では、仮想マシンの中で アカウント → サインイン オプション の「セキュリティを強化するため、このデバイスで Microsoft アカウントの Windows Hello サインインのみを許可する」をオフにします。オンのままだと、拡張セッションでサインインの画面が出ないことがあります。セッションの切り替えは、VMConnect のツールバーの 拡張セッション モード のアイコンで行います。
Hyper-Vの仮想スイッチ(外部・内部・プライベート・Default Switch)
この節では、仮想マシンをどのネットワークにつなぐかを決める「仮想スイッチ」の種類と、それぞれで何と通信できるかが分かります。
仮想スイッチは、仮想マシンの LAN ケーブルの差し先になる、ソフトウェアのスイッチ(ハブ)です。種類は、通信できる相手が下へ行くほど広がります。
flowchart TD
P[プライベート<br>仮想マシン同士だけ] -->|ホストの口を足す| I[内部<br>仮想マシンとホスト]
I -->|NAT を足す| D[Default Switch<br>ホスト経由でインターネットへ]
I -->|物理 NIC を足す| E[外部<br>LAN にも直接出る]
| 種類 | 仮想マシン同士 | ホストと | LAN・インターネットと |
|---|---|---|---|
| プライベート | 通信できる | 通信できない | 通信できない |
| 内部 | 通信できる | 通信できる | 通信できない(NAT を足せばできる) |
| 外部 | 通信できる | 通信できる(共有を許可したとき) | 通信できる。LAN から仮想マシンが1台の機器に見える |
| Default Switch | 通信できる | 通信できる | NAT でホストのアドレスとして出る |
Default Switch は、Hyper-V を有効にすると最初からある仮想スイッチです。Microsoft のブログ(2017年11月)によると、NAT でホストのネットワーク接続を共有し、仮想マシンには IP アドレスが自動で割り当てられます。名前の変更や削除はできません。Microsoft Q&A の回答では、内部スイッチに NAT を組み合わせた形で、固定 IP には変えられないとされています。
Linuxのブリッジで4種類を再現した結果
Hyper-V の仮想スイッチは、Linux では「ブリッジ」が同じ役目をします。ip netns(ネットワークの名前空間)で「ホスト」「仮想マシン1・2」「LAN(ルーター 192.168.77.1)」を分け、ホストの中に vsw というブリッジを作って、4種類を順に試しました。
# ホストの中に仮想スイッチ(ブリッジ)を作り、仮想マシンの NIC を差す
ip netns exec s307-host ip link add vsw type bridge
ip netns exec s307-host ip link set vsw up
ip netns exec s307-host ip link set vnic1 master vsw
ip netns exec s307-host ip link set vnic2 master vsw
ip netns exec s307-vm1 ip addr add 10.7.0.11/24 dev vm1-eth0
ip netns exec s307-vm2 ip addr add 10.7.0.12/24 dev vm2-eth0
プライベート(ホストはブリッジに IP を持たない)では、仮想マシン同士は届き、ホストからは届きませんでした。
$ bridge link
2: vnic1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master vsw state forwarding priority 32 cost 2
3: vnic2@vnic1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master vsw state forwarding priority 32 cost 2
### vm1 -> vm2
64 bytes from 10.7.0.12: icmp_seq=1 ttl=64 time=0.057 ms
64 bytes from 10.7.0.12: icmp_seq=2 ttl=64 time=0.051 ms
### host -> vm1
ping: connect: Network is unreachable
### vm1 -> LAN のルーター
ping: connect: Network is unreachable
スイッチは、どのポートの先にどの MAC アドレスがあるかを覚えて転送します。ブリッジが覚えた表には、2台の仮想マシンの NIC の MAC アドレスが入っていました。
$ bridge fdb show br vsw | grep -v permanent
e6:c6:63:2f:77:8b dev vnic1 master vsw
a2:83:f5:ac:cd:16 dev vnic2 master vsw
内部(ブリッジにホストの IP 10.7.0.1 を付ける)にすると、ホストから仮想マシンに届きました。Windows では、このホスト側の口が vEthernet (スイッチ名) という名前のネットワーク アダプターとして見えます。LAN には出られません。
$ ip addr add 10.7.0.1/24 dev vsw # ホスト側
$ ping -c 2 10.7.0.11 # ホスト -> vm1
64 bytes from 10.7.0.11: icmp_seq=1 ttl=64 time=0.043 ms
2 packets transmitted, 2 received, 0% packet loss, time 1008ms
### vm1 -> LAN のルーター(vm1 の既定のゲートウェイは 10.7.0.1)
2 packets transmitted, 0 received, 100% packet loss, time 1010ms
NAT(Default Switch と同じ考え方)は、内部スイッチに、ホストでの送信元アドレスの書き換え(masquerade)を足した形です。LAN 側で tcpdump を取ると、届いたパケットの送信元は仮想マシンの 10.7.0.11 ではなく、ホストの 192.168.77.10 でした。
$ nft list ruleset # ホスト側
table ip nat {
chain post {
type nat hook postrouting priority srcnat; policy accept;
ip saddr 10.7.0.0/24 oifname "eth0" masquerade
}
}
### LAN 側の tcpdump(vm1 から 192.168.77.1 へ ping)
18:46:18.626963 IP 192.168.77.10 > 192.168.77.1: ICMP echo request, id 24522, seq 1, length 64
18:46:18.626979 IP 192.168.77.1 > 192.168.77.10: ICMP echo reply, id 24522, seq 1, length 64
### vm1 側
64 bytes from 192.168.77.1: icmp_seq=1 ttl=63 time=0.559 ms
外部は、ホストの物理 NIC(ここでは eth0)をスイッチのポートにする形です。仮想マシンに LAN と同じ範囲の IP(192.168.77.21)を付けると、LAN のルーターから仮想マシンが1台の機器として見えました(ARP の表に仮想マシンの MAC アドレスが並ぶ)。
$ ip link set eth0 master vsw # 物理 NIC をスイッチにつなぐ
### vm1 -> LAN のルーター
64 bytes from 192.168.77.1: icmp_seq=1 ttl=64 time=0.038 ms
### LAN 側の ip neigh
192.168.77.10 lladdr 06:8f:5d:83:06:17 DELAY
192.168.77.21 lladdr e6:c6:63:2f:77:8b DELAY
外部スイッチを作るときに Hyper-V が「ネットワーク接続が中断される可能性がある」と警告する理由も、ここで分かります。物理 NIC をブリッジにつないだのに、ホストの IP を物理 NIC に残したまま(近くの機器の MAC アドレスの記憶を消した状態で)試すと、ホスト自身が LAN に届かなくなりました。
### ホストの IP を eth0 に残したまま
2 packets transmitted, 0 received, 100% packet loss, time 1028ms
$ ip neigh show
192.168.77.1 dev eth0 INCOMPLETE
### ホストの IP をブリッジ(vsw)に移した後
64 bytes from 192.168.77.1: icmp_seq=1 ttl=64 time=0.039 ms
Hyper-V の 管理オペレーティング システムにこのネットワーク アダプターの共有を許可する をオンにすると、ホストの通信はスイッチ側の vEthernet の口に移ります。上の「IP をブリッジに移した」状態がこれに当たります。ここで使った ip・bridge などの Linux のコマンドは、関連記事「Linuxネットワークコマンド一覧|ip/ss/ncで障害切り分け」で扱っています。
外部スイッチ
会社の LAN では、つないでよい機器か・IP の割り当てを管理者と確かめる
Default Switch(NAT)
設定が要らず、物理 NIC の設定も変わらない
仮想スイッチの作り方(画面・PowerShell)
画面では、Hyper-V マネージャーの 操作 → 仮想スイッチ マネージャー で種類を選び、仮想スイッチの作成 を選びます。外部を選んだときは使う物理 NIC を選び、警告に はい と答えます。
Get-NetAdapter # 物理 NIC の名前を調べる
New-VMSwitch -Name ExternalSwitch -NetAdapterName "Ethernet" # 外部(NIC 名を指定すると外部になる)
New-VMSwitch -Name LabInternal -SwitchType Internal # 内部
New-VMSwitch -Name LabPrivate -SwitchType Private # プライベート
Set-VMSwitch -Name ExternalSwitch -AllowManagementOS $true # ホストにも NIC を共有させる
Connect-VMNetworkAdapter -VMName Test1 -SwitchName LabInternal # 仮想マシンをつなぎ替える
外部スイッチと内部スイッチには VLAN ID も設定できます(画面では 管理オペレーティング システムの仮想 LAN ID を有効にする)。VLAN ID は、つなぐ先のネットワークの設定と合わせます。NAKIVO の解説では、仮想マシンを別のホストへ移すときは、移行先にも同じ名前の仮想スイッチを用意するとしています。
NATネットワークを自分で作る
Default Switch では IP の範囲を選べません。範囲を決めたい場合は、Microsoft Learn の「NAT ネットワークを設定する」の手順で、内部スイッチに NAT を足します(上の Linux の NAT と同じ形です)。
New-VMSwitch -SwitchName "NATSwitch" -SwitchType Internal
Get-NetAdapter # vEthernet (NATSwitch) の ifIndex を見る
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 24
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
Get-NetAdapter の出力は、Microsoft Learn の例では次のとおりです。内部スイッチは vEthernet (スイッチ名)、説明は Hyper-V Virtual Ethernet Adapter で出ます。
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
vEthernet (intSwitch) Hyper-V Virtual Ethernet Adapter 24 Up 00-15-5D-00-6A-01 10 Gbps
Wi-Fi Marvell AVASTAR Wireless-AC Net... 18 Up 98-5F-D3-34-0C-D3 300 Mbps
この NAT は仮想マシンに IP を配らないので、仮想マシンの中で IP(192.168.0.0/24 の範囲)・既定のゲートウェイ(192.168.0.1)・DNS を手で設定します。Microsoft Learn は、ホストあたり NAT ネットワークは1つに限られるとし、うまく動かないときは Get-NetNat で NAT が1つだけかを確かめるよう説明しています。IP アドレスの範囲の決め方は、関連記事「デフォルトゲートウェイとは|調べ方・設定・決め方をLinuxで実演」で扱っています。Windows 側で vEthernet のアダプターの IP を確かめるコマンドは、関連記事「ipconfigの使い方とMTUとは|/all・/flushdnsとMTUの実例」で扱っています。
チェックポイントの使い方(標準と運用)
この節では、仮想マシンを前の状態に戻す「チェックポイント」の種類・操作と、その正体が分かります。
チェックポイント(以前の名前はスナップショット)は、仮想マシンのある時点の状態を残し、後でその状態に戻すための機能です。Windows 10・11 の Hyper-V には2種類あり、既定は運用チェックポイントです。
標準チェックポイント
ディスクに加えて、メモリの状態も残す
戻すと、開いていたアプリもそのままの画面に戻る
Active Directory など、複数の台でデータを複製するシステムでは整合性の問題を起こすことがある
運用チェックポイント(既定)
Windows はボリューム シャドウ コピー、Linux はファイルシステムのフリーズで、データの整合性を保って残す
メモリの状態は残さない。戻すと仮想マシンは電源オフの状態になる
種類は Set-VM -CheckpointType で変えられる
| 操作 | Hyper-V マネージャー | PowerShell |
|---|---|---|
| 作成 | 仮想マシンを右クリック → チェックポイント | Checkpoint-VM -Name <VM名> |
| 一覧 | 下のチェックポイント欄 | Get-VMCheckpoint -VMName <VM名> |
| 適用(戻す) | チェックポイントを右クリック → 適用 | Restore-VMCheckpoint -Name <名前> -VMName <VM名> -Confirm:$false |
| 名前の変更 | 右クリック → 名前の変更 | Rename-VMCheckpoint -VMName <VM名> -Name <名前> -NewName <新しい名前> |
| 削除 | 右クリック → 削除(サブツリーごとも可) | Remove-VMCheckpoint -VMName <VM名> -Name <名前> |
| エクスポート | 右クリック → エクスポート | Export-VMCheckpoint -VMName <VM名> -Name <名前> -Path <保存先> |
| 種類を変える | 設定 → 管理 → チェックポイント | Set-VM -Name <VM名> -CheckpointType Standard |
画面で 適用 を選ぶと、チェックポイントの作成と適用(今の状態を残してから戻す)・適用(今の状態は失われ、元に戻せない)・キャンセル を選べます。今の状態を後で見る可能性があれば、「作成と適用」を選びます。チェックポイントの名前の既定は「仮想マシン名 (日時)」で、100文字までです。
-CheckpointType に指定できる値は3つです。
| 値 | 動き |
|---|---|
Standard |
標準チェックポイントを作る |
Production |
運用チェックポイントを作り、失敗したら標準チェックポイントを作る |
ProductionOnly |
運用チェックポイントだけを作り、失敗したら作らない |
チェックポイントの正体は差分ディスク(qcow2で再現)
Microsoft Learn によると、チェックポイントは仮想マシンの .vhdx と同じ場所に .avhdx のファイルとして置かれます。チェックポイント後の変更は .avhdx(差分ディスク)に書かれ、チェックポイントを削除すると .avhdx が親の .vhdx にマージされてから消えます。
flowchart TD
R[仮想マシンが読み書きする] --> A[差分 .avhdx<br>チェックポイント後の変更]
A -->|変更していない部分は親を読む| B[親 .vhdx<br>チェックポイント時点の中身]
KVM などで使う qcow2 にも同じ「差分ディスク」の仕組みがあるので、qemu-img 8.2.2 で流れを確かめました。親に A を書き、差分ディスクを作ってから B を書きます。
$ qemu-img create -f qcow2 base.qcow2 1G
$ qemu-io -c "write -P 0x41 0 4k" base.qcow2 # 親に A を書く
wrote 4096/4096 bytes at offset 0
$ qemu-img create -f qcow2 -b base.qcow2 -F qcow2 cp1.qcow2 # チェックポイントに当たる
Formatting 'cp1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=1073741824 backing_file=base.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
$ qemu-io -c "write -P 0x42 0 4k" cp1.qcow2 # 以後の変更は差分に書かれる
wrote 4096/4096 bytes at offset 0
$ qemu-io -c "read -v 0 16" cp1.qcow2 # 仮想マシンから見た中身
00000000: 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 BBBBBBBBBBBBBBBB
$ qemu-io -r -c "read -v 0 16" base.qcow2 # 親はチェックポイント時点のまま
00000000: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
「適用」に当たるのは、差分を捨てて親から作り直すことです。中身はチェックポイント時点の A に戻りました。
$ rm cp1.qcow2 && qemu-img create -f qcow2 -b base.qcow2 -F qcow2 cp1.qcow2
$ qemu-io -c "read -v 0 16" cp1.qcow2
00000000: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
「削除」に当たるのは、差分を親にまとめるマージです。マージの後は親も B になりました。
$ qemu-img commit cp1.qcow2
Image committed.
$ qemu-io -r -c "read -v 0 16" base.qcow2
00000000: 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 BBBBBBBBBBBBBBBB
差分ディスクは親が無いと開けません。 親のファイルを別の場所へ動かすと、次のエラーになりました。
$ qemu-img info --backing-chain cp1.qcow2
qemu-img: Could not open 'base.qcow2': Could not open 'base.qcow2': No such file or directory
Microsoft Learn が「.avhdx ファイルを直接削除しないでください」としているのは、このつながりを壊さないためです。チェックポイントは Hyper-V マネージャーか PowerShell から消します。また、チェックポイントは同じディスクの差分なので、完全なバックアップではありません(Microsoft Learn)。ディスクが壊れたときに備えるには、Export-VM などで別の場所に書き出します。
仮想マシンのファイルの種類
Microsoft Learn の「仮想マシンのバージョンをアップグレードする」に載っているファイルの種類です。
| 種類 | 拡張子 | 既定の場所(Windows) |
|---|---|---|
| 構成 | .vmcx |
C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines |
| 実行時の状態 | .vmrs・.vmgs |
同上 |
| 仮想ハードディスク | .vhd・.vhdx |
C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Hard Disks |
| チェックポイントの差分ディスク | .avhdx |
同上 |
| チェックポイントの構成 | .vmrs・.vmcx |
Snapshots のフォルダー |
仮想ハードディスクは大きくなるので、容量に余裕のあるドライブに置くときは、ウィザードの「名前と場所の指定」で場所を変えます。チェックポイントのファイルの場所は、チェックポイントが1つも無いときに、設定の 管理 → チェックポイント ファイルの場所 で変えられます。
Hyper-VのPowerShellコマンド早見表
この節では、Hyper-V をコマンドで操作するときによく使うコマンドレットが分かります。どれも管理者の PowerShell で実行します。Hyper-V のモジュールには約230のコマンドレットがあり、一覧は Get-Command -Module hyper-v | Out-GridView、使い方は Get-Help Get-VM で見られます。
| やりたいこと | コマンド |
|---|---|
| Hyper-V のコマンドの一覧 | Get-Command -Module hyper-v | Out-GridView |
| 仮想マシンの一覧 | Get-VM |
| 動いている仮想マシンだけ | Get-VM | where {$_.State -eq 'Running'} |
| 構成バージョンを見る | Get-VM * | Format-Table Name, Version |
| 起動 | Start-VM -Name TestVM |
| 止まっているものを全部起動 | Get-VM | where {$_.State -eq 'Off'} | Start-VM |
| シャットダウン | Stop-VM -Name TestVM |
| 電源を切る | Stop-VM -Name TestVM -TurnOff |
| 再起動 | Restart-VM -Name TestVM |
| 一時停止・保存 | Suspend-VM -Name TestVM・Save-VM -Name TestVM |
| 画面に接続 | VMConnect.exe localhost "TestVM" |
| 作る(新しいディスク) | New-VM -Name TestVM -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Test.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -Switch ExternalSwitch |
| 作る(既存のディスク) | New-VM -Name TestVM -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath .\VMs\Test.vhdx -Path .\VMData -Generation 2 -Switch ExternalSwitch |
| ISO を入れる | Add-VMDvdDrive -VMName Test -Path D:\ISOs\disc1.iso |
| CPU の数 | Set-VMProcessor TestVM -Count 2 |
| 動的メモリ | Set-VMMemory TestVM -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB |
| セキュアブートをオン | Set-VMFirmware "Test VM" -EnableSecureBoot On |
| 仮想 TPM を有効にする | Enable-VMTPM -VMName "VM01" |
| 入れ子の仮想化を許す | Set-VMProcessor -VMName <VM名> -ExposeVirtualizationExtensions $true |
| 名前の変更 | Rename-VM VM1 -NewName VM2 |
| 削除(確認なし) | Remove-VM -Name "new 2" -Force |
| 書き出し・取り込み | Export-VM -Name Test -Path D:\・Import-VM -Path '<書き出し先>\<ID>.vmcx' |
| チェックポイントを作る | Checkpoint-VM -Name TestVM |
| チェックポイントに戻す | Restore-VMCheckpoint -Name <名前> -VMName TestVM -Confirm:$false |
| チェックポイントを消す | Remove-VMCheckpoint -VMName TestVM -Name <名前> |
| 仮想スイッチの一覧 | Get-VMSwitch |
| 外部スイッチだけ | Get-VMSwitch -SwitchType External |
| 仮想スイッチを作る | New-VMSwitch -Name LabInternal -SwitchType Internal |
| つなぐスイッチを変える | Connect-VMNetworkAdapter -VMName Test1 -SwitchName LabInternal |
| 仮想 NIC の一覧 | Get-VMNetworkAdapter -VMName * |
| 仮想ディスクを作る | New-VHD -Path c:\Base.vhdx -SizeBytes 10GB |
| 差分ディスクを作る | New-VHD -ParentPath c:\Base.vhdx -Path c:\Diff.vhdx -Differencing |
| 仮想ディスクの情報 | Get-VHD -Path C:\test\testvhdx.vhdx |
| 仮想ディスクを広げる | Resize-VHD -Path c:\BaseVHDX.vhdx -SizeBytes 20GB |
| 対応する構成バージョン | Get-VMHostSupportedVersion |
| 構成バージョンを上げる | Update-VMVersion <VM名> |
例の名前(TestVM・LabInternal など)は仮のものです。コマンドレットと引数は Microsoft Learn の各ページの例で確かめました。コマンドの基本や bash との対応は、関連記事「PowerShellコマンド一覧|用途別50選とbash対応表・実行例付き」で扱っています。
Get-VMの出力の読み方
Get-VM を実行すると、仮想マシンごとに1行の表が出ます。Microsoft Learn(「Hyper-V と Windows PowerShell の操作」)のスクリーンショットに写っている出力を書き起こしたものです。
PS C:\> get-vm
Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version
---- ----- ----------- ----------------- ------ ------ -------
Windows Walkthrough VM Running 0 686 23:01:42.8450000 Operating normally 6.2
| 列 | 意味 |
|---|---|
| Name | 仮想マシンの名前 |
| State | 状態(Running・Off など) |
| CPUUsage(%) | CPU の使用率 |
| MemoryAssigned(M) | 今割り当てているメモリ(MB)。動的メモリでは増減する |
| Uptime | 起動してからの時間 |
| Status | 動作の状態(Operating normally など) |
| Version | 仮想マシンの構成バージョン |
Version は構成バージョンで、使える機能に関わります。Microsoft Learn の表では、Windows 11 24H2 は 8.0〜12.0、Windows 11 22H2・23H2 は 8.0〜11.0 を扱えます。たとえば AMD の CPU で入れ子の仮想化を使うには 9.3 以上、GPU の分割には 12.0 以上が要ります。新しい版にした仮想マシンは、その版を扱えない以前の Windows のホストでは起動できず、構成バージョンは上げた後に下げられません。
Hyper-VとWSL2・Docker Desktop・VirtualBox・VMwareの関係と違い
この節では、Hyper-V とよく一緒に出てくる道具の関係と、同時に使えるかが分かります。
WSL2 と Docker Desktop は Hyper-V の仕組みの一部を使い、VirtualBox と VMware Workstation は別の会社の仮想化ソフトです。 各公式ドキュメントで確かめた事実です(2026年10月22日時点)。
| 製品 | 何をするものか | Windows Home | Hyper-V との関係 |
|---|---|---|---|
| Hyper-V | 仮想マシンを作って動かす(Windows の機能) | 使えない | ― |
| WSL2 | Windows の中で Linux を動かす | 使える | 「仮想マシン プラットフォーム」(Hyper-V のサブセット)を使う |
| Docker Desktop | Windows でコンテナを動かす | 使える(Linux コンテナだけ) | 既定は WSL2。Hyper-V を使う形も選べる |
| VirtualBox | 仮想マシンを作って動かす(Oracle、GPL v3) | 使える | Hyper-V が動いていると、Hyper-V をエンジンとして使う(実験的な機能) |
| VMware Workstation Pro | 仮想マシンを作って動かす(Broadcom) | 使える | 15.5.5 以降は Windows 10 20H1(19041.264)以降のホストで Hyper-V と共存できる |
表を補う点です。
- WSL2:Microsoft Learn の FAQ では、WSL2 には「仮想マシン プラットフォーム」と「Linux 用 Windows サブシステム」の2つの機能が要り、どちらも Home を含むすべてのデスクトップのエディションにあります。Home でも使えるとおり、Hyper-V の機能そのものを有効にしなくても WSL2 は動きます。WSL2 で Ubuntu の開発環境を作る手順は、関連記事「WSL2環境構築|Ubuntu開発環境をコマンドだけで整える手順」で扱っています。
- Docker Desktop:docs.docker.com の要件では、Hyper-V を使う形では「Hyper-V」と「Containers」の Windows の機能をオンにし、エディションは Pro・Enterprise・Education です。Hyper-V を使う形は「すべてのユーザー」向けに入れたときだけ選べます。インストールと有料になる条件は、関連記事「Docker Desktopとは|インストール・使い方・有料の条件とエラー対処」で扱っています。
- VirtualBox:2026年10月22日時点のダウンロードページの最新は 7.2.22 です。本体は GPL v3、Extension Pack は個人・教育用の PUEL というライセンスです。
- VMware Workstation Pro:VMware のブログによると、2024年11月11日から、商用・教育・個人のすべての利用で無料になりました。
同時に使えるか
Microsoft Learn のトラブルシューティングの記事は、CPU の仮想化支援は一度に1つのソフトしか使えないため、Hyper-V が動いているとほかの会社の仮想化アプリが仮想マシンを起動できないか、遅いエミュレーションの動作に切り替わることがある、としています。一方、WSL の FAQ には、VirtualBox と VMware の両方で Hyper-V・WSL2 に対応した版が出ていて、そのための API(Windows ハイパーバイザー プラットフォーム)を Microsoft が公開しているとあります。
| 組み合わせ | 同時に使えるか(公式の記述) |
|---|---|
| Hyper-V と WSL2・Docker Desktop | 使える(同じ仕組みの上で動く) |
| Hyper-V と VirtualBox 6.0 以降 | 動く。VirtualBox は Hyper-V をエンジンとして使い、実験的な機能で、ホストによっては大きく遅くなる |
| Hyper-V と VMware Workstation 15.5.5 以降 | Windows 10 20H1(ビルド 19041.264)以降のホストなら動く |
| それより前の VMware Workstation・Windows | Hyper-V を無効にしないと仮想マシンを起動できない |
Hyper-V を無効にすると、Hyper-V の上で動く「メモリの整合性」(Device Guard)や Credential Guard といった Windows のセキュリティ機能、WSL2、Windows サンドボックスも使えなくなります(Microsoft Learn・Broadcom のナレッジ記事)。
どれを使うか(判断表)
| 状況 | 選ぶものの目安 |
|---|---|
| Windows Home で Linux のコマンドや開発環境を使いたい | WSL2 |
| Windows Home で、画面付きの Linux や別の Windows を動かしたい | VirtualBox・VMware Workstation |
| Pro 以上で、Windows の機能だけで仮想マシンを作りたい | Hyper-V |
| コンテナを動かしたい | Docker Desktop(WSL2 の上)など |
| 仮想マシンを LAN の他の PC からも使いたい | Hyper-V の外部スイッチ、または各製品のブリッジ接続 |
| Mac・Linux でも同じ仮想マシンを使いたい | VirtualBox・VMware(Hyper-V は Windows 専用) |
Hyper-Vのよくあるエラーと直し方
この節では、Hyper-V の有効化や仮想マシンの起動でつまずいたときの原因と直し方を、エラーの原文から引けます。出典は Microsoft Learn と、Microsoft Learn の Q&A、Broadcom のナレッジ記事です。
| エラー・表示の原文 | 出る場面 | 原因と直し方 |
|---|---|---|
Enable-WindowsOptionalFeature : Feature name Microsoft-Hyper-V is unknown. |
PowerShell で有効にするとき(Q&A) | その Windows に Hyper-V の機能が無い。Home なら Pro 以上が要る。Q&A の回答は、機能が取り除かれている場合に DISM で戻す方法を挙げている |
Hyper-V cannot be installed: The processor does not have required virtualization capabilities. |
機能を有効にするとき(Q&A) | CPU の仮想化支援が使えない。BIOS・UEFI で仮想化をオン。仮想マシンの中なら、外側で入れ子の仮想化を有効にする |
ハイパーバイザーが実行されていないため、仮想マシンを起動できませんでした。 |
仮想マシンの起動時(イベント ID 3112) | Microsoft Learn では、BIOS で DEP(XD・NX)が無効なのが原因。BIOS で有効にする |
Hyper-V launch failed; Processor %1 does not provide the features necessary to run Hyper-V |
起動時のイベントログ(イベント ID 48) | BIOS・UEFI で仮想化をオンにし、再起動ではなく一度電源を切ってから入れる |
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed. |
systeminfo の結果 |
エラーではない。ハイパーバイザーがすでに動いている |
| Windows の機能に「Windows ハイパーバイザー プラットフォーム」だけがあり、「Hyper-V」が無い | 有効にしようとしたとき | エディションか要件が合っていない。エディションと systeminfo を確かめる |
VMware Workstation and Device/Credential Guard are not compatible. |
VMware の仮想マシンの起動時(Broadcom) | Windows 10 20H1 以降なら Workstation 15.5.6 以降に更新。それより前の Windows では Hyper-V を無効にする |
| VirtualBox の仮想マシンが遅い・起動しない | Hyper-V・WSL2 を有効にした後 | Hyper-V をエンジンとして使う動作(実験的)になっている。速さを優先するなら Hyper-V を無効にする(WSL2 も止まる) |
| 拡張セッションでサインインの画面が出ない | Windows 10(2004 以降)・11 の仮想マシン | 仮想マシンの中で Windows Hello サインインのみを許可する設定をオフにし、サインアウトしてからつなぎ直す |
Could not open 'base.qcow2': … No such file or directory(Hyper-V では親の .vhdx が見つからない) |
差分ディスクの親を動かした・消したとき(qemu-img で実行) | 親と差分のつながりが切れた。親を元の場所に戻す。.avhdx を直接消さない |
ハイパーバイザーが起動しない設定になっている場合について、Docker のドキュメントは、管理者のコマンドプロンプトで次のコマンドを実行して再起動する方法を載せています。ゲームのインストーラーなどがハイパーバイザーを無効にしていることがある、という説明です。
bcdedit /set hypervisorlaunchtype auto
off にすると、Hyper-V を入れたままハイパーバイザーを起動しない設定になります(Broadcom のナレッジ記事の手順)。
仮想マシンの中でHyper-Vを使いたいとき(入れ子の仮想化)
仮想マシンの中でさらに Hyper-V を動かす「入れ子の仮想化」は、外側の Hyper-V ホストで、仮想マシンを止めた状態で次を実行すると有効になります。
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Microsoft Learn の要件では、Intel(VT-x と EPT)なら Windows 10 以降のホストと構成バージョン 8.0 以降、AMD(EPYC・Ryzen 以降)なら Windows 11 以降のホストと構成バージョン 9.3 以降です。この記事の確認に使った Linux の仮想マシンで vmx が 0 件だったのは、外側の KVM が仮想化支援を中に渡していないためで、Hyper-V でいえばこの設定が無効の状態に当たります。
Hyper-Vを無効にする・アンインストールする
この節では、Hyper-V をやめる方法と、ほかの仮想化ソフトのためにハイパーバイザーだけを止める方法が分かります。
| やりたいこと | 方法 |
|---|---|
| Hyper-V を丸ごと外す | Windows の機能を有効または無効にする → Hyper-V のチェックを外す → 再起動 |
| ハイパーバイザーだけを外す(画面) | Hyper-V → Hyper-V プラットフォーム を開き、Hyper-V Hypervisor(日本語版の記事では「ハイパーバイザーの Hyper-V」)のチェックを外す |
| ハイパーバイザーだけを外す(PowerShell) | Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor |
| ハイパーバイザーだけを外す(DISM) | DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V-Hypervisor |
| ハイパーバイザーが動いているか見る | msinfo32.exe のシステム情報に「ハイパーバイザーが検出されました。」と出るか |
仮想マシンが要らなくなったときは、先に Remove-VM か Hyper-V マネージャーの 削除 で仮想マシンを消します。そのあと、仮想ハードディスクのフォルダー(上の「仮想マシンのファイルの種類」)に .vhdx が残っていないかを見て、要らなければ整理します。
よくある質問
Q. Hyper-Vとは何ですか?読み方は? A. Windows と Windows Server に組み込まれた、仮想マシンを作って動かすための機能です。読み方は「ハイパーブイ」です。ハードウェアの上で直接動く type-1 のハイパーバイザーです。
Q. Hyper-Vは無料ですか? A. Windows の Pro・Enterprise・Education に含まれていて、追加の料金やダウンロードはありません。仮想マシンに入れる OS(Windows など)のライセンスは別に要ります。
Q. Windows 11 HomeでHyper-Vは使えますか? A. 使えません。Microsoft Learn に、Windows 10 Home・Windows 11 Home にはインストールできないと書かれています。Home では WSL2・VirtualBox・VMware Workstation などを使います。
Q. Hyper-Vを有効にするには?
A. コントロール パネルの「Windows の機能を有効または無効にする」で Hyper-V にチェックを入れるか、管理者の PowerShell で Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All を実行し、再起動します。BIOS・UEFI で仮想化がオンになっている必要があります。
Q. Hyper-VとWSL2の違いは? A. Hyper-V は Windows や Linux の仮想マシンを丸ごと作る機能、WSL2 は Windows の中で Linux を動かすための機能です。WSL2 は Hyper-V の一部(仮想マシン プラットフォーム)を使い、Home でも使えます。
Q. Hyper-VとVirtualBox・VMwareは同時に使えますか? A. VirtualBox 6.0 以降は Hyper-V をエンジンとして使って動きます(実験的な機能)。VMware Workstation は 15.5.5 以降で、Windows 10 20H1 以降なら共存できます。それより前の版では Hyper-V を無効にします。「同時に使えるか」の表にあります。
Q. 仮想スイッチはどれを選べばいいですか? A. 仮想マシンからインターネットに出るだけなら Default Switch、LAN の他の PC から仮想マシンにつなぐなら外部、ホストと仮想マシンだけで試すなら内部、仮想マシン同士だけなら プライベートです。Linux で再現した通信の結果を「仮想スイッチ」の節に載せています。
Q. チェックポイントはバックアップの代わりになりますか?
A. なりません。Microsoft Learn は、チェックポイント(スナップショット)は完全バックアップではないとしています。チェックポイントは同じディスクの差分なので、別の場所への書き出し(Export-VM など)と分けて考えます。
Q. Hyper-VでUbuntuを動かすには? A. クイック作成のギャラリーの Ubuntu を使うか、第2世代で作って、起動前にセキュアブートのテンプレートを「Microsoft UEFI Certificate Authority」に変えてから .iso でインストールします。
Q. Docker DesktopにHyper-Vは必要ですか? A. 既定は WSL2 を使う形なので、Hyper-V の有効化は必須ではありません。Hyper-V を使う形にするときは、Hyper-V と Containers の機能をオンにし、Pro 以上のエディションが要ります。
Q. Hyper-Vを無効にするには?
A. Windows の機能で Hyper-V のチェックを外して再起動します。ほかの仮想化ソフトのためにハイパーバイザーだけを止めるなら、Hyper-V Hypervisor のチェックを外すか、Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor を実行します。
Q. 仮想マシンでUSB機器やクリップボードを使えますか? A. Windows の仮想マシンなら、拡張セッション モードでクリップボード・USB 機器・ドライブ・プリンターを共有できます。Ubuntu のクイック作成のイメージには、クリップボードの共有と共有フォルダーが設定済みです。
まとめ
- Hyper-V は Windows に組み込まれた type-1 のハイパーバイザー。Windows 11 の Pro・Enterprise・Education で追加料金なしに使え、Home では使えない。
- 使えるかは
systeminfoの Hyper-V の要件4行(仮想化支援・BIOS の仮想化・SLAT・DEP)で確かめ、Windows の機能・PowerShell・DISM のどれかで有効にして再起動する。 - 仮想マシンは新規作成ウィザードの8画面で作る。迷ったら第2世代(作成後に変えられない)。容量可変の VHDX は使った分だけ大きくなる。
- 仮想スイッチは、プライベート(VM 同士)・内部(+ホスト)・外部(+LAN)・Default Switch(NAT)。Linux のブリッジで同じ違いを確かめられる。
- チェックポイントの正体は差分ディスク(.avhdx)。削除はマージで、.avhdx を直接消さない。バックアップの代わりにはならない。
- WSL2・Docker Desktop は Hyper-V の仕組みを使う。VirtualBox・VMware は新しい版なら共存でき、以前の版では Hyper-V を無効にする。
参考・出典
確認日はいずれも 2026年10月22日です。
- Microsoft Learn「Windows および Windows Server に Hyper-V をインストールする」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/get-started/install-hyper-v
- Microsoft Learn「Windows Hyper-V システム要件」:https://learn.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/reference/hyper-v-requirements
- Microsoft Learn「Hyper-V on Windows の概要」:https://learn.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/about/
- Microsoft Learn「Hyper-V で仮想マシンを作成する」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/get-started/create-a-virtual-machine-in-hyper-v
- Microsoft Learn「Hyper-V でジェネレーション 1 または 2 の仮想マシンを作成するか」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v
- Microsoft Learn「Hyper-V を使用して仮想スイッチを作成して構成する」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/get-started/create-a-virtual-switch-for-hyper-v-virtual-machines
- Microsoft Learn「NAT ネットワークを設定する」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/setup-nat-network
- Microsoft Learn「チェックポイントの使用」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/checkpoints
- Microsoft Learn「Hyper-V の仮想マシンのバージョンをアップグレードする」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/deploy/upgrade-virtual-machine-version-in-hyper-v-on-windows-or-windows-server
- Microsoft Learn「Hyper-V と Windows PowerShell の操作」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/powershell
- Microsoft Learn「拡張セッション モード」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/enhanced-session-mode
- Microsoft Learn「入れ子になった仮想化を有効にする」:https://learn.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/enable-nested-virtualization
- Microsoft Learn「Hyper-V Host Hardware Requirements」(systeminfo のスクリーンショット):https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/host-hardware-requirements
- Microsoft Learn「Create a custom virtual machine gallery」:https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/custom-vm-gallery
- Microsoft Learn「Hyper-V モジュール」(コマンドレット一覧):https://learn.microsoft.com/en-us/powershell/module/hyper-v/
- Microsoft Learn「Get-VM」「New-VHD」「Stop-VM」「Enable-VMTPM」:https://learn.microsoft.com/en-us/powershell/module/hyper-v/get-vm
- MicrosoftDocs「windows-powershell-docs」(Hyper-V のコマンドレットの例):https://github.com/MicrosoftDocs/windows-powershell-docs
- Microsoft Learn「仮想化アプリケーションは、Hyper-V とその依存機能と共に実行することはできません」:https://learn.microsoft.com/ja-jp/troubleshoot/windows-client/application-management/virtualization-apps-not-work-with-hyper-v
- Microsoft Learn「ハイパーバイザーが実行されていないため、仮想マシンを起動できませんでした」:https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/virtualization/virtual-machine-not-started-hypervisor-not-running
- Microsoft Learn「Event ID 48 — Hypervisor Availability」:https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd582491(v=ws.10)
- Microsoft Q&A「Enable-WindowsOptionalFeature : Feature name Microsoft-Hyper-V is unknown」:https://learn.microsoft.com/en-us/answers/questions/1531229/enable-windowsoptionalfeature-feature-name-microso
- Microsoft Q&A「hyper v cannot be installed the processor does not have required virtualization capabilities」:https://learn.microsoft.com/en-us/answers/a/418163
- Microsoft Q&A「Windows 10 Hyper-V "Default Switch" question」:https://learn.microsoft.com/en-us/answers/questions/111248/windows-10-hyper-v-default-switch-question
- Microsoft Virtualization ブログ「What's new in Hyper-V for Windows 10 Fall Creators Update?」(2017年11月、転載):https://thewindowsupdate.com/2019/03/21/whats-new-in-hyper-v-for-windows-10-fall-creators-update/
- Microsoft Learn「WSL についてよく寄せられる質問」:https://learn.microsoft.com/ja-jp/windows/wsl/faq
- Docker Docs「Install Docker Desktop on Windows」:https://docs.docker.com/desktop/setup/install/windows-install/
- VirtualBox「Downloads」:https://www.virtualbox.org/wiki/Downloads
- Oracle「Using Hyper-V with Oracle VM VirtualBox」(6.0 の管理者ガイド):https://docs.oracle.com/en/virtualization/virtualbox/6.0/admin/hyperv-support.html
- VMware Docs「Workstation Pro on Hyper-V enabled hosts」:https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.using.doc/GUID-177F1E77-BFFD-485F-90BB-2E45B6B88678.html
- Broadcom「VMware Workstation and Device/Credential Guard are not compatible」:https://knowledge.broadcom.com/external/article/315385
- VMware ブログ「VMware Fusion and Workstation are Now Free for All Users」:https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-fusion-and-workstation-are-now-free-for-all-users/
- Ubuntu Server documentation「How to set up Ubuntu on Hyper-V」:https://ubuntu.com/server/docs/how-to/virtualisation/ubuntu-on-hyper-v/
- NAKIVO「Hyper-V 仮想マシンの作成方法:完全ガイド」:https://www.nakivo.com/ja/blog/create-hyper-v-virtual-machine-complete-walkthrough/
- PC Watch「Windows 11でより使いやすくなったHyper-V。サクッと無料で仮想環境を作ってみる」(2022年1月21日):https://pc.watch.impress.co.jp/docs/column/win11tec/1381698.html
- QEMU「qemu-img」:https://www.qemu.org/docs/master/tools/qemu-img.html
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Hyper-Vとは|有効化・仮想マシン作成・仮想スイッチ・エラー対処」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。