Windows11を仮想ディスクで評価する

<section style="text-align: center;">

![20221025.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/12d97e00-ef1e-6ee1-2377-ae12f04f9161.jpeg "バナー背景は「Evaluate Windows11 with a virtual hard disk」でStableDiffusionさんへ発注")

</section>

# 概要

https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/deploy-windows-on-a-vhd--native-boot?view=windows-11

<section style="text-align: center;">

![DSC_0103.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/674cc127-a517-54ea-e17a-7780774577ab.jpeg)


</section>

Windows11 を試してみたいけど、新しいPCやストレージ購入の稟議に割く工数が勿体無いので、@ksasaki様の:point_down:記事を参考に、仮想ディスクにインストールしてみた中小企業平社員のやり繰り話です:hatched_chick:

https://qiita.com/ksasaki/items/4e802da17f51d602b17d

:::note
本旨から外れるため、システム要件/デジタルライセンス認証チェック済み＆インストールメディア事前準備済み前提でお話は進みます。あらかじめご承知おきください:bow:
:::

# 手順
### 1. インストールメディアから起動

やり方はいろいろあると思われますが、だいたい私はBIOS経由です。

<section style="text-align: center;">

![DSC_0088.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/0339602a-50bd-9b30-47b0-21d1f02d97b8.jpeg)

</section>

### 2. 仮想ディスクのマウント

Windowsインストーラーをインストール先選択画面まですすめ、``[SHIFT]+[F10]`` でコマンドプロンプトを起動します。

<section style="text-align: center;">

![DSC_0094.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/5ad2dd05-235e-1718-fc52-1fee5855f9ab.jpeg)

</section>

``diskpart``を立ち上げ、``list disk`` にて仮想ディスクマウント前の状態を確認し、``list volume`` にて仮想ディスクマウント先のボリュームに何らかのドライブレターが付けられていることを確認します。

:::note
2022/10/24現在、CLIの頼れる相棒【TABキー補完】は効きませんでしたので、ここでのcmdはひたすら手入力パートです:sweat_drops:
:::

<section style="text-align: center;">

![DSC_0095.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/2f1399cd-8cc2-507b-416a-23b33e2ac8cf.jpeg)

</section>

ドライブ直下でもいいかもしれませんが、今後Insider Preview等、他のOSもVHDXで試してみたくなるやもしれませんので、一旦、``diskpart`` は ``[CTRL]+[C]`` か ``exit`` で落とし、VHDX用のフォルダを作っておきます。

```console
################################################
#【0】diskpart終了
################################################
DISKPART>exit
DiskPartを終了しています...
X:\sources>
################################################
# 【1】ドライブ移動
################################################
X:\sources>
X:\sources>c:
################################################
# 【2】空き領域、既存のフォルダ名リスト確認
################################################
C:\>
C:\>dir
 ドライブ C のボリューム ラベルは hogehoge です
~
~
              13 個のディレクトリ  287,049,166,848 バイトの空き領域
################################################
# 【3】フォルダ作成（名前は重複が無ければご随意に）
################################################
C:\>
C:\>mkdir VHD
``` 

``diskpart``を再度立ち上げ、仮想ディスクファイルを作成し、アタッチします。

:::note warn
**仮想ディスクの最大サイズ設定は慎重に！**

私は以下シナリオで仮想ディスク起動不可を経験しています:ghost:

:one: 仮想ディスク容量を物理ディスク最大容量の1/2ほど欲張って取る
:two: 物理ディスクを最大容量の1/2以上使う
:three:  久しぶりに仮想ディスクを起動すると容量不足エラーのブルーバック

``diskpart``の``shrink``で縮小（開放）できるのはボリューム（パーティション）領域です。ディスクではありません。仮想ディスクがスカスカでも、まずマウントできるだけの空き容量が確保できていないと、起動はできません。

ただ、拡張は柔軟にできますので、始めは必要最低限で仮想ディスク容量を設定し、運用の中で徐々に拡張していくことをおススメいたします:vulcan:
:::

