Feb. 16th, 2024

Windows NT Server 3.1 and later provided FTDisk.sys driver and "Disk Administrator" tool which allowed creation of software RAID sets from individual physical disks.
As far as PCs used BIOS, everything was fine and comfortable, that is, adding mirror for boot volume C: automatically added "boot from secondary plex" item to the boot menu.
But then, with Windows Vista SP1 and Server 2008 (non-R2), UEFI and GPT support had been introduced, which noticeably complicated boot volume mirroring, adding lot of manual steps.
Microsoft described them in their KB951985 , later turned into an article on Microsoft Learn.
An attentive reader would be able to perform all described steps and get his boot volume mirrored and tolerant to a loss of either of its halves.
But then, an unpleasant surprise awaits him when he decides to upgrade his Windows Server to its next version (like, from Windows 2008 R2 to Windows 2012 R2).
The upgrade process fails on its way, then gets reverted to the original Windows version.
I had 4 Windows servers in my "fleet", with identically configured mirroring, and their upgrade failed in the same way.
They all have 2..3 TB of data on C: on 3.5" SATA drives like WD Red (WD20EFRX/WD30EFRX), which would be copied to a cleanly-installed Windows in 4..6 hours, but this long downtime is undesirable.

After some experiments I found a way how to proceed with upgrade: need just to start Windows with one of mirrored C: halves disconnected, so C: gets into degraded mode.
Then it was possible to upgrade Windows 2008 R2 -> 2012 R2 -> 2016 -> 2019.
After completion of this upgrade, I reconnected other half of the mirror, started Windows again and resynchronized mirrored volume C:, which went through transparently to other OS operaion (except reduced I/O performance during resync of C:).

Apparently, when Windows upgrade finds more than one EFI boot partition, it fails and reverts the upgrade.
But when you temporarily hide this partition (by disconnecting physical disk holding it), the upgrade goes on as smoothly as one would expect.

Btw, I once tried to upgrade a smaller 2008R2 server using full copying, that is, install a new 2k8R2 to an single empty drive, copy mirrored C: volume from the upgradeable system to that drive, boot from the copy, upgrade it from 2K8 to 2K12->16->19, then empty one of the original drives, install 2K19 on it, copy upgraded C: back to it, boot from this copy, add mirror to the other original drive by Microsoft's recommendation. It was even harder than with 2K8R2, as in addition to EFI  (EF00) and MSR (0C01) partitions, 2K19 setup creates Recovery partition of type 2700, which you could not re-create on the second drive, and when you try to recreate it using diskpart or gdisk, after that you could not convert the drive into Dynamic format. So my mirrored volume was added to the second drive with different partition offset than the first. Hope this would not bring any serious harm.

Overall, Windows Server upgrade on a temporarily-degraded mirrored boot volume was the simplest way among all others tried and/or imagined by me.

Profile

Volodymyr Mutel

May 2025

S M T W T F S
    123
45678910
11 121314151617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 13th, 2025 06:19 pm
Powered by Dreamwidth Studios