LoginSignup
28

More than 3 years have passed since last update.

Boot from VHD 機能で Windows Insider Preview を安全に試す

Last updated at Posted at 2021-02-07

エヌビディアの佐々木です。

CUDA on WSL 2 に興味はあるものの、Windows Insider Preview のしかも Dev チャネルに参加するのはちょっとなぁ… と二の足を踏んでおられる方も多いのではないでしょうか。仮想マシンで検証できれば良いのですが、Windows 10 の Hyper-V では VM に GPU をアタッチできませんから、物理マシンに直接 Windows Insider Preview をインストールする必要があるというのも気が重くなるポイント。できればメイン環境は安定した Windows を保持しておきたいのが人情です。

PC のディスクに新しいパーティションを切ったり、あるいは新たなディスクを追加して Insider Preview をインストールするのも手ですが、パーティションの指定を間違って虚無を生成したり、うっかりマザボに落っことした M.2 のネジが混沌に飲み込まれて姿を消したりしがちです。

そこで本日紹介したいのが、Boot from VHD 機能によるマルチブートです。

Boot from VHD

これは、Hyper-V でおなじみのディスクイメージ ファイル (.vhd あるいは .vhdx) を使って、物理マシンを直接起動することができる機能です。登場したのは Windows 7 の頃ですから、もう 10 年選手ですね。その割にあまり使われていない気もしますが。

これを使うと、ディスク上に作った VHD ファイルを、まるで新しい物理ディスクのように扱って、そこに Windows Insider Preview をインストールし、VM ではなく物理マシンを起動できます。パーティションを切り直す必要もありませんし、容量可変タイプの VHD を使えば、ディスク容量も節約できます。

早速やってみましょう。

VHD への Windows Insider Preview のインストール

前提条件:

  • 既に Windows 10 がインストールされている PC がある
    • CUDA on WSL 2 を試すなら、もちろん NVIDIA の GPU も必要です
  • ディスクにそれなりの空き容量がある
    • Windows Insider Preview 21286 に CUDA on WSL 2 をセットアップした状態で、私の VHDX ファイルは 32GB のサイズがありました
  • 容量 8GB 程度以上の USB ドライブがある
    • Windows Insider Preview 21286 の ISO イメージは 4.3GB 程度あります

制限事項:
Windows Insider Preview をインストールするには、通常、2 通りの方法があります。

  • 既存の Windows 10 に、Windows Update からの更新として、Insider Preview をインストールする
  • Windows Insider Preview の ISO イメージからインストールメディアを作り、インストールする

VHD をブートディスクとして使う場合には、後者の方法しか使えないようです。何度か試しましたが、前者は「仮想ディスクにはインストールできない」旨のエラーで失敗しました。そのため、この記事では後者の方法を紹介します。

Windows Insider Preview ISO イメージの入手

Windows Insider Preview Downloads ページから、Dev チャネルの ISO イメージを入手してください。2021 年 2 月 8 日現在では、ビルド 21286 が入手可能です。

起動可能メディアの作成

Rufus 等を使って、ISO イメージから起動可能な USB ドライブを作ります。

インストールメディアで起動

作成した USB ドライブを起動デバイスとして選択し、インストーラーを起動します。この際、必ず UEFI モードで起動してください。そうしないと、肝心なところで「次へ」ボタンがクリックできずに詰みます。

下図で、同じ USB Flash Disk のエントリが「UEFI」と「USB」の二つありますが、UEFI のほうを選ぶわけです。(これは一例です。画面は、環境によりそれぞれ異なるでしょう)
起動デバイスの選択

下図のように、Windows のインストーラーが起動したら、まずは普通に進めてください。
インストーラーの初期画面

インストール場所の選択画面まで来ました。ここに表示されている「ドライブ 0」は、既存の Windows がインストールされているディスクです。間違ってもこれを塗りつぶさないようにしましょう。
インストール先の選択画面

しかし、他にディスクはありませんよね。作るのです。仮想ディスクを。ここで。

[Shift] + [F10] でコマンドプロンプトを出してください。

ここで、diskpart コマンドを使って、既存のディスク上に VHD ファイルを作成します。が、その「既存のディスク」にはこの時点でドライブレターが割り当てられていません。これではアクセスしづらいので、ドライブレターを割り当てます。

まずは diskpart を起動します。

image.png
ここからは、diskpart のプロンプトに対する操作です。

ドライブレターは、「ボリューム」に対して割り当てられるので、list volume コマンドでボリュームを一覧します。
image.png

この例では、容量 511GB の Volume 1 が対象とわかるので、select volume 1 コマンドで、これを選択します。
image.png

assign コマンドで、ドライブレターを割り当てます。その後、もう一度 list volume すると、Volume 1 が C ドライブになったことが確認できます。
image.png

ここで、一旦 DiskPart を終了しておきましょう。

DISKPART> exit

DiskPart を終了しています...

X:\Sources> 

VHD を作成

では、C ドライブに VHD を作っていきましょう。まず、VHD を格納するディレクトリを作っておきます。別にどこでも良いのですが、ここでは C:\VHD とします。

X:\Sources> mkdir c:\VHD

もう一度、DiskPart を起動します。

X:\Sources> diskpart

次のコマンドで、仮想ハードディスクを作成します。maximum パラメータで、容量を MB 単位で指定 (131072MB=128GB)、type=expandable で、容量可変タイプを指定しています。これによって、いきなり 128GB の VHDX ファイルが作成されるのではなく、実際の書き込みに従って拡張されていくようになります。

DISKPART> create vdisk file=c:\VHD\WIPTest.vhdx  maximum=131072 type=expandable 

  100% 完了しました

DiskPart により、仮想ディスク ファイルが正常に作成されました。

この後、アタッチすることで仮想ディスクが使用可能になります。

DISKPART> attach vdisk

  100% 完了しました

DiskPart により、仮想ディスク ファイルがアタッチされました。

list disk すると、128GB の「ディスク 1」が出現していますね。ここに、Windows Insider Preview をインストールすれば良いわけです。

image.png

DiskPart を終了し、コマンドプロンプトからも exit します。

DISKPART> exit

DiskPart を終了しています...

X:\Sources> exit

VHD へ Windows Insider Preview をインストール

インストール場所の選択画面に戻ったら、「最新の情報に更新」をクリックすれば、先ほど作成した VHD による新しいドライブが現れます。後はここに、いつも通り Windows をインストールするだけです。

※ なお、インストーラーを UEFI モードで起動しなかった場合、ここで「次へ」がグレーアウトしてクリックできません。

インストール完了後は、起動時に次のような選択画面が表示され、どの Windows を起動するか選べるようになります。

これで、(ディスクの容量さえ十分あれば) いつもの環境を壊さずに、CUDA on WSL 2 にトライできますね。お楽しみ CUDA さい!

関連情報

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
28