```console
################################################
#【4】diskpart起動
################################################
C:\>
C:\>diskpart
################################################
#【5】拡張可能な仮想ディスクファイル作成
################################################
DISKPART>
DISKPART>create vdisk file=c:\VHD\W11.vhdx  maximum=65536 type=expandable
  100% 完了しました
DiskPart により、仮想ディスク ファイルが正常に作成されました。
################################################
#【6】アタッチ
################################################
DISKPART>
DISKPART>attach vdisk
  100% 完了しました
DiskPart により、仮想ディスク ファイルがアタッチされました。
################################################
#【7】確認＆終了
################################################
DISKPART>
DISKPART>list disk
  ディスク      状態          サイズ   空き    ダイナ  GPT
  ###                                         ミック
  ----------   ------------  -------  ------  -----  ---
  ディスク 0    オンライン     476 GB    0  B          *
  ディスク 1    オンライン      28 GB    0  B
  ディスク 2    メディアなし     0  B    0  B
  ディスク 3    メディアなし     0  B    0  B
* ディスク 4    オンライン      64 GB   64 GB
DISKPART>
DISKPART>exit
DiskPartを終了しています...
C:\>
C:\>exit
```

### 3. Windows11インストール

コマンドプロンプトを閉じ、インストーラー画面を最新の状態に更新していただければ、あとは通常のWindowsインストールフローになります。

<section style="text-align: center;">

![DSC_0094a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/6b7cea32-f753-3662-d4f2-e74a251d8533.jpeg)

![DSC_0101.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/d691b059-92c0-2136-9c9c-f81a02d2d23d.jpeg)

</section>

なお、Windows11初期設定画面ではデフォルトでローカルアカウントを作成できませんが、国と地域選択画面にて、``[SHIFT]+[F10]`` でコマンドプロンプトを再び起動し、``oobe\BypassNRO.cmd``でOOBEを再実行することで、Windows10でお馴染みの【インターネットに接続していません】の選択肢が表示され、ローカルアカウントを作成することができます。ITmedia様の:point_down:記事が詳しい（写真もキレイ:rainbow:）ので、よろしければご参照ください。

https://atmarkit.itmedia.co.jp/ait/articles/2210/21/news023.html

<section style="text-align: center;">

![DSC_0104 (1).JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/2323709c-d592-f6c3-32f7-2ee3b5cb34ad.jpeg)

![IMG_0002_BURST0010001 (1).JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/52fbe667-cfc4-dc73-7378-b0c86aa67a62.jpeg)

</section>

### 4. デフォルト起動OSの選択

こちらはオマケですが、インストール作業＆評価作業が終われば、デフォルトで起動するOSをWindows10にもどしたくなる場合もあると思いますので、最後にご紹介いたします。

「ファイル名を指定して実行」などから``msconfig``を起動します。

<section style="text-align: center;">

![20221024b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/b0436e98-af91-7446-f039-fb9d436d92a6.jpeg)

</section>

「ブート」タブから、既定のOS設定を``Windows10``に変更します。タイムアウト時間（起動時のOS選択画面の表示時間）も変えたい場合は合わせて設定します。

<section style="text-align: center;">

![20221024c.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/2c2d6eac-611c-5f6f-b229-ac3145cd7a52.jpeg)

![20221024d.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920567/1785f03f-c942-ecc4-1038-eed16201b0b4.jpeg)

</section>

# ご一読ありがとうございます

良きも悪きも話題の絶えないWindows11でございます。私的には（サポート期限 - 半年）ぐらいまではWindows10でもいいのかなと、弱火でコトコトなスタンスです。

https://learn.microsoft.com/ja-jp/lifecycle/products/windows-10-home-and-pro

つたない技術力と文章力な内容で誠に恐縮でしたが、最後までお読みいただいたことを、心より感謝申し上げます:sake::sake::sake: