ในบทความนี้ เราจะแสดงวิธีสร้าง software mirror (RAID1) จากดิสก์ GPT สองดิสก์ที่มี Windows Server 2016/Windows 10 ติดตั้งสำหรับ UEFI เราจะพิจารณาการกำหนดค่า BCD bootloader แบบเต็มรูปแบบที่ให้การบูท Windows ที่ถูกต้องและปกป้อง OS และข้อมูลของคุณในกรณีที่ดิสก์ใดดิสก์หนึ่งล้มเหลว
ดังนั้น ผมมีคอมพิวเตอร์ธรรมดาที่มีสถาปัตยกรรม UEFI และดิสก์สองดิสก์ที่เหมือนกัน 50GB แต่ไม่มี RAID controller ในตัว งานของเราคือติดตั้ง OS (Windows Server 2016, Windows 10 หรือ Hyper-V server ฟรี) บนดิสก์ GPT แรก จากนั้นสร้าง software mirror (RAID1) จากสองดิสก์
ในกรณีส่วนใหญ่ หากคุณเลือกระหว่าง software และ hardware RAID คุณควรเลือก hardware Motherboards ที่มี physical RAID controller integrated มีให้แม้สำหรับผู้ใช้ทั่วไปในปัจจุบัน
เขียน Windows ISO image บน DVD/USB stick บูทคอมพิวเตอร์จากอุปกรณ์นี้ (ในโหมด UEFI ไม่ใช่ Legacy) และรันการติดตั้ง Windows Server 2016
หลังจากการติดตั้งเสร็จสิ้น ให้เปิด Disk Management snap-in (diskmgmt.msc) เพื่อตรวจสอบว่าดิสก์แรกใช้ GPT (Disk Properties → Volumes → Partition style –> GUID partition table) และดิสก์ที่สองว่างเปล่า (unallocated)
การเตรียม Partition Table GPT สำหรับ Mirror บน Disk 2
รัน command prompt ด้วยสิทธิ์ administrator และรัน diskpart ป้อน:
DISKPART>List disk
如你所見 มี local disks สองดิสก์ที่พร้อมใช้งานในระบบ:
Disk 0– ดิสก์ที่มี GPT, Windows ติดตั้งอยู่Disk 1– ดิสก์ว่างเปล่า unallocated

ล้างดิสก์ที่สองอีกครั้งเผื่อไว้และแปลงเป็น GPT:
Select disk 1
clean
Convert GPT
แสดงรายการ partitions บนดิสก์ที่สอง:
List part
หากมี partition อย่างน้อยหนึ่งบน Disk 2 (ในตัวอย่างของผมคือ Partition 1 ด้วยป้าย Reserved และขนาด 128 Mb) ให้ลบมัน:
Sel part 1
Delete partition override

แสดงรายการ partitions บนดิสก์แรก (disk 0) จากนั้นคุณจะต้องสร้าง partitions เหมือนกันบน Disk 1
Select disk 0
List part
มี 4 partitions:
- Recovery – 450MB, recovery partition ที่มี WinRE
- System – 99MB, EFI partition (เพิ่มเติมเกี่ยวกับโครงสร้าง partition บนดิสก์ GPT)
- Reserved – 16MB, MSR partition
- Primary – 49GB, partition หลักที่มี Windows image

สร้างโครงสร้าง partitions เหมือนกันบน Disk 1:
Select disk 1
Create partition primary size=450
format quick fs=ntfs label=”WinRE”
set id=”de94bba4-06d1-4d40-a16a-bfd50179d6ac”
create partition efi size=99
create partition msr size=16
list part

วิธีแปลงดิสก์เป็น Dynamic และสร้าง Mirrored Disk
จากนั้นแปลงดิสก์ทั้งสองเป็น dynamic:
Select disk 0
Convert dynamic
Select disk 1
Con dyn
สร้าง mirror สำหรับ system drive (drive letter C:) เลือก partition บน Disk 0 และสร้าง mirror สำหรับมันบน Disk 1:
Select volume c
Add disk=1
ข้อความต่อไปนี้จะปรากฏ:
DiskPart succeeded in adding a mirror to the volume
เปิด Disk Management และตรวจสอบว่าการซิงโครไนซ์ drive C: เริ่มต้นแล้ว (Resynching) รอจนเสร็จ อาจใช้เวลาถึงหลายชั่วโมงขึ้นอยู่กับขนาดของ partition C:

เมื่อบูท Windows เมนู Windows Boot Manager จะปรากฏที่คุณสามารถเลือกดิสก์ที่จะบูทได้ หากคุณไม่เลือกดิสก์ด้วยตนเอง ระบบจะพยายามบูทจากดิสก์แรกใน 30 วินาที:
- Windows Server 2016
- Windows Server 2016 – secondary plex

