Windows 11のための準備を整える。

Windows11のTPM。ではTPMについてちょっと触れましたが、Core i7-4990KではTPM2.0に対応していないので、TPM-SPIというようなTPMモジュールをインストールすれば…と思ったんですが、そもそも第4世代CPUはサポート対象外で、さらにノートPCで搭載している Core i7-6700HQ ではTPM2.0に対応してるのにやっぱりサポート対象外で。
今後サポートCPUが追加されるのかどうかはわかりませんが、現状ではWindows 11のインストーラ自体がCPUチェックで「インストールできません」と言ってきます。

前回の記事ではBIOS設定の Intel(R) Platform Trust Technology は有効化したのですが、PC正常性チェック(PC Health Check)プログラムまでは走らせていませんでした。そこで走らせてみたところ…。


と、セキュアブートをサポートしていないとだめです、と言われてしまいました。

そこでセキュアブートについても調べてみたのですが、これを有効化するためにはそもそもMBRパーティションではだめで、GPT(GUID Partition Table)に変換しないといけないようです。
うちのメインPCでは、mSATA SSDに換装したときに「起動ドライブは2TB未満だからMBRでいいか」と判断してMBRパーティションにしていました。

ということで、Windows 11にアップグレードするためには、起動ドライブをMBRからGPTに変換しないといけません。

変換方法を調べると、サードパーティのパーティションツールが色々出てきますが、どれもフリー版ではパーティションをMBRからGPTに変換する機能は利用できないようです。
これを見越したのかどうか、幸いにも Windows 10 Creators Update 1703以降では、MBR2GPT.exeというユーティリティプログラムが搭載されたようです。これを使うと、サードパーティツールを使わなくてもデータを失わずにGPTに変換できるようです。
まず、「ディスクの管理」で起動ドライブを確認します。

Cドライブはディスク4になります。ここで、ディスク4の上で右クリック→「プロパティ」で「ボリューム」タブを見ると、パーティションのスタイルが「レガシー」となっています。これをGPTに変更する必要があります。

別の方法として、コマンドプロンプトを管理者モードで開き、diskpartでも確認します。
C:\WINDOWS\system32# diskpart

Microsoft DiskPart バージョン 10.0.19041.964

Copyright (C) Microsoft Corporation.
コンピューター: UZI

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン          7452 GB  1024 KB        *
  ディスク 1    オンライン           931 GB  1024 KB        *
  ディスク 2    オンライン          5589 GB      0 B        *
  ディスク 3    オンライン          5589 GB  1024 KB        *
  ディスク 4    オンライン           476 GB  1024 KB

DISKPART> exit

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

ディスク4のGPTの欄に "*" がないのがわかります。

次に変換を実行する前に、ディスクの検証を行います。
C:\WINDOWS\system32# mbr2gpt /validate /disk:4 /allowfullos
MBR2GPT: Attempting to validate disk 4
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully

"/allowfullos"オプションを指定しないとエラーになりますが、正常終了したようです。

ということでいよいよ変換です。失敗するとディスクが飛ぶんじゃないかと心配もありますが、やってしまいます。
C:\WINDOWS\system32# mbr2gpt /convert /disk:4
ERROR: MBR2GPT can only be used from the Windows Preinstallation Environment. Use /allowFullOS to override.

C:\WINDOWS\system32# mbr2gpt /convert /disk:4 /allowfullos

MBR2GPT will now attempt to convert disk 4.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!

MBR2GPT: Attempting to convert disk 4
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: Adding recovery 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!
C:\WINDOWS\system32#

一応20行目に "MBR2GPT: Conversion completed successfully" とあるので変換は成功したようですが、WinRE(Windows Recovery Environment: Windows)で ReAgent.xml を更新できないので手動で無効化/有効化してください、というメッセージが出ています。色々やってみたのですが、とりあえず回復の設定はあとからでも大丈夫そうです。

その下には「新しいシステムをブートする前にUEFIモードに切り替えないとだめよ」というメッセージもあります。うっかりここで再起動してしまうと大変なことになりそうです。

ということでここからはキャプチャはないのですが、再起動してUEFI画面(DELキー連打)を出して、CSM互換オプションを無効にしてPKを生成し、セキュアブートを有効化してもう一度再起動です。Windowsが起動する前に何度かUEFI画面で設定を確認し直す慎重さは必要かもしれません。

うれしいお知らせです。が表示されました。

Windowsでシンボリックリンクを試してみる。

きっかけは、1つのファイルを別の名前で起動したら違う動きになるようなスクリプトを書く、でした。  busybox なんかでは、同じ実行形式ファイルの名前を、lsにすればlsと同じ、cpとすればcpと同じ動作をするようにしてますが、Pythonスクリプトでそれと同じように argv...