34
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows を USB で持ち運ぶ:Hyper‑V + WinPE を使った VHDX ブート手法

Last updated at Posted at 2026-01-03

はじめに

表題のとおり、Windows OS を USB メモリ上に導入して、任意の PC を使って利用するためのノウハウを共有したいと思います。

本記事では、以下の2つの Microsoft 公式技術を組み合わせ、USB 上からの Windows VHDX ネイティブブートを実現しています。

公開情報:VHDX (ネイティブ ブート) による Windows の展開
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/deploy-windows-on-a-vhd--native-boot?wt.mc_id=MVP_407731

VHDX ネイティブブート: Windows が物理ディスクではなく VHDX ファイルから直接起動できる公式機能

公開情報:WinPE で起動する
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/boot-to-winpe?wt.mc_id=MVP_407731

WinPE: USB やネットワークから起動できる、展開用に設計された軽量の Windows 環境

トピック
以下の記事で紹介している、シンクライアント の記事がありますが、こういった構成を VHDX 化して USB で持ち歩くことも可能になります。実際に、私のほうで組み合わせて動作することも検証済みです。
1章の VHDX の作成が完了したあとに、下記の記事の構成を行ってから、2章に進んでください。

Windows App Kiosk によるシングルキオスク構成のシンクライアント構築手順
https://qiita.com/carol0226/items/62b8caae9787b6450f54

本記事の対象者

本作業は、高度なキッティングスキルが必要です。

PC のメーカーごとに、BIOS の設定や ブートオーダーの変更方法は 異なります。
選択する USB メモリの種類によっても、操作手順に差が出てくるものと思われます。

私が紹介する手順を参考に、各自の知見を活かし、適切な操作に読み替えて実行できるスキルが必要です。

逆に、中級者であれば、本手順を参考にして目的を達成することで、高度なキッティングスキルを身に着けることができると思います。

注意事項1

操作を誤ると BCD 領域を破損し、作業用の PC が起動できなくなったりします。

通常の業務やプライベート情報が入っている PC は使わず、別途 初期化しても構わない作業用の PC を手配してください。

私自身も、指定するディスク番号や、ドライブレターを誤って、起動不能になって、リカバリを余儀なくされることが多々ありました。大事なデータが失われても 責任取れませんので、ご注意ください。

やらかしてしまった際の復旧には、以下の記事が参考になりました。

以下を参考に、あらかじめ 回復ドライブを作っておくと良いです。BCD の操作で復旧できない場合は、回復ドライブを使う必要があります。

注意事項2

紹介する手順は、Windows OS を USB メモリから起動できるようにするまでです。

USB 起動できるようになった OS を 運用環境で 長期間にわたり利用できるかどうかは 別問題ですので、運用環境で 多数の利用者へ展開することを考える場合は、臨床試験・チューニングやカスタマイズを入念に実施したうえで展開してください。

特に、Windows Update をどうするか、ライセンス認証 をどうするかなど、運用面の課題を解決していく必要があります。

参考:検証使用したデバイス

USB メモリ

要件:容量が 64 GB 以上の USB メモリ。USB 3.1 対応。NTFSフォーマットが可能であること。

Samsung BAR Plus MUF-64BE4/EC
本検証を行うために、新規購入しました。本製品を選んだ理由は、Copilot を使って OS を USB ブートさせる際に十分なパフォーマンスを発揮する スティック型の USB メモリを推奨してもらいました。そこで回答されたのが 本製品でした。

Samsung 公式サイト
https://semiconductor.samsung.com/jp/consumer-storage/usb-flash-drive/bar-plus/

Amazon:Samsung BAR Plus MUF-64BE4/EC
https://www.amazon.co.jp/Samsung-USBメモリ-正規代理店保証品-MUF-64BE4-EC/dp/B07GYXYG2C/?th=1

この USB を選んだ理由は、Copilot の推薦でしたが、実際に購入して検証し、ちゃんと動作していることを確認していますので、新規購入される方は、同じ製品をチョイスいただくと安全かと思います。

PC デバイス

以下の3台を用いて、作業 および 動作することを確認しました。

  • Surface Laptop 2
    作業用 PC および USB ブートのテストとして利用
  • Surface Pro 9
    USB ブートのテストとして利用
  • VAIO Pro PK
    USB ブートのテストとして利用

その他に必要なもの

  • Windows OS のインストールメディア (ISO)
    今回の検証では、Windows 11 Enterprise 24H2 を使いました。

  • Hyper-V 環境
    クライアント OS 上の Hyper-V でも可能です。

クライアント OS 上で Windows の機能の有効化 で Hyper-V を導入している様子
image.png