อย่างไรก็ตาม ปัญหาคือ bootloader configuration ถูกเก็บไว้บนดิสก์แรกอย่างเดียว และหากคุณสูญเสียมัน คุณจะไม่สามารถบูท Windows จากดิสก์ที่สองได้โดยไม่มีการดำเนินการเพิ่มเติม จริงๆ แล้วคุณปกป้องข้อมูลของคุณ (แต่ไม่ใช่ Windows bootloader) จากความล้มเหลวของดิสก์ที่สองเท่านั้น
Software Windows RAID ไม่สามารถใช้สร้าง EFI partition mirror ที่ทำงานได้เต็มที่ เนื่องจากไฟล์บูทของ OS อยู่บน EFI partition หากดิสก์ แรก ล้มเหลว คุณจะไม่สามารถบูทจากดิสก์ ที่สอง ได้โดยไม่ต้องซ่อมแซม EFI bootloader ด้วยตนเอง มันค่อนข้างยากสำหรับมือใหม่และใช้เวลาบ้าง (คุณอาจไม่มีเวลาหากมีผู้ใช้โกรธแห่คอยรอบๆ)
ตอนนี้เราจะแสดงวิธีคัดลอก EFI partition ไปยังดิสก์ที่สองและเปลี่ยนการกำหนดค่า BCD bootloader เพื่อให้สามารถบูท Windows จากดิสก์แรกและที่สองได้
วิธีสร้าง GPT Mirror สำหรับ EFI Partition
จากนั้นคุณต้องเตรียม EFI partition บนดิสก์ที่สองใน mirror เพื่อให้คอมพิวเตอร์ของคุณสามารถใช้ partition นี้บูท Windows กำหนด drive letter S: ให้กับ EFI partition บน Disk 1 และ format เป็น FAT32:
Select disk 1
Select part 2
assign letter=S
format fs=FAT32 quick

จากนั้นกำหนดตัวอักษร P: ให้กับ EFI partition บน Disk 0:
select disk 0
select partition 2
assign letter=P
exit
วิธีคัดลอก EFI partition และ BCD Store ไปยังดิสก์ที่สอง
แสดง BCD bootloader configuration ปัจจุบันโดยใช้คำสั่งต่อไปนี้:
bcdedit /enum
เมื่อสร้าง mirror บริการ VDS ได้เพิ่ม BCD entry สำหรับดิสก์ mirror ที่สองโดยอัตโนมัติ (มีป้าย "Windows Server 2016 – secondary plex")

เพื่ออนุญาตให้บูทจาก EFI partition บนดิสก์ที่สองหากดิสก์แรกล้มเหลว คุณต้องเปลี่ยน BCD configuration ของคุณ
เพื่อทำเช่นนี้ ให้คัดลอก Windows Boot Manager configuration ปัจจุบัน:
bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned"
The entry was successfully copied to {44d1d6bf-xxxxxxxxxxxxxxxx}
จากนั้นคัดลอก configuration ID และใช้ในคำสั่งต่อไปนี้:
bcdedit /set {44d1d6bf-xxxxxxxxxxxxxxxx} device partition=s:
หากคุณทำถูกต้อง ข้อความนี้จะปรากฏ:
The operation completed successfully.

แสดงรายการ Windows Boot Manager ปัจจุบัน (bcdedit /enum) โปรดสังเกตว่า bootloader ตอนนี้มีสองตัวเลือกสำหรับบูทจาก EFI partitions บนดิสก์ต่างๆ (default และ resume object)

จากนั้นคุณต้องคัดลอก BCD store จาก EFI partition บน Disk 0 ไปยัง Disk 1:
P:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
robocopy p:\ s:\ /e /r:0

เปลี่ยนชื่อ BCD store บน Disk 1:
Rename s:\EFI\Microsoft\Boot\BCD2 BCD
และลบ copy บน Disk 0:
Del P:\EFI\Microsoft\Boot\BCD2

หากดิสก์แรกของคุณล้มเหลว คุณต้องเลือกรายการ "Windows Boot Manager Cloned" ใน Windows Boot Manager (boot menu) และจากนั้น "Microsoft Windows Server 2016 — secondary plex" เพื่อบูท Windows ของคุณอย่างถูกต้อง
หากดิสก์หนึ่งล้มเหลว คุณจะได้ข้อความ Failed Redundancy ใน Disk Management snap in

ในกรณีนี้ คุณจะต้องเปลี่ยนดิสก์ที่ล้มเหลว ลบการกำหนดค่า mirror และสร้าง software RAID 1 ใหม่ตั้งแต่ต้น