Windows 11 Update検討
2022/09/17
Windows 11を実行するための最小システム要件を満たしていません
  • 9年経過したPCを使用しています。Windows 7から10へのアップグレードは行っていますが、最近Windows Update画面のメッセージ「Windows 11を実行するための最小システム要件を満たしていません」が少し気になります。

    Figure 1: Windows Update画面(クリックで拡大)

  • では足りていない要件は何かなと、そのメッセージ右横にある"PC正常性チェックを受ける"を押すと、PC正常性チェックアプリの説明になります(*1)。このアプリ、通常はWindows Updateでインストールされますが、私は一度アンインストールしていたので"Microsoftのサイト"から再度入手して実行しました。

  • 得られた結果が下記。セキュア ブート(Secure Boot)、TPMCPUが問題とのこと。

    Figure 2: PC正常性チェック実行結果(クリックで拡大)

  • 多分古めのPCでは似たような状況かと思います。各項目の詳細を見ると、説明がMicrosoftクオリティです(*2)...。

  • 以降のセクションで各項目を説明しますが結論を先に書くと、本当に対応するなら下記が必要です。
    • システム(Boot)ドライブをGPTに変換する
    • マザーボード/CPUを新しくする(Intel-Core:8世代以降, AMD-Ryzen:3世代以降)

  • しかし、あと2年(*3)もすれば「Home EditionはTPM無しでもOK」になるのでは...。よって私はもう少し待ち、いや、9年使っているし...やっぱり換えちゃおうかな。

Secure Boot: セキュアブートとは
  • セキュアブートの具体的対応は下記です。ハードウェア変更はありません。
    • システム(Boot)ドライブのパーティションスタイルをGPTにする
    • UEFIの設定をSecure Bootにする

  • 上記が何かを理解したければ、PCのハードウェアを管理するUEFIとOS Bootの関係を知る必要があります。

  • まずUEFI(Unified Extensible Firmware Interface)ですが、PCのハードウェアを管理するマザーボード上のファームウェア(Firmware)です。PC起動時に実行されます。Figure 3はマザーボード上のUEFIを持つFlashメモリ位置を示したものです。

    Figure 3: マザーボード上のUEFI...ん? BIOS?

  • しかしFigure 3では、UEFIではなくBIOSと表記されていますよね。実はファームウェアそのものはBIOS(Basic Input Output System)と呼ばれており、UEFIはそのインターフェースです。

  • 「じゃあ何でUEFIの設定って言い方するの?」と思われたでしょう。その理由ですが、BIOSはかなり昔から使われていた用語です。このBIOSに機能拡張が必要となった際、その拡張機能にアクセスするために策定された仕様がUEFIです。

  • すると拡張機能を持つ新しいBIOSは、必ずUEFIを持つので「UEFI付きのBIOSは...」が略されて「UEFIは...」になってしまいました。事実上UEFIは拡張機能を持ったBIOSを指します。略語とは意味が異なっている厄介なPC用語ですね。ちなみにUEFI無しの古いBIOSはレガシーBIOS(Legacy BIOS)と呼ばれています。

  • そしてセキュアブートは、このUEFIで追加された機能の一つです。UEFIがブートデバイスから情報を読んで、ブートして良いかどうかを判定します。そしてデバイス自身はUEFIに渡す情報を置くためにGPT(GUID Partition Table)と呼ばれるパーティションフォーマットを必要とします(*4)

Secure Boot: ブート方式とパーティションフォーマット
  • GPTは2TB以上のパーティション作成に必須のフォーマットですが、先に説明したようにブートの情報も持ちます。そしてGPTではない従来のパーティションフォーマットMBR(Master Boot Record)です。

  • UEFIはデバイスのパーティション構成情報を見て、MBRの場合はLegacy BIOSとして、GTPの場合はUEFIとしてブートローディングを実施します。UEFIは内部にLegacy BIOSとして動作するためのモジュールを持っており、それはCSM(Compatibility Support Module)と呼ばれます。


    Figure 4: UEFIのGPT/MBRに対するブートローディング動作(クリックで拡大)

  • これでセキュアブートの要素は揃いました。改めてまとめます。
    • Windows 11はシステム要件の一つとしてセキュアブートを要求している
    • セキュアブートを有効化するには、UEFIモードでブートすることが必要
    • UEFIモードでブートするには、システムドライブをGPTにすることが必要

