# Windows Software Raid - UEFI GPT

### 前言

延續之前 [Windows Software Raid - Legacy MBR 的技術分享](https://mdfk.goddamn.idv.tw/books/windows-server/page/windows-software-raid-legacy-mbr) ，Windows 2003年代還會有一些低階Server有機會那樣做，在Intel® 快速儲存技術（Intel RST / IRST / <span class="t55VCb">RSTe / VROC</span>）技術出來之後，現在Windows Software Raid在實務上基本上**<span style="color: rgb(224, 62, 45);">完全沒有人會去使用</span>**，如今一台Workstation等級的機器就算沒有Harware Raid Card都完全支援Intel Software Raid，比起Windows Software Raid來說好用簡單太多Performance又好，這種Windows Software Raid可謂是時代的眼淚，此篇 Windows Software Raid - UEFI GPT 相較於 Legacy MBR 在設定上更加麻煩、實用性上更低，基本上就是分享一下現代的Windows Server還是可以在UEFI GPT上還是可以做Software Raid，但...你這輩子應該都不會這樣做。

### 設定方式

<p class="callout info">資料來源 : [https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/set-up-dynamic-boot-partition-mirroring](https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/set-up-dynamic-boot-partition-mirroring)</p>

#### 測試環境  


鍵人我使用Hyperv第二代來模擬UEFI GPT環境，HDD0先安裝好Windows 2022 OS，HDD1為同大小完全新的HDD，同時先刪除Recover磁區 (你真的在Server上用過Recover嗎 ?) **<span style="color: rgb(224, 62, 45);">(¬\_¬")</span>**

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/ZCMisJ3dJB.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/a8bq6b2Yf7.png)

#### 建立鏡像磁碟(Mirror)

至 "電腦管理" =&gt; "磁碟管理"，可看到 磁碟1 (HDD1) 是完全乾淨的磁碟

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/vH3dYdTjm5.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/sMulG4AonJ.png)

點及右鍵 =&gt; 連線

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/UdD7ZkjbRv.png)

初始化磁碟

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/tomnpG1T1y.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/y81DtTRKez.png)

以<span style="color: rgb(224, 62, 45);">"**系統管理者身分"**</span>執行Powershell / cmd

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/fijluopNBQ.png)

先刪除HDD1的MSR

```
diskpart
list disk
sel disk 1
list par
sel par 1
delete par override
list par
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/fwByi1bVN1.png)

重新建立 EFI Boot磁區與MSR

```
sel disk 0
list par
sel disk 1
create par efi size=100
create par msr size=16
list par
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/HtzqBz9aLg.png)

將 磁碟0、磁碟1 轉換為"動態磁碟"後，離開diskpart

```
sel disk 1
convert dynamic
sel disk 0
convert dynamic
exit
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/6HG2iPtZ85.png)

回到 磁碟管理，點選 磁碟0 上新增鏡像

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/ZmRIBBBaTz.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/8At1IsoRub.png)

Mirror進行中

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/8nVcQycoma.png)

Mirror完成

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/j058VndZsz.png)

#### 處理EFI Boot

Mirror是處理好了，但是EFI可不像是MBR直接使用Active來指定開機的磁區，所以在這裡我們必須對HDD1的EFI磁區進行處理，這樣一但出問題HDD1才能夠獨立開機。

首先先進Diskpart，將剛剛未格式化的EFI磁碟格式化為FAT32，並把HDD0 EFI掛載為P、HDD1 EFI掛載為S

```
diskpart
sel disk 1
sel par 1
assign letter=S
format fs=FAT32 quick
sel disk 0
sel par 1
assign letter=P
exit
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/nUhUVWKihs.png)

透過bcdedit /enum可以確認到現在EFI的開機的GUID

```
P:
cd EFI\Microsoft\Boot
bcdedit /enum
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/k5eqp1ZRvu.png)

<span style="color: rgb(224, 62, 45);">**<span style="font-size: 12.0pt; mso-bidi-font-size: 11.0pt; font-family: '新細明體',serif; mso-bidi-font-family: 新細明體; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA;">※此指令只能在CMD下執行※</span>**</span>

將現有 {bootmgr} Clone一份出來，並把S設定為相同的{GUID}

```
cmd
bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned"
bcdedit /set {GUID} device partition=S:
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/O7GV15tWMZ.png)

透過 bcdedit /enum all 可看到剛剛建立出來的開機選項

```
bcdedit /enum all
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/Ht95g8oG7T.png)

將剛剛的變更匯出為BCD2

```
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/z6Mfk8veQA.png)

將P的資料全部複製到S

```
robocopy p:\ s:\ /e /r:0
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/30ydRxBG5t.png)

將S的BCD2更名為BCD，並刪除P的BCD2

```
S:
cd EFI\Microsoft\Boot
ren BCD2 BCD
del P:\EFI\Microsoft\Boot\BCD2
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/6AVUuXW396.png)

回到diskpart，將磁碟代號 P、S 移除

```
diskpart
list vol
sel vol 1
remove letter P
sel vol 2
remove letter S
exit
```

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/RTYVtW3JPu.png)

到此EFI開機設定全數完成 (累...)

### 磁碟故障測試

關機，到Hyperv "設定"=&gt;"韌體"中已經可以看到HDD1的 "Windows Boot Manager Cloned"

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/HpmynojwZr.png)

移除HDD0

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/F5hOSaZO7f.png)

將Windows Boot Manager Cloned開機順序提高至1

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/3XtytuZafa.png)

開機，使用第一個選項 HDD0 開機

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/fpeHP8emBX.png)

無法開機，正常

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/GDlmPPJhlM.png)

點選Enter，重新選擇HDD1開機

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/8k8sdbwj8I.png)

開機正常，磁碟管理顯示"備援失敗"

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/ezQgcu0Q9F.png)

至此，磁碟故障測試完成，如此確認了就算失去任何一顆HDD都能夠正常開機

### 重建Mirror

關機，我們將HDD0掛回來

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/vaT9esPgSw.png)

選擇HDD1開機

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/8k8sdbwj8I.png)

裝置管理員確認已認到2顆HDD

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/RVxBuaZNZW.png)

磁碟顯示Mirror Fail，來移除鏡像

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/alSf1mhx6B.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/J68g5Ln0ky.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/3pvBmioRiZ.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/gvIojMKjnc.png)

點選HDD0，匯入外部磁碟

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/Hj4TNvmhhB.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/ogukO1xfBV.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/802R8NaIWl.png)

將HDD0的舊磁區刪除

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/grOu8ZAsdT.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/T4hfqMWgGt.png)

點選HDD1，重新建立Mirror

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/TloeQC8dY1.png)

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/NQKJl8hRCS.png)

Mirror中

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/9ps9nHnkwa.png)

Mirror完成

![圖片.png](https://mdfk.goddamn.idv.tw/uploads/images/gallery/2024-07/scaled-1680-/OeMMZDEdXH.png)

### 後話

僅以此分享一下即使是現在 UEFI Bios 年代，Windows Software Raid 依然還能用

只是你這輩子應該都不會再去用他 <span lang="EN-US" style="font-size: 12.0pt; mso-bidi-font-size: 11.0pt; font-family: 標楷體; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA;">……</span><span style="color: rgb(224, 62, 45);"> **╮（╯＿╰）╭**</span>