Windows 11 の仮想マシンを作成するためには、4GB の仮想メモリが必要になります。
親機のメモリが 8GB だと VM に割り当てるメモリが不足する可能性があります。
十分にメモリがある環境を用意しましょう。

構築手順

この手順では、Samsung BAR Plus のような USB メモリでも安定して Windows 11 を起動できる VHDX ブート方式を採用しています。USBメモリに直接インストールすることはできないため、PC本体で VHDX を作成 → USB メモリにコピー → USB ブート構成 を作成という流れになります。

【全体の流れ】

  1. VHDX イメージを作成する
    1-1. Hyper-V ホスト上に VHDX を作成(固定サイズ)
    1-2. Hyper-V で VHDX に OS をインストール
     
  2. ブータブル USB を作成する
    2-1. Windows PE のブート USB を作る
    2-2. VHDX をコピーし VHDブート設定を行う
    2-3. 使用する各機種でのドライバ導入

1. VHDX イメージを作成する

本章の手順で USB ブートにも対応できる VHDX 形式を用意し、そこへ OS をインストールしていきます。

1-1. Hyper-V ホスト上に VHDX を作成(固定サイズ)

New-VHD コマンドを実行するには、Hyper-V が導入されている必要があります。
VHDX の配置場所は、E:\Hyper-V\Virtual Hard Disks\ にしています。環境に応じて読み替えてください。

ポイント
VHDX ファイルは、既定では 動的サイズ なのですが、PC のストレージよりも低速な USB 上で稼働させることを考慮して、固定サイズ (56GB) の VHDX ファイルを作成しています。

① コマンド
PowerShell(管理者)ウィンドウを使って作業を実施してください。
固定サイズ (56GB) のVHDX ファイルを作成します。

E:
cd \Hyper-V\
cd .\'Virtual Hard Disks'\
New-VHD -Path Win11.vhdx -SizeBytes 56GB -Fixed

① 実行結果
image.png

image.png

② コマンド
作成した VHDX ファイルをマウントしています。

Mount-VHD Win11.vhdx

② 実行結果
マウントされたため、ディスク 2 として認識されました。

③ コマンド
ディスクの情報を取得して、変数 ($disk) に保存しています。
2行目の $disk の実行で、変数の中身を表示させています。

$disk = Get-Disk | Where-Object Location -eq "E:\Hyper-V\Virtual Hard Disks\Win11.vhdx"
$disk

③ 実行結果
image.png

④ コマンド
取得したディスクの番号(今回は 2 )が変数で指定され、初期化を実行しています。

Initialize-Disk -Number $disk.Number -PartitionStyle GPT

④ 実行結果
ディスクが初期化されました。

⑤ コマンド
300MB サイズのパーティションを作成しています。

New-Partition -DiskNumber $disk.Number -Size 300MB `
  -GptType "{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}" `
  -AssignDriveLetter

⑤ 実行結果
パーティションが作成され、F ドライブ が割り当てられました。
image.png

重要
上記では DriveLetterF になっています。
これを参考にして、実際に 割り当てられた DriveLetter を確認してください。

⑥ コマンド
上記の DriveLetter を、以下のコマンドで使用します。
-DriveLetter F の箇所を、任意の値に修正してください。
EFI 用のパーティションをフォーマットしています。

Format-Volume -DriveLetter F -FileSystem FAT32 -NewFileSystemLabel "EFI"

重要
ドライブレターを誤ると、作業用 PC のデータを失う恐れがあるので、注意してください。

⑥ 実行結果
EFI 用のパーティションがフォーマットされました。
image.png

⑦ コマンド
MBR 用のパーティションを作成しています。

