Win11 の再インストール無しで non-VMD -> vmd-RAID1 に移行した備忘録（+Home -> Pro）

# これは備忘録です
- ほぼ一日消し飛んだ
- コマンドプロンプトの画面はブート済みの Win11 で撮っているので実際とは差異があります

# 作業目的
- Windows11 を PCIe NVMe SSD に入れていたが、過去の経験から RAID1 で保護したくなった
    - 今使っているのが B660 Mother なので、PCIe NVMe SSD では RAID (Intel RST/VMD) を組めない
- そもそも自分の環境的には PCIe NVMe SSD はあまり利点が無い
    - FPS とか重いゲームをやらないと、PCIe SSD は、高い・熱い・取り付けが面倒（大体グラボとかが被さってる）
    - ケーブルレスは利点だが、それだけで全てを帳消しにできるかと言われると……
- **VMD RAID1 on SATA SSDx2** を作る


# マシン構成
- `Asrock B660M Pro RS`
    - Intel i5-12600K
- PCIe SSD
    - `Western Digital: WDS500G3B0C`
- SATA SSD
    - `Faspeed: K5-960G`
    - `ADATA: ASU650SS-960GT-R`


# 1. non-VMD -> VMD
- まず、non-VMD でインストールされた Win11 を、VMD-enabled な環境でブートできるようにする

## 用意するもの
- マザーボードに対応した RST/VMD ドライバーを展開した USB メモリ
    - B660M Pro RS：https://www.asrock.com/mb/Intel/B660M%20Pro%20RS/index.jp.asp#Download
    - `Intel ラピッド・ストレージ・テクノロジー・ドライバーおよびユーティリティバージョン:19.1.0.1001.4`
- Windows11 の Install USB Memory / 回復メディア（以降、**回復ドライブ**）
    - UEFI 起動できるもの
    - **外付け光学ドライブはダメ**

## 作業
### a. UEFI から Intel RST/VMD を有効化する
- B660M PRO RS の場合は、`Advanced/Storage Configuration/VMD Configuration` から `Enabled`

### b. この状態では、Windows11 は BSOD で起動に失敗する（ハズ）
- `INACCESSIBLE_BOOT_DEVICE`

### c. RST/VMD Driver のインストール
-  回復ドライブから起動して、コマンドプロンプトを出す
- RST/VMD ドライバのインストール
    - ほぼ間違いなく、`diskpart` でも OS Disk を確認できないはず
```bat
> pnputil -i -a <path-to-driver.inf>

//自分の場合は
> pnputil -i -a "D:\RapidStorage(v19.1.0.1001.4)\F6\VMD\f6vmdflpy-x64\iaStorVD.inf"
```

- diskpart から、Windows のドライブレターを確認する
    - 未割り当てなら、`select disk`, `select part`, `assign letter=C:` なりで割り当てる

```bat
DISKPART> list vol

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    893 GB  正常         ブート     <----- これ。NTFS でそれっぽいやつ
  Volume 1                      FAT32  Partition    100 MB  正常         システム
  Volume 2                      NTFS   Partition    644 MB  正常         非表示
  Volume 3     E   System Back  NTFS   Partition   1853 GB  正常
  Volume 4     F   XIAKE        FAT32  リムーバブル       959 MB  正常
```

- ドライバ注入

```bat
# C:\ にある Windows に、D:\ にあるドライバを再帰的に探索してインストールする
> DISM /Image:C:\ /Add-Driver /driver:D:\ /recurse

// 自分の場合
> DISM /Image:C:\ /Add-Driver /driver:"D:\RapidStorage(v19.1.0.1001.4)\F6\VMD\f6vmdflpy-x64\" /recurse
```

### d. おそらく、VMD-enabled でも Win11 が起動できるようになるハズ


# 2. Disk Clone
- OS Disk のクローン
    - VMD RAID1 を組む内の一台で OK

## 用意するもの
- クローン環境
    - お好きなもの
    - Ubuntu Live Media の `dd` とかでも OK

## 作業
### クローン
- 各自の手順で



