私物PCのWindows11アップグレード対応をした話（TPM、UEFI、セキュアブート、ハードディスク）

#まえがき
https://www.microsoft.com/ja-jp/windows/windows-11

Androidアプリが動いたりとかいろいろするみたいですね。
アップグレードできるならするに越したことはないので、公式のチェックプログラムを走らせてみました。

ところが、ダメと言われるばかりでさっぱり原因がわからない！（※6/28時点では理由も表示してくれるようになったそうですね）
どうにかしなきゃならんと言うわけで、色々試しました。

BIOSとかいじるので本当は知識がない人はうかつにやらないほうがいいはずですが、これを機会に色々触ってみたい人向けに何をやったかとどこを参考にしたかを書き残しておこうと思います。

#自分が不便に思ったことは他の人が解決している
https://github.com/rcmaehl/WhyNotWin11

ありました。NGの理由を細かく表示してくれるツールです。
（※6/28時点では公式のチェックプログラムもある程度教えてくれるみたいですが、こちらのほうが細かいらしい？　自分のPCの分終わっちゃったのであんまりちゃんと見てないですが）

さっそく起動してNGの原因を見てみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1701605/9080098c-09a0-7197-a259-f03b262b245e.png)

諸々ダメですね！　一個一個原因を見ていきましょう。
余談ですが、OKが出ているところはほぼパーツのスペック依存のところなのでここがNGだと厳しいかもしれないですね……。

#一個一個見ていく前に
TPMやBootMethodその他の変更をするにはBIOSにアクセスする必要があります。
BIOSの付け方はマザーボードによって違うので事前に調べるなりしておくといいかもしれません。

コマンドプロンプトを開いて、以下のコマンドを打つことでマザーボードの型番がわかります。

```
wmic baseboard get product
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1701605/65a5096c-1af4-8431-5086-1137a1b86589.png)

こんな感じで。
僕の場合は起動時にF2キーかDELを押す感じでした。

#Disc Partition
これを変更しないとBoot Methodが変更できませんでした。
Windows10のパーティションテーブルの標準方式がMBRだとダメで、GPTにしないといけないみたいです。

パーティションテーブルの標準方式はこれで確認できます。
コンピューターの管理 > ディスクの管理　> Windowsがインストールされているドライブを右クリック > プロパティ > ボリューム

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1701605/d6dd0fc5-d607-fa45-44b6-8911a4fc32dc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1701605/59a6b703-1211-7cba-2382-8be045116de7.png)

これの「パーティションのスタイル」をGPTにする必要があります。僕は対応してしまったのでもうGPTになってますね。

変換はいくつかの方法があるようですが、Windowsが乗っているディスクをいちいち初期化してやるのは手間だったので、データの削除や初期化を行わない方法で変換しました。

**失敗したらデータが吹っ飛ぶ可能性があるので実行前にバックアップを取ることを強く推奨します。**

##### 1.ディスク番号を調べる
パーティションテーブルの標準方式を確認したときのディスクのナンバリングを見ます。
僕の場合はWindowsはCドライブにインストールしているので、ディスク2が該当の番号になります。

##### 2.変換が可能かどうかをチェックする
コマンドプロンプトで以下のコマンドを打ちます。

```
mbr2gpt /validate /disk:【ディスク番号】 /allowFullOS
```

【ディスク番号】は適宜自分のディスク番号に変えてください。僕の場合は2です。
Validateion complete successfullyと表示された場合は変換が可能です。
僕の場合はここで変換可能だったので、変換不可能だったときは自力で頑張ってください……。

##### 3.変換する
続けて以下のコマンドを打ちます。

```
mbr2gpt /convert /disk:【ディスク番号】 /allowFullOS
```

【ディスク番号】は適宜自分のディスク番号に変えてください。
うまいこと変換できるとConversion complete successfullyと表示されます。

この後Windowsを一度再起動して、ちゃんと起動したら成功です。

#Boot Method & Secure Boot

https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/boot-to-uefi-mode-or-legacy-bios-mode

これをUEFIモードにすればOKでした。過程でSecure Bootはオンにしてた。
マザーボードによってやり方は違いますが、説明書を読むか、先人の知恵を借りるのがいいと思います。
僕は説明書を読んだ上で自信がなかったので以下のサイトを参考にしました。

https://tanidaiz.com/asrock%E3%83%9E%E3%82%B6%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%A7uefi%E3%83%96%E3%83%BC%E3%83%88%E3%81%A8legacy%E3%83%96%E3%83%BC%E3%83%88bios%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88/

# TPM Version
TPMがどういうものかなんとなくセキュリティスペシャリストで勉強したときの知識があったので調べていたら、僕の使っているマザーボードにはTPMモジュールが搭載されていないことがわかりました（ソケットはある）

じゃあ買う必要があるのかとびっくりしたんですが、最近のCPUであればCPU側にfTPMが搭載されていて、そちらを利用すれば要件を満たせるようです。

BIOSの設定から直接「TPM」という文字列を探していると、僕の場合は見つかりませんでした。
「Intel(R) Platform Trust Technology」という記載になっている場合もあるようです。

最終的にはマザーボード別の対応を載せている以下のサイトにお世話になりました。

https://did2memo.net/2021/06/25/windows-11-enable-tpm-intel-ptt/#intel-ptt

# おわりに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1701605/8f5d438d-0c0c-65d5-d783-3d9b5a024fbb.png)

30分くらいでぱぱっと全部OKにできました。
本当は全ての設定項目についてしっかりと理解をして修正すべきだなーと思いましたが、Windows11まで時間もあるのでそれはゆっくりやっていこうと思います。