VMWare FusionのWin10をWin11へ上げる
まだ無料アップグレードができるのでやってみる。
Windows 11のシステム要件として64GB以上のシステムDISKとTPMが引っかかったのでまずはこちらを解決しよう。
以下のサイトを参考に実施してみます。
パーティション拡張する
仮想マシンだから簡単簡単、と思った意外と面倒だった。
VMWare側で拡張は簡単。
設定 > ハードディスク > ディスクサイズ を64GBにするだけ。
ところが起動したら、ブート領域/Cドライブ/回復パーティション/追加領域 になっていて拡張できない…
回復パーティションは設定画面からは消せないので以下のサイトを見ながらやってみる。
C:\WINDOWS\system32>diskpart DISKPART> list disk ディスク 状態 サイズ 空き ダイナ GPT ### ミック ------------ ------------- ------- ------- --- --- ディスク 0 オンライン 64 GB 14 GB ディスク 1 オンライン 50 GB 1024 KB * DISKPART> select disk 0 ディスク 0 が選択されました。 DISKPART> list partition Partition ### Type Size Offset ------------- ------------------ ------- ------- Partition 1 プライマリ 579 MB 1024 KB Partition 2 プライマリ 48 GB 580 MB Partition 3 回復 553 MB 49 GB DISKPART> select partition 3 パーティション 3 が選択されました。 DISKPART> list partition Partition ### Type Size Offset ------------- ------------------ ------- ------- Partition 1 プライマリ 579 MB 1024 KB Partition 2 プライマリ 48 GB 580 MB * Partition 3 回復 553 MB 49 GB DISKPART> delete partition override DiskPart は選択されたパーティションを正常に削除しました。 DISKPART> list partition Partition ### Type Size Offset ------------- ------------------ ------- ------- Partition 1 プライマリ 579 MB 1024 KB Partition 2 プライマリ 48 GB 580 MB DISKPART>
これで消えました。(Windows 11を入れたら復活させるかな)
システムパーティションを拡張できるようになったので全部まとめてしまう。
仮想マシンにTPMを追加する
DISKは無事拡張できたので残りはTPMです。 手順としては、
- 起動ディスクをMBRからUEFIブートへ変更
- VMWareの設定でファームウエアをUEFIへ変更
- VMWareの設定でUEFIセキュアブートを有効化にチェック
- VMWareの設定で暗号化を有効にするをチェック
- Windows 11 インストール
という感じです。
起動ディスクをレガシーBIOSからUEFIへ変更する
VMWareの設定ではレガシーBIOSと出ていますがいわゆる昔ながらのMBRレコードから起動するように仮想マシンを作っていたのでこれをUEFIにするにはディスクをGPTへ変更しなければなりません。
この辺の操作は危険なのでスナップショットを取ってから作業を行います。
仮想マシンを起動したら管理者モードでコマンドプロンプトを起動して、mbr2gptコマンドで実施します。
まず確認ですが早速エラー。
C:\WINDOWS\system32>mbr2gpt /validate /disk:0 ERROR: MBR2GPT can only be used from the Windows Preinstallation Environment. Use /allowFullOS to override. C:\WINDOWS\system32>mbr2gpt /validate /disk:0 /allowFullOS MBR2GPT: Attempting to validate disk 0 MBR2GPT: Retrieving layout of disk MBR2GPT: Validating layout, disk sector size is: 512 bytes Cannot find OS partition(s) for disk 0
ググってみるとどうやらWindowsのバージョンアップを行った際に残ったBCD構成ファイル内のゴミがいけないとのこと。消してみましょう。
まず不可視のブートパーティションをいじれるようにします。
C:\WINDOWS\system32>diskpart DISKPART> select disk 0 ディスク 0 が選択されました。 DISKPART> list partition Partition ### Type Size Offset ------------- ------------------ ------- ------- Partition 1 プライマリ 579 MB 1024 KB Partition 2 プライマリ 63 GB 580 MB DISKPART> select partition 2 パーティション 2 が選択されました。 DISKPART> assign letter=w: 仮想ディスク サービス エラー: 現在のブート ボリュームまたはページ ファイル ボリュームに対して、 ドライブ文字を割り当てたり、割り当てを解除することはできません。 DISKPART> select partition 1 パーティション 1 が選択されました。 DISKPART> assign letter=b: DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。 DISKPART> exit DiskPart を終了しています...
元記事ではシステムパーティションをWドライブに退避して作業を行なっていましたが、Cドライブから変えられませんでした。
ブートパーティションはBドライブに変えられたのでこのまま作業を続行します。
C:\WINDOWS\system32>dir /a b: ドライブ B のボリューム ラベルは システムで予約済み です ボリューム シリアル番号は 3CA5-6110 です B:\ のディレクトリ 2022/03/21 22:26 <DIR> Boot 2022/03/21 21:42 413,880 bootmgr 2019/12/07 18:08 1 BOOTNXT 2021/06/02 14:50 8,192 BOOTSECT.BAK 2020/12/25 11:02 <DIR> System Volume Information 3 個のファイル 422,073 バイト 2 個のディレクトリ 572,878,848 バイトの空き領域
ブートパーティション見えてますね。
bcdeditコマンドでunknownになっているidentifierを探します。
今回は {1cea4e0a-4655-11eb-b8e8-86cd67d75de6}
ですね。
C:\WINDOWS\system32>bcdedit /store B:\boot\bcd /enum all Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=B: description Windows Boot Manager locale ja-JP inherit {globalsettings} default {default} resumeobject {1cea4e07-4655-11eb-b8e8-86cd67d75de6} displayorder {default} toolsdisplayorder {memdiag} timeout 30 Windows ブート ローダー -------------------------------- identifier {default} device partition=C: path \WINDOWS\system32\winload.exe description Windows 10 locale ja-JP inherit {bootloadersettings} recoverysequence {1cea4e0a-4655-11eb-b8e8-86cd67d75de6} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \WINDOWS resumeobject {1cea4e07-4655-11eb-b8e8-86cd67d75de6} nx OptIn bootmenupolicy Standard Windows ブート ローダー -------------------------------- identifier {1cea4e0a-4655-11eb-b8e8-86cd67d75de6} device ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{1cea4e0b-4655-11eb-b8e8-86cd67d75de6} path \windows\system32\winload.exe description Windows Recovery Environment locale ja-JP inherit {bootloadersettings} displaymessage Recovery osdevice ramdisk=[unknown]\Recovery\WindowsRE\Winre.wim,{1cea4e0b-4655-11eb-b8e8-86cd67d75de6} systemroot \windows nx OptIn bootmenupolicy Standard winpe Yes 休止状態からの再開 -------------------------------- identifier {1cea4e07-4655-11eb-b8e8-86cd67d75de6} device partition=C: path \WINDOWS\system32\winresume.exe description Windows Resume Application locale ja-JP inherit {resumeloadersettings} recoverysequence {1cea4e0a-4655-11eb-b8e8-86cd67d75de6} recoveryenabled Yes allowedinmemorysettings 0x15000075 filedevice partition=C: filepath \hiberfil.sys bootmenupolicy Standard debugoptionenabled No Windows メモリ テスター -------------------------------- identifier {memdiag} device partition=B: path \boot\memtest.exe description Windows メモリ診断ツール locale ja-JP inherit {globalsettings} badmemoryaccess Yes EMS 設定 -------------------------------- identifier {emssettings} bootems No デバッガー設定 -------------------------------- identifier {dbgsettings} debugtype Local RAM 不良 -------------------------------- identifier {badmemory} グローバル設定 -------------------------------- identifier {globalsettings} inherit {dbgsettings} {emssettings} {badmemory} ブート ローダー設定 -------------------------------- identifier {bootloadersettings} inherit {globalsettings} {hypervisorsettings} ハイパーバイザー設定 ------------------- identifier {hypervisorsettings} hypervisordebugtype Serial hypervisordebugport 1 hypervisorbaudrate 115200 再開ローダー設定 -------------------------------- identifier {resumeloadersettings} inherit {globalsettings}
こいつを消します。
C:\WINDOWS\system32>bcdedit /store B:\boot\bcd /delete {1cea4e0a-4655-11eb-b8e8-86cd67d75de6} この操作を正しく終了しました。 C:\WINDOWS\system32>bcdedit /store B:\boot\bcd /enum all Windows ブート マネージャー -------------------------------- identifier {bootmgr} device partition=B: description Windows Boot Manager locale ja-JP inherit {globalsettings} default {default} resumeobject {1cea4e07-4655-11eb-b8e8-86cd67d75de6} displayorder {default} toolsdisplayorder {memdiag} timeout 30 Windows ブート ローダー -------------------------------- identifier {default} device partition=C: path \WINDOWS\system32\winload.exe description Windows 10 locale ja-JP inherit {bootloadersettings} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \WINDOWS resumeobject {1cea4e07-4655-11eb-b8e8-86cd67d75de6} nx OptIn bootmenupolicy Standard 休止状態からの再開 -------------------------------- identifier {1cea4e07-4655-11eb-b8e8-86cd67d75de6} device partition=C: path \WINDOWS\system32\winresume.exe description Windows Resume Application locale ja-JP inherit {resumeloadersettings} recoveryenabled Yes allowedinmemorysettings 0x15000075 filedevice partition=C: filepath \hiberfil.sys bootmenupolicy Standard debugoptionenabled No Windows メモリ テスター -------------------------------- identifier {memdiag} device partition=B: path \boot\memtest.exe description Windows メモリ診断ツール locale ja-JP inherit {globalsettings} badmemoryaccess Yes EMS 設定 -------------------------------- identifier {emssettings} bootems No デバッガー設定 -------------------------------- identifier {dbgsettings} debugtype Local RAM 不良 -------------------------------- identifier {badmemory} グローバル設定 -------------------------------- identifier {globalsettings} inherit {dbgsettings} {emssettings} {badmemory} ブート ローダー設定 -------------------------------- identifier {bootloadersettings} inherit {globalsettings} {hypervisorsettings} ハイパーバイザー設定 ------------------- identifier {hypervisorsettings} hypervisordebugtype Serial hypervisordebugport 1 hypervisorbaudrate 115200 再開ローダー設定 -------------------------------- identifier {resumeloadersettings} inherit {globalsettings}
もうmbr2gptを一回実行してみます。
C:\WINDOWS\system32>mbr2gpt /validate /disk:0 /allowFullOS MBR2GPT: Attempting to validate disk 0 MBR2GPT: Retrieving layout of disk MBR2GPT: Validating layout, disk sector size is: 512 bytes MBR2GPT: Validation completed successfully
うまくいったようです。
ではGPTへ変換してみましょう。
C:\WINDOWS\system32>mbr2gpt /convert /disk:0 /allowFullOS MBR2GPT will now attempt to convert disk 0. If conversion is successful the disk can only be booted in GPT mode. These changes cannot be undone! MBR2GPT: Attempting to convert disk 0 MBR2GPT: Retrieving layout of disk MBR2GPT: Validating layout, disk sector size is: 512 bytes MBR2GPT: Trying to shrink the OS partition MBR2GPT: Creating the EFI system partition MBR2GPT: Installing the new boot files MBR2GPT: Performing the layout conversion MBR2GPT: Migrating default boot entry MBR2GPT: Fixing drive letter mapping MBR2GPT: Conversion completed successfully Call WinReReapir to repair WinRE MBR2GPT: Failed to update ReAgent.xml, please try to manually disable and enable WinRE. MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
回復パーティションを消したから怒られてるみたいだけど、一応GPTにはできたっぽいですね。
シャットダウンしてVMWareの設定を変えます。
VMWareの設定を変更する
VMWare Fusionの設定をレガシーBIOS→UEFIへ
↓
セキュアブートにする前に起動して確認します。
うまくいったのでシャットダウンしてからセキュアブートにします。
お次は、暗号化を有効にする にチェックです。
これをしないとTPMを追加できません。
DISK容量が足りないと暗号化できません。
最後にTPMモジュール追加です。
デバイスを追加するだけですが、元には戻せないと言われます。
Windows 11のインストール
正常性のチェックは通るのに、WindowsUpdateの画面を開くとシステム要件を満たしてないと言われたので、WindowsUpdateしてみましたが変わらず。
でも、Windows11 インストール アシスタントを実行してみたところインストールできました!
追記
Windows 11にしたら自動的に回復パーティションが作成されていました。
作り直す必要なかったですね。
さらにEFIシステムパーティションというものも追加されています。
BドライブにしていたのはGUIからドライブレターの削除ができました。