# 3. RST/VMD の RAID 作成
- RAID Array を組んで、Resilver させる

## 用意するもの
- SATA ポートに接続された SSDx2
    - 一台は [2. Disk Clone](#2-Disk-Clone) で作成したもの


## 作業
### a. Intel Optane Memory and Storage Management のインストール
- Microsoft Store から

### b. RAID Array の作成
- `Create RAID Volume`
    - コントローラの選択：`SATA`
    - ボリュームタイプの選択：`リアルタイム データ保護 (RAID 1)`
- 後はディスクを選択して作成
    - クローンした方を Source として、Resilver が行われる
- 終わるまで待つ


# 4. クローンディスクの調整
- 自分はクローンディスクそのままでは起動できなかったので調整
    - BSOD: 0xc00000e
- 自分は `bootrec /fixmbr`, `bootrec /fixboot`, `bootrec /scanos` は効果がなかった
- スタートアップ修復も複数回試したが修復できなかった

## 用意するもの
- [1. non-VMD -> VMD](#1-non-vmd---vmd) と同じ

## 作業
### a. BCD の再構成
-  回復ドライブから起動して、コマンドプロンプトを出す
- RST/VMD ドライバのインストール
- diskpart から、EFI のドライブレターを確認する
    - 未割り当てなら、`select disk`, `select part`, `assign letter=B:` なりで割り当てる

```bat
DISKPART> list vol

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    893 GB  正常         ブート
  Volume 1     B                FAT32  Partition    100 MB  正常         システム     <----- これ。FAT32 で 100MB くらいのやつ
  Volume 2                      NTFS   Partition    644 MB  正常         非表示
  Volume 3     E   System Back  NTFS   Partition   1853 GB  正常
  Volume 4     F   XIAKE        FAT32  リムーバブル       959 MB  正常
```

- BCD 再構成
```bat
> cd /d b:\EFI\Microsoft\Boot
> ren BCD BCD.bak
> bootrec /Rebuildbcd

// 場合によっては以下も必要かもしれない
> bootrec /fixboot
> bcdboot c:\Windows /l ja-JP
```

### b. 多分、これでクローンディスクから起動できるようになるハズ……？

### c. BCD の変化例
- 再構成前
```bat
> bcdedit

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  unknown
path                    ¥EFI\MICROSOFT BOOT¥BOOTMGFW. EFI description
description             Windows Boot Manager
locale                  ja-JP
inherit                 {global settings}
default                 {default}
resumeobject            {6212f70a-9163-11ec-b87a-8e5033ea437b}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows ブート ローダー
--------------------------------
identifier              {default}
device                  unknown
path                    \Windows\system32\winload.efi
description             Windows 11
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {6212f70c-9163-11ec-b87a-8e5033ea437b}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                unknown
systemroot              \Windows
resumeobject            {6212f70a-9163-11ec-b87a-8e5033ea437b}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto
```

- 再構成後

```bat
> bcdedit

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  ja-JP
default                 {current}
displayorder            {current}
timeout                 30

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 10 Home
locale                  ja-JP
osdevice                partition=C:
systemroot              \Windows
resumeobject            {fa3d4680-e06d-11ec-8656-806e6f6e6963}
bootmenupolicy          Standard
```






# 5. Win11 Home -> Win11 Pro

## 用意するもの
- Pro の Product Key

## 作業
### a. Generic Key で Home -> Pro にアップグレード
-  クローンしたからか、Product Key で直接アップグレードできなかった
    -  `0x803fa067`
- 以下の手順でまずは Pro にアップグレード
    1. ネットワークを切断
    1. Generic Key for Windows 11 Pro で認証
        - `VK7JG-NPHTM-C97JM-9MPGT-3V66T`

### b. Product Key の差し替え
- 再起動後、Pro Product Key で認証



# Ref.
- Inject drivers in Windows installation after motherboard change 
    - https://gist.github.com/TomCan/9644966
- UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法
    - https://freesoft.tvbok.com/tips/efi_installation/uefi_bootrec.html-