Skip to main content

Windows Software Raid - UEFI GPT

前言

延續之前 Windows Software Raid - Legacy MBR 的技術分享 ,Windows 2003年代還會有一些低階Server有機會那樣做,在Intel® 快速儲存技術(Intel RST / IRST / RSTe / VROC)技術出來之後,現在Windows Software Raid在實務上基本上完全沒有人會去使用,如今一台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,但...你這輩子應該都不會這樣做。

設定方式

資料來源 : https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/set-up-dynamic-boot-partition-mirroring

測試環境

鍵人我使用Hyperv第二代來模擬UEFI GPT環境,HDD0先安裝好Windows 2022 OS,HDD1為同大小完全新的HDD,同時先刪除Recover磁區 (你真的在Server上用過Recover嗎 ?) (¬_¬")

圖片.png

圖片.png

建立鏡像磁碟(Mirror)

至 "電腦管理" => "磁碟管理",可看到 磁碟1 (HDD1) 是完全乾淨的磁碟

圖片.png

圖片.png

點及右鍵 => 連線

圖片.png

初始化磁碟

圖片.png

圖片.png

"系統管理者身分"執行Powershell / cmd

圖片.png

先刪除HDD1的MSR

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

圖片.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

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

sel disk 1
convert dynamic
sel disk 0
convert dynamic
exit

圖片.png

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

圖片.png

圖片.png

Mirror進行中

圖片.png

Mirror完成

圖片.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

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

P:
cd EFI\Microsoft\Boot
bcdedit /enum

圖片.png

※此指令只能在CMD下執行※

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

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

圖片.png

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

bcdedit /enum all

圖片.png

將剛剛的變更匯出為BCD2

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

圖片.png

將P的資料全部複製到S

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

圖片.png

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

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

圖片.png

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

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

圖片.png

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

磁碟故障測試

關機,到Hyperv "設定"=>"韌體"中已經可以看到HDD1的 "Windows Boot Manager Cloned"

圖片.png

移除HDD0

圖片.png

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

圖片.png

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

圖片.png

無法開機,正常

圖片.png

點選Enter,重新選擇HDD1開機

圖片.png

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

圖片.png

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

重建Mirror

關機,我們將HDD0掛回來

圖片.png

選擇HDD1開機

圖片.png

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

圖片.png

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

圖片.png

圖片.png

圖片.png

圖片.png

點選HDD0,匯入外部磁碟

圖片.png

圖片.png

圖片.png

將HDD0的舊磁區刪除

圖片.png

圖片.png

點選HDD1,重新建立Mirror

圖片.png

圖片.png

Mirror中

圖片.png

Mirror完成

圖片.png

後話

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

只是你這輩子應該都不會再去用他 ……  ╮(╯_╰)╭