New-Partition -DiskNumber $disk.Number -Size 16MB `
  -GptType "{E3C9E316-0B5C-4DB8-817D-F92DF00215AE}"

⑦ 実行結果
MBR 用パーティションが作成されました。
image.png

⑧ コマンド
VHDX 用のパーティションを作成し、フォーマットしています。

New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Win11VHDX"

⑧ 実行結果
VHDX 用のパーティションが作成され、フォーマットまで完了しています。
image.png
以下の状態になりました。
image.png

⑨ コマンド
VHDX ファイルを OS から切り離します(アンマウント)

Dismount-VHD -Path "Win11.vhdx"

⑨ 実行結果
切り離されました。
image.png

以上で、OS をインストールするための 固定サイズの VHDX ファイルが作成できました。
次章では、この VHDX に対して OS をインストールしていきます。

1-2. Hyper-V で VHDX に OS をインストール

1.Hyper-V マネージャー を起動し、新規 → 仮想マシン を選択し、新しい仮想マシンの作成ウィザードを進めます。本手順で指定していない箇所は、既定値のままで構いません。

2.世代の指定 では、第2世代(UEFI)を選択します。
image.png

3.仮想ハードディスクの接続 では、既存の仮想ハードディスクを使用する を選択し、前章で作成した VHDX ファイル Win11.vhdx を指定します。
image.png

4.ウィザードの完了画面の状況です。
image.png

5.Windows 11 の導入に必要な前提条件を設定しています。
セキュアブート、TPM、メモリ 4 GB 以上、CPU 2Core 以上 を指定します。
DVD ドライブ追加して、インストールメディア (ISO) を選択してください。
image.png

6.ブートオーダーは、DVD ドライブから起動するように設定します。
image.png

7.OS のインストールは、通常通りの操作を行ってください。

基本的には、以下の私の記事を参考に進めていただければ問題ありませんが、パーティション選択の際に、後述の注意点を参照してください。

Hyper-V へ Windows 11 24H2 をインストールする
https://qiita.com/carol0226/items/e0f40422ca1d97671435

パーティション選択の注意点
以下の場面では、Win11VHDX のパーティションを選択します。
前章で VHDX ファイル上 に作成したパーティションが表示されていることが確認できます。
image.png

以下のエラーが出た場合は、作成した VHDX が Hyper-V にマウントされたままになっているので、解除してください。
image.png
解除方法
image.png

8.パーティションを選んで先へ進めると、以下のようにインストールが進行します。
image.png

9.インストールが完了後、VM を起動し、OS へサインインを行い 無事に動作することを確認します。

10.VM をシャットダウン します。

11.このタイミングで、VHDX ファイルをコピーして バックアップしておくと良いです。

以上の操作で OS が VHDX ファイル上にインストールされました。

カスタマイズ
作成した VHDX は、設定を変えたり、アプリを事前導入したりして、オリジナルな環境にしておくことが可能です。
このタイミングで、意図した VHDX ファイルとなるように、カスタマイズを実施してください。

カスタマイズ例
以下の記事のように シンクライアント環境を VHDX 上に作って USB で持ち歩くことも可能です。

Windows App Kiosk によるシングルキオスク構成のシンクライアント構築手順
https://qiita.com/carol0226/items/62b8caae9787b6450f54

2. ブータブル USB を作成する

本章では、以下のステップで VHDX をブートできるようにしていきます。
2-1. Windows PE のブート USB を作る
2-2. VHDX をコピーし VHDブート設定を行う
2-3. 使用する各機種でのドライバ導入

ポイント
Windows PE は、USB ブートも可能な軽量 OS です。
この Windows PE を使って USB ブートをさせつつ、VHDX ブートの設定を行うことで、結果的に USB を使った VHDX ブートを可能にしています。

2-1. Windows PE のブート USB を作る

2-1-1. Windows PE ツールのダウンロード

以下の公開情報を参考に、作業用 PC に ADK をインストールします。
なお、Deployment Tools だけを選択すれば OK でした。

{49F45BFB-7CD7-4BA3-967B-C2753FD18756}.png

公開情報:Windows ADK のダウンロードとインストール
https://learn.microsoft.com/ja-jp/windows-hardware/get-started/adk-install?wt.mc_id=MVP_407731

ADK に続いて、Windows PE 用のアドオンもインストールします。

{504399CE-C441-481E-9DD8-BD8D3B176B20}.png

公開情報:Windows PE (WinPE) のダウンロード
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/download-winpe--windows-pe?wt.mc_id=MVP_407731

2-1-2. USB メモリに Windows PE を導入する

WinPE 用に FAT32 の領域と、VHDX 用に NTFS の領域が必要になるため、以下の公開情報を踏襲しています。

公開情報:WinPE: 1 つの USB ドライブを使用してイメージを格納または分割して Windows を展開する
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/winpe--use-a-single-usb-key-for-winpe-and-a-wim-file---wim?wt.mc_id=MVP_407731

USBメモリを、作業用 PC に挿入してください。
PowerShell(管理者)ウィンドウを開いて、操作を行ってください。

注意
list disk を実施した際に、作業用PC の C ドライブと、USB メモリ を適切に識別してください。
select disk では、上記のディスク番号 を指定します。
番号を誤ると、C ドライブ のデータを失います。

① コマンド

diskpart
list disk
select disk X  # ← USB の番号(間違えると危険)
clean
convert mbr  # ← 元々 MBR でフォーマットされていれば不要
create partition primary size=2048
active
format fs=FAT32 quick label="WinPE"
assign letter=P
create partition primary
format fs=NTFS quick label="Images"
assign letter=I  
Exit

WinPE の起動用ドライブ = "P"
VHDX のイメージ保存用ドライブ = "I"
※あとで出てくるので覚えておいてください。

① 実行結果
{689352F1-4AFC-4E7E-90C4-D48928E488AA}.png

{5334625B-F6CB-4353-A578-FAEE5CD129CD}.png

展開およびイメージングツール を管理者で起動します。
{615EEC1F-7E8A-4C6D-AEB6-37A93172DB4E}.png

copype amd64 C:\WinPE_amd64
Makewinpemedia /ufd C:\WinPE_amd64 P:

説明
copype amd64 C:\WinPE_amd64 は、作業用PC の C ドライブにテンポラリ領域として C:\WinPE_amd64 を作成し、そこに amd64 用の WinPE 環境が展開されます。
Makewinpemedia /ufd C:\WinPE_amd64 P: で、テンポラリ領域に展開された WinPE 環境を使って、P ドライブ(USBメモリ)に 起動用の WinPE 領域を構築しています。

※作業が終わったら、C:\WinPE_amd64 フォルダは削除してしまって構いません。

{8880C632-2048-43C9-96BB-908F239F5F81}.png

Success になったら、PC を使って USB ブートさせます。
WinPE が起動され、コマンド画面になれば OK です。

参考:
Surface と VAIO の USB ブート方法は、最終章に記載してあります。

2-2. VHDX をコピーし VHDブート設定を行う

2-2-1. VHDX ファイルのコピー

再度、作業用PC の OS を起動します。
USB の NTFS 領域(I ドライブ) に、1章で作成した OS 入りの vhdx ファイルをコピーします。

※私の環境では、コピー完了まで 30 分程度かかりました。

copy コマンドでもコピーできますが、進捗状態をみるためには、GUI がおススメです。

2-2-2. VHDX をマウント

WinPE を使って、起動時に VHDX ブートされるように構成します。

USB メモリからブートして、WinPE を起動します。
続いて、以下のコマンドを実行し VHDX ファイルをマウントし、ブートセクタに書き込んでいます。

diskpart
SELECT VDISK FILE="I:\Win11.vhdx"
ATTACH VDISK
AUTOMOUNT ENABLE
exit

bcdboot E:\Windows /f UEFI /s D:

ドライブレターの注意点
D = WinPE の起動ドライブ(私の環境では C が物理PCのHDD、WinPE が D になりました)
E = vhdx をマウントした際のドライブ(ATTACH VDISK によって新たにマウントされます)
I = vhdx が保存されているドライブ

SELECT VDISK~ や、ATTACH VDISK などは 英大文字である必要がありました。
小文字だとエラーになるみたいでした。原因不明ですが、 WinPE だからでしょうか?

bcdedit をパラメーター無しで実行すると、BCD 領域の一覧が表示されます。
設定値の中に、VHDX のパスが登録されていることが確認できれば OK です。

以上で、USB ブートを行うことで VHDX 上の OS がブートされるようになります。

2-3. 使用する各機種でのドライバ導入

USB 上の OS には、ハードウェア専用のドライバが不足しています。
そのため、初めて起動したデバイスでは、キーボード、マウス、無線LAN、タッチパネルなどが機能しません。

対処として、有線LAN を使い Windows Update を行うことで、該当デバイス用のドライバが導入されます。
ノート PC の内蔵キーボード・タッチパネル は、動かないことがありましたが、有線の USB キーボード・マウスを接続することで操作できました。

キーボードが動かない場合は、スクリーンキーボードも利用できます。

※操作不能なままでも、インターネットにつながっているのであれば 辛抱強く待つことで、そのうち ドライバが導入されて使えるようになる場合があります。

単発で USB を作る際には、今回のような手順が良いと思います。
逆に、同様の構成の USB を複数本作る場合は、Sysprep の考慮や あらかじめ 各機種のドライバを導入したうえで、各 USB にコピーした方が良いと思われます。

参考

BIOS 設定で、USB からの ブートができるように構成して、テストを行ってください。

Surface の BIOS 起動方法

音量大 を押しっぱなしにして、電源 ON

  • Surface Laptop 2 の音量は、キーボード上の F6(刻印あり)
  • Surface Pro 9 の音量は、電源ボタンの隣の 物理ボリューム+ ボタン

注意
Surface Pro 9 のキーボードには、F4 の箇所に 音量大の刻印がありますが、これを押しても BIOS 画面には遷移しません。私もこれに気づかず苦労しました。

VAIO Pro PK の BIOS 起動方法
F3 を押しながら 電源 ON

34
33
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?