Программный RAID1 (зеркало) для загрузочного диска в Windows

В Windows доступны встроенные средства для создания программных RAID массивов из нескольких физических дисков. Сначала рассмотрим простую конфигурацию, когда нужно создать зеркало из двух физических дисков с данными. Затем рассмотрим, как построить RAID1 конфигурацию для загрузочного (системного) диска, на котором находится загрузчик и системные файлы Windows. Такая конфигурация позволит обеспечить загрузку Windows и защитить данные от выхода из строя любого диска.

В современных версиях Windows есть два средства для организации программных RAID массивов:

  • Классические динамические диски – позволяют создать RAID 0 и 1 в десктопных Windows 10/11, + RAID5 в Windows Server. Про них пойдет речь в этой статье.
  • Более современная Storage Spaces – простое и удобное средство для создания зеркального или массива с контролем четности. Не подходит для загрузочных дисков.

Создать зеркало из двух дисков с данными в Windows

Сначала рассмотрим простой случай, когда вам нужно создать зеркало (RAID 1) из двух дисков с данными в Windows. Подразумеваем, что в RAID объединяются диски, отличные от системного (загрузочного).

  1. Откройте консоль управления дисками diskmgmt.msc . В нашем примере на компьютере доступно два дополнительных неразмеченных диска по 40 Гб.
  2. Инициализируйте диски (если еще не сделали)инициализация новых дисков
  3. По очереди щелкните по каждому диску и преобразуйте его в динамический.Преобразовать диск в динамический
  4. Теперь щелкните по неразмеченному месту и выберите New Mirrored Volume.Создать зекральный том в Windows
  5. Добавьте в зеркало оба диска:Добавить два диска в зеркало
  6. Затем выберите букву диска, которую нужно назначить тому и отформатируйте его.
  7. В результате у вас появилось программное зеркало из двух дисков, для обращения к которому назначена буква диска (E: в нашем примере)Массив raid1 из дисков сданными в Windows

При выходе из строя одного из диско в таком программном RAID1, неисправный диск удаляется из конфигурации и по аналогии в зеркала добавляется новый. После этого происходит автоматическая синхронизация данных с оставшегося диска на новый.Синхронизация данных между дисками в RAID1

Настраиваем программный RAID1 для загрузочного диска Windows

Теперь рассмотрим более сложную конфигурацию, когда нужно создать программный RAID для системного диска с уже установленной Windows.

Используется следующий стенд:

  • Компьютер с UEFI, на котором установлен Windows Server 2025 (это также может быть Windows 10/11 или бесплатного сервер Hyper-V)
  • На системном диске используется таблица разделов GPT
  • К компьютеру подключен новый пустой диск аналогичного размера, который будет использоваться в качестве зеркала для системного диска

Наша задача собрать из двух дисков программное зеркало (RAID1 – Mirroring) и скопировать конфигурацию загрузчика, чтобы компьютер мог загружаться с любого из дисков.

Кратко основные шаги, которые предстоит сделать:

  1. Подключить второй диск к компьютеру
  2. Создать на втором диске таблицу разделов GPT и разделы, аналогичные системному диску
  3. Преобразовать оба диска в динамические
  4. Объединить диски в зеркало
  5. Обновить конфигурацию EFI раздела и BCD загрузчика на втором диске
  6. Протестировать загрузку с первого и второго дисков

Сначала откройте консоль управления дисками ( diskmgmt.msc ), и убедитесь, что на первом диске используется таблица разделов GPT (свойства диска -> вкладка Volumes -> Partition style –> GUID partition table), а второй диск пустой (неразмечен).

подготовка с созданию програмного raid в Windows 10 / Server 2016

Откройте командную строку с правами администратора и выполните команду diskpart. Наберите:

DISKPART>list disk

Доступно два диска:

  • Disk 0 – диск с таблицей разделов GPT, на который установлена Windows
  • Disk 1 – пустой неразмеченный диск

List disk

Очистите второй диск и сконвертируйте его в GPT:

select disk 1
clean
convert GPT

Введите список разделов на втором диске:

list part

Если найдется хотя бы один раздел (в моем примере это Partition 1 – Reserved – Size 128 Mb), удалите его:

sel part 1
delete partition override

конвертирование диска в gpt

Выведите список разделов на 1 диске (disk 0). Далее вам нужно создать точно такие же разделы на Disk 1.
select disk 0
list part

На системном диске есть 4 раздела:

list part на gpt диске

Создаем такие же разделы на Disk 1:
select disk 1
create partition primary size=450
format quick fs=ntfs label= "WinRE"
set id= "de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001

Идентфикатор de94bba4-06d1-4d40-a16a-bfd50179d6ac задает тип раздела как Windows RE, а атрибут 0x8000000000000001 включает для раздела метку обязательный и не присваивать букву диска.

create partition efi size=99
create partition msr size=16
list part

создание структуры разделов для загрузочного gpt диска

Теперь оба диска нужно преобразовать в динамические:

select disk 0
convert dynamic
select disk 1
conv dyn

конвертивровать диски в динамические

Создадим зеркало для системного диска (диск C:). Нужно выбрать раздел на первом диске и создать для него зеркало на 2 диске:

Select volume c
Add disk=1

Должно появится сообщение:

DiskPart succeeded in adding a mirror to the volume
Либо выберите в консоли Disk Management системный раздел и нажмите Add mirror (это аналогичная операция). Добавить зеркало для системного раздела Windows

Откройте консоль управления дисками, и убедитесь, что синхронизация раздела C запущена (Recynching). Дождитесь ее окончания (может занять до нескольких часов в значимости от размера раздела C: ).

