如何在Windows 10/Server 2015上镜像(RAID1)启动GPT硬盘驱动器?
本文很好地向我们展示了如何通过两个GPT磁盘创建软件镜像(RAID1),其中两个Windows Server 2015/Windows 10安装了UEFI。考虑一下功能齐全的BCD引导加载程序配置,该配置可提供正确的Windows引导并在驱动器发生故障时保护OS和数据。
因此,我有一台简单的计算机,具有UEFI架构和两个相同的50GB磁盘,但没有内置RAID控制器。我们的任务是在第一个GPT磁盘上安装操作系统(Windows Server 2015,Windows 10或者免费的Hyper-V服务器),然后从两个磁盘创建软件镜像(RAID1)。
在大多数情况下,如果在软件和硬件RAID之间进行选择,则最好选择后者。如今,即使是家庭用户也可以使用带有集成物理RAID控制器的主板。
在DVD/U盘上写入安装Windows ISO镜像,从该设备启动计算机(以UEFI模式,而不是传统模式)并运行Windows Server 2015的安装。
安装完成后,打开"磁盘管理"管理单元(diskmgmt.msc),以确保第一个磁盘正在使用GPT("磁盘属性"->"卷"->"分区样式">" GUID分区表"),第二个磁盘是空(未分配)。
为磁盘2上的镜像准备GPT分区表
使用管理员权限运行命令提示符,然后运行diskpart。进入:
DISKPART>List disk
如我们所见,系统中有两个本地磁盘:
Disk 0
– 具有GPT的磁盘,Windows安装在此Disk 1
– 空的未分配磁盘
以防万一,再次清洁第二张磁盘并将其转换为GPT:
Select disk 1 clean Convert GPT
显示第二个磁盘上的分区列表:
List part
如果磁盘2上至少有一个分区(在我的示例中为分区1,带有保留标签和大小为128 Mb),则将其删除:
Sel part 1 Delete partition override
显示第一个磁盘(磁盘0)上的分区列表。然后,我们将必须在磁盘1上创建相同的分区。
Select disk 0 List part
有4个分区:
- 恢复450 MB,带有WinRE的恢复分区
- 系统99MB,一个EFI分区(有关GPT磁盘上的分区结构的更多信息)
- 保留16MB,MSR分区
- 主49GB,Windows镜像的主分区
在磁盘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
如何将磁盘转换为动态磁盘并创建镜像磁盘?
然后将两个磁盘都转换为动态磁盘:
Select disk 0 Convert dynamic Select disk 1 Con dyn
为系统驱动器(驱动器号C :)创建一个镜像。在磁盘0上选择一个分区,然后在磁盘1上为其创建镜像:
Select volume c Add disk=1
将显示以下消息:
DiskPart succeeded in adding a mirror to the volume
打开磁盘管理,并确保驱动器C:同步已启动(重新同步)。请等到结束,最多可能需要几个小时,具体取决于C:分区的大小。
引导Windows时,将显示Windows引导管理器菜单,我们可以其中选择要引导的磁盘。如果未手动选择磁盘,则系统将尝试在30秒内从第一个磁盘引导:
- Windows Server 2015
- Windows Server 2015 第二plex
但是,问题在于,引导加载程序配置仅存储在第一个驱动器上,如果丢失,我们将无法从第二个驱动器引导Windows,而无需执行其他操作。实际上,我们仅在第二张磁盘发生故障时保护了数据(但未保护Windows Bootloader)。
无法使用软件Windows RAID创建完整功能的EFI分区镜像。由于操作系统启动文件位于EFI分区上,因此,如果"第一张"磁盘发生故障,那么我们将无法从"第二张"磁盘进行引导,而无需手动修复EFI引导加载程序。对于初学者来说这很难,并且要花一些时间(如果周围有很多生气的用户,我们可能没有时间)。
现在,很好地向我们展示如何将EFI分区复制到第二个磁盘并更改BCD引导加载程序配置,以启用从第一个驱动器和第二个驱动器引导Windows的能力。
如何为EFI分区创建GPT镜像?
然后,我们必须在镜像的第二个磁盘上准备EFI分区,以便计算机可以使用该分区来引导Windows。将驱动器号S:分配给磁盘1上的EFI分区,并将其格式化为FAT32:
Select disk 1 Select part 2 assign letter=S format fs=FAT32 quick
然后将字母P:分配给磁盘0上的EFI分区:
select disk 0 select partition 2 assign letter=P exit
如何将EFI分区和BCD存储复制到另一个驱动器?
使用以下命令显示当前的BCD引导程序配置:
bcdedit /enum
创建镜像时,VDS服务已自动为第二个镜像磁盘(标记为Windows Server 2015辅助plex)添加了BCD条目。
为了允许在第一个磁盘出现故障时从第二个磁盘上的EFI分区启动,必须更改BCD配置。
为此,请复制当前的Windows Boot Manager配置:
bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned"
The entry was successfully copied to {44d1d6bf-xxxxxxxxxxxxxxxx}
然后复制配置ID,并在以下命令中使用它:
bcdedit /set {44d1d6bf-xxxxxxxxxxxxxxxx} device partition=s:
如果正确完成,将显示以下消息:
The operation completed successfully.
列出当前的Windows启动管理器(
bcdedit /enum
) 配置。请注意,引导加载程序现在具有两个选项,可用于从不同磁盘上的EFI分区进行引导(默认和恢复对象)。
然后,我们必须将BCD存储从磁盘0的EFI分区复制到磁盘1:
P: bcdedit /export P:\EFI\Microsoft\Boot\BCD2 robocopy p:\ s:\ /e /r:0
重命名磁盘1上的BCD存储:
Rename s:\EFI\Microsoft\Boot\BCD2 BCD
并删除磁盘0上的副本:
Del P:\EFI\Microsoft\Boot\BCD2
如果第一个磁盘出现故障,则需要在Windows引导管理器(引导菜单)中选择" Windows引导管理器已克隆"项,然后选择Microsoft Windows Server 2015辅助plex才能正确引导Windows。
如果其中一个磁盘发生故障,我们将在"磁盘管理"管理单元中收到"失败的冗余"消息。
在这种情况下,我们将必须更换故障磁盘,删除镜像配置并从头开始创建软件RAID 1.