Secure Boot: GPTにして大丈夫?
  • システムドライブのパーティションフォーマットがMBRの場合、これをGPTに変換します。ブートOSがWindows 10だけならば、Microsoftが提供している MBR2GPT.EXE を使えば良いでしょう。Windows 10に標準搭載されたコマンドです。

  • MBR2GPT.EXEの実行で、"Failed to update Reagent.xml, please try to manually disable and enable WinRE." のメッセージが出た場合、そのままプロンプト上で下記コマンドを実行します。
      reagentc /disable
      reagentc /enable
    "reagentc /enable" でエラーになるかもしれませんが、PCを再起動すればOKです。

  • システムドライブをGPTにすると一時的にOSがブートできなくなります。UEFIの設定が必要だからです。事前にUEFIの起動方法とUEFIでBootモードの設定方法を確認するのは必須です。

  • メーカーによってUEFI Boot, Secure Boot, Legacy BIOS, CSM等のメニューや構成が変わるため、まずUEFI Bootにする設定を確認し、GPTドライブからのOSブートを成功させた後、Secure Bootへ移行する手順を踏むべきと考えています。

  • あと、現在32bit版 Windows 10を使用している場合、GPTに変換してはいけません。ブートできなくなります。多分 /validate 時にエラーになるか、そもそも32bit版では MBR2GPT.EXE が無いのでは(*5)

  • 実際にセキュアブートに変更できたか等は、msinfo32 コマンド等で確認して下さい。次はTPMに話を移します。

TPM: TPMって何?
  • TPM(Trusted Platform Module)は、PCのセキュリティ向上のために暗号化キーの作成と保管を行うモジュールです。例えばBitlockerはこのTPMを利用してディスク内を暗号化しています。TPMの暗号鍵が無ければ、他のPCにディスクを接続してもデータを読むことができないわけですね。

  • このTPMには現在2種類のVersionがあります。1.2と2.0です。そしてWindows 11が要求しているのはTPM 2.0です。このTPMですが、Intelの場合はCPUの世代、OSもWindows 8ではTPM 1.2まで等の制約が絡んで構成が複雑になっています。

  • そこで、まずはTPMの実装構成を見てみましょう。ちなみに、ここでもUEFIが登場します。

TPM: TPMはどこにいる?
  • Figure 5に示すのはPCの構成例です。Graphic/MemoryとのインターフェースはCPU側に取り込まれ(*6)、他のデバイスのインターフェースはワンチップ化されています。それでもチップセット(Chipset)と呼んでいますが。


    Figure 5: PCのCPU/Chipset構成例

  • さて、ここで「TPMはどこにいるか」ですが、普通ならばUEFIの中です。そしてTPMに直接アクセスできるのはOSを実行するメインCPUではなく「サブCPU」です。このサブCPU、IntelではChipset内、AMDではCPU内に置かれています。

  • そして、サブCPUからUEFI内のTPMを利用する仕組みを、IntelではPTT(Platform Trust Technology), AMDではfTPM(firmware TPM)と呼んでいます。


    Figure 6: Intel PTT と AMD fTPM

  • ところがこのTPM、UEFIの外、独立したICとしてチップセットと接続されている場合があり、更に「UEFI TPM」と「独立IC TPM」の両方が存在することもあります。むしろPCの発売時期によっては「2個あるのが普通」という状況です。

  • TPMが2個搭載されているPCでは、UEFIでどちらのTPMを使用するか設定します。UEFIのTPM選択設定では、UEFI内TPMをIntel/AMD等CPUメーカー側の呼称である"PTT/fTPM"と表現し、マザーボード上の独立IC TPMを"TPM"としていることが多いです。

    Figure 7: 使用TPMの選択

  • さて、何でこんな状況になっているのか。それにはCPU世代によってサポートするTPMのVersionが違うこと、OSによってもサポートVersionが違うこと、これら2点が関係しています。