синхронизация данных в програмном raid 1 в windows

При загрузке Windows теперь будет появляться меню Windows Boot Manager с предложением выбрать загрузочную запись для загрузки. Если не выбрать диск вручную, система через 30 секунд попытается загрузиться с первого диска:

  • Windows Server
  • Windows Server– secondary plex

загрузка windows через secondary plex

На данный момент конфигурация загрузчика хранится только на 1 диске, и при его потере, вы не сможете загрузить ОС со второго. Программный RAID Windows не получится использовать для создания нормального зеркала EFI раздела. Т.к. на EFI разделе хранятся файлы, необходимые для загрузки ОС, то при выходе их строя первого диска, вы не сможете загрузить компьютер со второго диска без ручного восстановления загрузчика EFI на нем в среде восстановления.

Рассмотрим, как скопировать EFI раздел на второй диск и обновить конфигурацию загрузчика (BCD), чтобы вы могли загрузить Windows как с первого, так и со второго диска.
Назначим EFI разделу на Disk 1 букву S и отформатируем его в файловой системе FAT32:

select disk 1
select part 2
assign letter=S
format fs=FAT32 quick

создать EFI раздел с fat32
Теперь назначим букву диска P: для EFI раздела на Disk 0:

select disk 0
select partition 2

Номера разделов можно перепроверить, выполнив команду list part.

assign letter=P
exit

diskpart назначить буквы дискам EFI

Теперь можно скопировать файлы EFI и BCD конфигурацию на второй диск. текущую конфигурацию загрузчика BCD с помощью команды:

bcdedit /enum

При создании зеркала, служба VDS автоматически добавила в конфигурацию BCD запись для второго зеркального диска (с меткой Windows Server– secondary plex).

bcdedit /enum для gpt диска сbootmgfw.efi

Чтобы 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.

bcdedit /set {44d1d6bf-xxxxxxxxxxxxxxxx} device partition=s:

Выведите текущую конфигурацию Windows Boot Manager ( bcdedit /enum ). Обратите внимает, что у загрузчика теперь два варианта загрузки EFI с разных дисков (default и resume object).

две конфигурации Windows Boot Manager для разных gpt дисков с загрузчиками

Теперь нужно сделать копию BCD хранилища на разделе EFI первого диска и скопировать файлы на второй диск:

P:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
robocopy p:\ s:\ /e /r:0

robocopy EFI раздела в зеркале

Переименуйте BCD хранилище на втором диске:

Rename s:\EFI\Microsoft\Boot\BCD2 BCD

Удалите копию на Disk 0:

Del P:\EFI\Microsoft\Boot\BCD2

переименовать bcd

В diskpart можно убрать буквы дисков у EFI разделов:

sel vol p
remove
sel vol s
remove

Чтобы загрузится с загрузчика на втором диске (например в случае выход из строя первого), нужно войти в загрузочное меню UEFI (при перезагрузке компьютера) и выбрать запись загрузчика на втором диске — Windows Boot Manager Cloned.

Выбрать в UEFI загрузчик windows boot manager на диске

После этого в BCD загрузчике нужно загрузить ОС через конфигурациею Windows Server– secondary plex.

загрузка windows через secondary plex

Чтобы узнать с какого диска выполнена загрузка, выполните команду:

bcdedit

С какого диска загрузилась windows

Замена диска в программном RAID1 в Windows

Рассмотрим, как правильно выполнить замену неисправного диска в программном RAID Windows.

При загрузке с отказавшим диском, в диспетчере Disk Management вы увидите сообщение Failed Redndancy.

windows програмный raid failed redundance

В этом случае вы должны заменить неисправный диск, удалить конфигурацию зеркала, пересоздать программный RAID с начала и обновить загрузчик.

Допустим в нашем примере из строя вышел disk 0 (первоначальный диск, с которого мы выполняли синхронизацию). При загрузке в настройках методов UEFI выберите, что нужно загрузиться со второй записи Windows Boot Manager cloned.

Загрузитесь без нового диска и удалите старую конфигурацию RAID1. Как вы видите, один из дисков в зеркале находится в статусе Missing .

Щелкните по диску и выберите Remove Mirror.

Удалить диск из зеркала

Установите новый исправный диск и повторите все шаги с созданием таблицы разделов, конвертации нового диска в динамический и добавления в зеркало. Не забудьте назначьте буквы диска EFI разделам. Должна начаться синхронизация данных.

Замена неисправного диска в raid, синхронизация данных

Теперь нужно удалить старые записи из диспетчера загрузки. Выведите текущую конфигурацию (в cmd.exe ):

bcdedit /enum

некорректная запись unknown device в bcdedit

При модификации BCD после замены диска будьте особенно внимательны и не снесите конфигурацию ESP, случайно удалив не ту запись в bootmgr.

Т.к. мы заменили первый ( !!! ) диск, нужно удалить запись {default}:

bcdedit /delete {default}

bcdedit удалить загрузочную запись

Следующая команда обновит конфигурацию bootmgr:

bcdedit /set {bootmgr} device partition=p:

обновить конфигурацию bootmgr

Затем скопируйте раздел EFI на новый диск как описано выше. В результате, в загрузчик будет добавлена еще одна запись plex (их можно переименовать через bcdedit ).

windows-boot-manager несколько secondary plex записей

Такая конфигурация с программным RAID в Windows для UEFI компьютера обеспечивает защиту данных от выхода из строя любого из дисков. При этом при замене диска придется потратить немного времени на ручное обновление конфигурации таблицы разделов и загрузчика.


Предыдущая статья Следующая статья


Комментариев: 57 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)