TPM: CPUの世代とUEFI TPM(PTT/fTPM)のVersion
  • まずはAMD Ryzen fTPMは、第3世代(Zen2)以降が2.0をサポートしています(*7)。尚、第2世代(Zen+)も一部がサポートしているので、Microsoft自身が示すWindows 11サポートAMD CPUリストを確認しましょう。

  • そしてIntel Core PTTは歴史があるせいか Table 1 の状況です。第4〜7世代が1.2第8世代以降が2.0をサポートします。プロセッサナンバーの先頭数値が世代を表します。例えば"Core(TM) i7-3770S"は第3世代です。プロセッサナンバーも msinfo32 コマンド等で確認できます。念のためWindows 11サポートIntel CPUリストも参照して下さい。

    Table 1: Intel Core PTT世代別TPMサポートVersion
    世代 名称 プロセッサナンバー TPM Version
    1 Nehalem Core i*-*** --
    2 Sandy-bridge Core i*-2**** --
    3 Ivy-bridge Core i*-3**** --
    4 Haswell Core i*-4**** 1.2
    5 Broadwell Core i*-5**** 1.2
    6 Skylake Core i*-6**** 1.2
    7 Kabylake Core i*-7**** 1.2
    8 Coffee Lake Core i*-8**** 2.0
    9 Coffee Lake Refresh Core i*-9**** 2.0
    10 Comet Lake Core i*-10**** 2.0
    11 Rocket Lake Core i*-11**** 2.0
    12 Alder Lake Core i*-12**** 2.0

  • 第3世代以前でTPMを使用する場合は、独立ICのTPMモジュールが必須でした。Iby-bridge以前のCPUでは、マザーボードにTPM接続コネクタが無い場合、TPMに対応できません。

  • 第8世代 Coffee LakeからTPM 2.0をサポートしていますが、この発売は2017年。Windows 10はリリースされていますが、世の中はWindows 7も多いという時期でした。これが面倒の原因となります。

TPM: WindowsとTPMのVersion
  • Windows 7以降のTPMサポートVersionをTable 2に示します。2.0をサポートするのはWindows 10以降です。

    Table 2: WindowsのTPMサポート
    OS VersionTPM 2.0TPM 1.2
    Windows 7---OK
    Windows 8.1---OK
    Windows 10OKOK
    Windows 11OK---(*7)

  • つまりIntel Core 第8世代以降のCPUで、Windows 7のTPM機能を使うには、TPM 1.2の独立ICが必要なのです。このあたりはAMD Ryzenも同じです。このため、Windows 7/10を渡る時期のPCは、PTT/fTPMと独立TPM ICの両構成が多くなります。

  • TPM 2.0をサポートするPTT/fTPMとTPM 1.2のIC両方を持つPC/マザーボードでは、PTT/fTPMに切り替えるか、TPM IC側のFirmwareを2.0へ更新することでTPM 2.0対応が可能になります。

  • Intel Core 第4(Haswell)〜第7(Kabylake)世代PTTはTPM 1.2サポートなので、Windows 7から10への以降でも、そのままTPM 1.2を使用しているケースが多いでしょう。Windows 11はTPM 2.0を要求しているので、マザーボードにTPM 2.0 ICを付ける必要ありますが、元々TPMが別ICならば、TPM ICのFirmware Updateで2.0対応できる可能性があります。

  • どこのTPMをどうすれば良いのか、その判断が非常に面倒になっています。まずはUEFIでPCが選択できるTPMの場所とVersionを確認しましょう。そこを把握しないと話にならないのは、ここまでの説明から理解いただけると思っています。

今回は厳しいなぁ
  • Windows 11のUpdateで話題になっているSecure BootとTPMを扱いました。前回のWindows 7→10と違い、Ivy-bridgeユーザの私はハードウェア交換必須になりそうです。

  • TPM 2.0を要件としている理由は恐らくPC間の認証がメインでしょう。HomeユースではBitlocker必須ではないと思いますが、最近はモバイルが基本なのでそうも言えなくなったかなと。

  • ちょっと古めのPCを使っていると今回は地雷を踏む確率が高いです。PCを趣味で作った経験が無いと、教えれば対応できるレベルを超えている気がします。「とにかくPCを新しくして」という言い方になってしまうかも。
Notes
  • 正常性チェックアプリが動くんだと思いますよね。アンインストールしたことを忘れてしばらく探してしまった...。
  • 日本人である私はローコンテクスト系の文書や説明を読むのが苦手ってことですよ。そうですよ。
  • Windows 10のサポート期間が2025年10月まで。なので2024年後半頃にハードル下げるかも。
  • UEFIが読む情報はESP(EFI System Partition)に置かれ、そのESPの場所を記述できるPartition Table FormatがGPT。
  • 32bit版Windows 10のWindows 11化はトラブル続出の予感。
  • 以前はNorth Bridgeと呼ばれていた部分がCPUに取り込まれました。
  • 見直しの動きありそうですが、現在は未サポート。
2022-10-01: PTTの表記をあちこちでtypoしていたので修正 + MBR2GPT.EXE エラー対応追加
Copyright(C) 2022 Altmo
本HPについて