В Windows доступны встроенные средства для создания программных RAID массивов из нескольких физических дисков. Сначала рассмотрим простую конфигурацию, когда нужно создать зеркало из двух физических дисков с данными. Затем рассмотрим, как построить RAID1 конфигурацию для загрузочного (системного) диска, на котором находится загрузчик и системные файлы Windows. Такая конфигурация позволит обеспечить загрузку Windows и защитить данные от выхода из строя любого диска.
В современных версиях Windows есть два средства для организации программных RAID массивов:
- Классические динамические диски – позволяют создать RAID 0 и 1 в десктопных Windows 10/11, + RAID5 в Windows Server. Про них пойдет речь в этой статье.
- Более современная Storage Spaces – простое и удобное средство для создания зеркального или массива с контролем четности. Не подходит для загрузочных дисков.
Создать зеркало из двух дисков с данными в Windows
Сначала рассмотрим простой случай, когда вам нужно создать зеркало (RAID 1) из двух дисков с данными в Windows. Подразумеваем, что в RAID объединяются диски, отличные от системного (загрузочного).
- Откройте консоль управления дисками
diskmgmt.msc
. В нашем примере на компьютере доступно два дополнительных неразмеченных диска по 40 Гб. - Инициализируйте диски (если еще не сделали)
- По очереди щелкните по каждому диску и преобразуйте его в динамический.
- Теперь щелкните по неразмеченному месту и выберите New Mirrored Volume.
- Добавьте в зеркало оба диска:
- Затем выберите букву диска, которую нужно назначить тому и отформатируйте его.
- В результате у вас появилось программное зеркало из двух дисков, для обращения к которому назначена буква диска (E: в нашем примере)
При выходе из строя одного из диско в таком программном RAID1, неисправный диск удаляется из конфигурации и по аналогии в зеркала добавляется новый. После этого происходит автоматическая синхронизация данных с оставшегося диска на новый.
Настраиваем программный RAID1 для загрузочного диска Windows
Теперь рассмотрим более сложную конфигурацию, когда нужно создать программный RAID для системного диска с уже установленной Windows.
Используется следующий стенд:
- Компьютер с UEFI, на котором установлен Windows Server 2025 (это также может быть Windows 10/11 или бесплатного сервер Hyper-V)
- На системном диске используется таблица разделов GPT
- К компьютеру подключен новый пустой диск аналогичного размера, который будет использоваться в качестве зеркала для системного диска
Наша задача собрать из двух дисков программное зеркало (RAID1 – Mirroring) и скопировать конфигурацию загрузчика, чтобы компьютер мог загружаться с любого из дисков.
Кратко основные шаги, которые предстоит сделать:
- Подключить второй диск к компьютеру
- Создать на втором диске таблицу разделов GPT и разделы, аналогичные системному диску
- Преобразовать оба диска в динамические
- Объединить диски в зеркало
- Обновить конфигурацию EFI раздела и BCD загрузчика на втором диске
- Протестировать загрузку с первого и второго дисков
Сначала откройте консоль управления дисками (
diskmgmt.msc
), и убедитесь, что на первом диске используется таблица разделов GPT (свойства диска -> вкладка Volumes -> Partition style –> GUID partition table), а второй диск пустой (неразмечен).
Откройте командную строку с правами администратора и выполните команду diskpart. Наберите:
DISKPART>list disk
Доступно два диска:
- Disk 0 – диск с таблицей разделов GPT, на который установлена Windows
- Disk 1 – пустой неразмеченный диск
Очистите второй диск и сконвертируйте его в GPT:
select disk 1
clean
convert GPT
Введите список разделов на втором диске:
list part
Если найдется хотя бы один раздел (в моем примере это Partition 1 – Reserved – Size 128 Mb), удалите его:
sel part 1
delete partition override
Выведите список разделов на 1 диске (disk 0). Далее вам нужно создать точно такие же разделы на Disk 1.
select disk 0
list part
На системном диске есть 4 раздела:
- Recovery – 450 Мб, раздел восстановления со средой WinRE
- System – 99 Мб, EFI раздел (подробнее про структуру разделов на GPT дисках)
- Reserved — 16 Мб, MSR раздел
- Primary – 49 Гб, основной раздел с Windows
Создаем такие же разделы на 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
create partition efi size=99
create partition msr size=16
list part
Теперь оба диска нужно преобразовать в динамические:
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

Откройте консоль управления дисками, и убедитесь, что синхронизация раздела C запущена (Recynching). Дождитесь ее окончания (может занять до нескольких часов в значимости от размера раздела C: ).
При загрузке Windows теперь будет появляться меню Windows Boot Manager с предложением выбрать загрузочную запись для загрузки. Если не выбрать диск вручную, система через 30 секунд попытается загрузиться с первого диска:
- Windows Server
- Windows Server– 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
Теперь назначим букву диска P: для EFI раздела на Disk 0:
select disk 0
select partition 2
assign letter=P
exit
Теперь можно скопировать файлы EFI и BCD конфигурацию на второй диск. текущую конфигурацию загрузчика BCD с помощью команды:
bcdedit /enum
При создании зеркала, служба VDS автоматически добавила в конфигурацию BCD запись для второго зеркального диска (с меткой Windows Server– secondary plex).
Чтобы 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 Boot Manager (
bcdedit /enum
). Обратите внимает, что у загрузчика теперь два варианта загрузки EFI с разных дисков (default и resume object).
Теперь нужно сделать копию BCD хранилища на разделе EFI первого диска и скопировать файлы на второй диск:
P:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
robocopy p:\ s:\ /e /r:0
Переименуйте BCD хранилище на втором диске:
Rename s:\EFI\Microsoft\Boot\BCD2 BCD
Удалите копию на Disk 0:
Del P:\EFI\Microsoft\Boot\BCD2
В diskpart можно убрать буквы дисков у EFI разделов:
sel vol p
remove
sel vol s
remove
Чтобы загрузится с загрузчика на втором диске (например в случае выход из строя первого), нужно войти в загрузочное меню UEFI (при перезагрузке компьютера) и выбрать запись загрузчика на втором диске — Windows Boot Manager Cloned.
После этого в BCD загрузчике нужно загрузить ОС через конфигурациею Windows Server– secondary plex.
Чтобы узнать с какого диска выполнена загрузка, выполните команду:
bcdedit
Замена диска в программном RAID1 в Windows
Рассмотрим, как правильно выполнить замену неисправного диска в программном RAID Windows.
При загрузке с отказавшим диском, в диспетчере Disk Management вы увидите сообщение Failed Redndancy.
В этом случае вы должны заменить неисправный диск, удалить конфигурацию зеркала, пересоздать программный RAID с начала и обновить загрузчик.
Допустим в нашем примере из строя вышел disk 0 (первоначальный диск, с которого мы выполняли синхронизацию). При загрузке в настройках методов UEFI выберите, что нужно загрузиться со второй записи Windows Boot Manager cloned.
Загрузитесь без нового диска и удалите старую конфигурацию RAID1. Как вы видите, один из дисков в зеркале находится в статусе
Missing
.
Щелкните по диску и выберите Remove Mirror.
Установите новый исправный диск и повторите все шаги с созданием таблицы разделов, конвертации нового диска в динамический и добавления в зеркало. Не забудьте назначьте буквы диска EFI разделам. Должна начаться синхронизация данных.
Теперь нужно удалить старые записи из диспетчера загрузки. Выведите текущую конфигурацию (в
cmd.exe
):
bcdedit /enum
Т.к. мы заменили первый (
!!!
) диск, нужно удалить запись {default}:
bcdedit /delete {default}
Следующая команда обновит конфигурацию bootmgr:
bcdedit /set {bootmgr} device partition=p:
Затем скопируйте раздел EFI на новый диск как описано выше. В результате, в загрузчик будет добавлена еще одна запись plex (их можно переименовать через
bcdedit
).
Такая конфигурация с программным RAID в Windows для UEFI компьютера обеспечивает защиту данных от выхода из строя любого из дисков. При этом при замене диска придется потратить немного времени на ручное обновление конфигурации таблицы разделов и загрузчика.
У вас опечатка
Пофиксил )
1. Сейчас гораздо удобнее, для небольшого бизнеса применять именно сортовые рейд а не аппаратный.
2 вы пишете «По сути вы защитили ОС (не данные) только от сбоя второго диска.»
Это перевод, или русский вам не родной?)) вы наверное хотели сказать наоборот, данные защищены от сбоя, а система нет.
1) Согласен, у програмного raid есть свои плюсы — вы не зависите от raid контроллера. Если у вас вышел из строя сервер, вы сможете поставить диски в любой другой компьютер/сервер и запустить систему.
2) все верно, в спешке писал. Защищены данные, но не загрузчик ОС.
ид откуда брать?)
de94bba4-06d1-4d40-a16a-bfd50179d6ac — это стандартный ID для раздела восстановления.
Огонь! w2k19 под двумя M.2 nvme — всё взлетело! Я счастлив!))
Человеческое спасибо!)
причем, после того как выдернул 1-ый, успешно загрузился со 2-го, обратно воткнул первый и стал грузиться с него, словил закономерный BSOD. Обратно загрузился со 2-го, ресинкнулся и уже после этого штатно загрузился с 1-го! супер!)
Отлично 🙂
Почему закономерный? Мои эксперименты показали, что обе системы работоспособны остаются, можно втыкать диски по очереди или оба одновременно (второй будет помечен как «чужой»). Главное, не запутаться между ними потом ) Правда, я экспериментировал на SATA и MBR.
Скажите, для чего вы на 2-ом диске создаёте 1-ый раздел (тот, который для среды восстановления) (и, даже, форматируете и назначаете правильный тип) если всё равно не копируете в него файл вирт.диска WinRE?
По хорошему да, можно потом скопировать в этот раздел winre образ. Не стал усложнять статью. Если вам интересно как настроить среду WinRe следуйте гайду: https://winitpro.ru/index.php/2017/01/27/vosstanovlenie-sredy-windows-recovery-environment-winre-v-windows-10/
Благодарю за инструкцию! Есть ли возможность получить от вас на каких-либо договоренностях доступным языком некоторое наставничество, подсказку. В данный момент, по копированию WinRE на текущей программной конфигурации, описанной в статье, на раздел дублирующего диска. Из описания с ходу не смог разобраться!
Я когда создаю первый раздел ( у меня он efi ), на втором диске, у меня автоматически перед ним создается msr 16Mb, соотв-но смещения разные получаются. порядок разный разделов.
можно как то предотвратить автоматическое создание этого msr раздела самым первым?
Раздел MSR обязателен для разметки GPT
то что MSR обязателен это очевидно, но вопрос был не в этом,
попробую переформулировать вопрос:
как добиться чтобы он был не первым разделом? потому что на первом диске он идет не первым,
а на втором автоматически создается первым, соотв-но порядок разделов (и соотв-но их смещения) получается на втором диске другой. или это не важно?
В теории можно изменить порядок системных разделов. Но в этом примере это не важно, для каждого диска по сути есть собственная запись в загрузчике.
Нет, он не обязателен. Это заблуждение. Можете сами попробовать установить систему без этого раздела — всё будет работать
Есть скрипт или софтина для мониторинга программного RAID?
Почти все системы мониторинга могут получать состояние SMART диска (можно запилить свой скрипт про проверке состояние SMART через CrystalDiskInfo).
Если нужно проверять только статус програмного RAID, можно использовать обычный diskpart.
"list volume" | diskpart
(если RAID неисправен это будет в выводе, нужно только обработать его в PowerShell)Ну, или так:
Get-PhysicalDisk | Sort Size | FT FriendlyName, Size, MediaType, SpindleSpeed, HealthStatus, OperationalStatus -AutoSize
За такую статью, Вам медаль надо выписать, поклон в пояс.
И нюанс для пользователей, в PS этого лучше не делать — на моменте клонирования конфигурации загрузчика встаёт.
Добрый человек, подскажите пожалуйста: почему у меня при каждой перезагрузке происходит постоянно ресинхронизация программного RAID?
RAID 1, программный, 2 новых идентичных винчестера по 2 Тб. Windows 10 LTSC.
Смотрите логи системы при включении/выключении. Сложно скачать сразу откуда проблема. Диски HDD или SSD? Компьютер выключаете корректно или по питанию?
Вы пишите: Выведите текущую конфигурацию Windows Boot Manager (bcdedit /enum). Обратите внимание, что у загрузчика теперь два варианта загрузки EFI с разных дисков (default и resume object).
Подаскажите пожалуйста на картинке default = {current}, какому id на данной картинке соответствует {current}?
И почему в параметре displayorder id {44d1d6bd-xxxxxxxxxxx} отличается от id в параметре resume object {44d1d6b8-xxxxxxxxxxx}?
По логике в пареметре displayorder должны отображаться ID default {current} и resume object {44d1d6bd-xxxxxxxxxxx}
Прошу обьяснить какой id в конечном итоге соответстувует загрузчику диска 0 и какой загрузчику диска 1?
{current} — этот полный id просто не отображается в выводе утилиты.
Извините за повторный вопрос но я пытаюсь разобраться в логике и в статье для меня есть определенные нестыковки, которые могут обернуться проблемой при востановлении RAID и замене диска.
прошу ответить на вопросы :
1. на картинке default = {current}, какому id (укажите конкретый ID)н на данной картинке соответствует {current}?
2. почему в параметре displayorder id {44d1d6bd-xxxxxxxxxxx} отличается от id в параметре resume object {44d1d6b8-xxxxxxxxxxx}? (по логике в пареметре displayorder должны отображаться ID default {current} и resume object {44d1d6bd-xxxxxxxxxxx})
3. какой id в конечном итоге соответстувует загрузчику диска 0 и какой загрузчику диска 1?
главное, после настройки не забыть отключить установку новых версий windows 10. иначе загрузчик затрётся, и вторичный плекс пропадёт из вариантов загрузки.
к сожалению, для автоматизации, ничего кроме fake raid не придумать (за бесплатно конечно).
Выполнил на Windows Server 2019 на двух одинаковых ссд.
Была небольшая заминка с различием общего объема накопителей, из-за чего зеркальный раздел не влезал: раздел С ссд 0 был на 2 МБ больше, чем у зеркала. Помогло сжатие раздела.
Попробовал загрузиться с каждого по отдельности — все чики пики! работает!
Но, после этого, при загрузке с двумя ссд, рейд развалился. Зеркало стало «чужим», а после импорта пришлось собирать зеркало заново (может оно так и должно быть).
Главное, что по отдельности все тоже загружается.
Благодарю за знания!
Огромное спасибо за статью, выполнил все по инструкции на WS2019.
Решил перед вводом сервера в эксплуатацию проверить «Горячую замену ведущего харда».
Вытащил ведущий диск с системой и отформатировал. Вставил обратно пустой ведущий и загрузился с ведомого. Теперь пытаюсь создать зеркало с бывшего зеркала и столкнулся с проблемой.
При выполнении
bcdedit /copy {bootmgr} /d «Windows Boot Manager Cloned»
выдается ошибка
Ошибка при установке ссылки указанной записи.
Не удается найти указанный файл.
Видимо где-то нужно указать, что текущая система более не является резервной, а дефолтной. Но в силу малого опыта не знаю как это сделать. Буду благодарен если поможете с решением данной проблемы.
Та же проблема. Получилось решить?
Проблему родтверждаю. Решения не нашёл.
Да меня тоже интересует возможно ли из старого ведомого диска сделать ведущий?
Иначе смысл городить весь этот раид.
Может вы записи даете имя которое уже есть в BCD ?
Аналогично.
Очень нужна статья в продолжение этой с возможностью подключения нового диска вместо disk 0 из RAID
Иначе, получается хорошее начало, но не применимо…
Статья обновлена по запросам аудитории 🙂
Описан сцернарий замены первого диска в RAID с обновления конфигуарции загрузчика.
можно целиком запустить клон всего диска со всеми разделами и не заниматься ерундой.
Программными средствами WinServer2019? Скажите как, у меня вот не получилось найти ничего полезней этой статьи. Если же вы имеете в виду аппаратный рейд то это давно пройдено и изучено, интересно можно ли поднять адекватное зеркало на железе без аппаратного рейдаxD
Подскажите, в чем может быть беда. Win 10 x64.
На этом этапе:
Select volume c
Add disk=1
Все диски уже преобразованы в динамические. В diskpart пишет ошибку:
Ошибка службы виртуальных дисков:
Сведения об областях диска повреждены.
DiskPart ссылается на устаревший объект.
Обновите объект с помощью команды RESCAN.
Если проблема сохраняется, следует выйти из программы DiskPart, а затем
перезапустить ее или перезагрузить компьютер.
Через управление дисками та же ошибка.
После последних обновлений 10-ки она не дает создавать зеркало на диске, где присутствуют EFI или MSR разделы.
https://forum.ixbt.com/topic.cgi?id=22:93735#0
Решение найдено.
Необходимо «сжать» системный том, а потом его «расширить» (достаточно 100мб). После этого все работает.
Замечательная статья, как раз то, что мне сейчас нужно.
PS C:\Windows\system32> bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned"
Указана недопустимая команда копирования.
Для получения справки введите в командной строке "bcdedit /?"
Параметр задан неверно.
Не могу побороть.
Запускайте команду не в консоли PowerShell, а в cmd.exe
Опечатка
Select disk 0
Convert dynamic
Select disk 1
Conv dyn
Спс, пофисил!
после копирования efi назначенные буквы дисков можно отключать ?
Все равно, это не повлият ни на что. назначенные буквы будут только в текущей сессии
Можно получить инструкцию с действующим разделом восстановления?
добрый день, помогите пожалуйста, пытаюсь на сервер 2019 сделать и никак не могу понять почему ошибка
C:\Windows\system32>bcdedit /copy {bootmgr} /d «Windows Boot Manager Cloned»
Запись успешно скопирована в {35965a37-4bf6-11ed-a0fd-cbea0e176792}.
C:\Windows\system32>bcdedit /set {35965a37-4bf6-11ed-a0fd-cbea0e176792} device partition=s:
Произошла ошибка при задании данных элемента.
Такой запрос не поддерживается.
Добавте что после операций с копированием efi остануться точуи подключения в проводнике,убрать можно выбрав соотсвествующий раздел командой » remove letter X «
Подскажите в какую сторону копать.
C:\Windows\system32>bcdedit /copy {bootmgr} /d «Windows Boot Manager Cloned»
Ошибка при выполнении указанной операции копирования.
Недостаточно системных ресурсов для завершения операции.
Примечание: запуск bcdedit с некоторыми параметрами в консоли PowerShell приводит к ошибкам, поэтому для работы с bcdedit следует запустить cmd.
C:\Windows\system32>bcdedit /enum
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-US
inherit {globalsettings}
bootshutdowndisabled Yes
default {current}
resumeobject {c438f427-b0f9-11ee-953c-a0edddc4c954}
displayorder {current}
{178949c6-b0d1-11ee-9e0d-c87f54518bb5}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows Server
locale en-US
inherit {bootloadersettings}
recoverysequence {c438f429-b0f9-11ee-953c-a0edddc4c954}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c438f427-b0f9-11ee-953c-a0edddc4c954}
nx OptOut
Windows Boot Loader
-------------------
identifier {178949c6-b0d1-11ee-9e0d-c87f54518bb5}
device partition=C:
path \Windows\system32\winload.efi
description Windows Server - secondary plex
locale en-US
inherit {bootloadersettings}
recoverysequence {c438f429-b0f9-11ee-953c-a0edddc4c954}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {c438f427-b0f9-11ee-953c-a0edddc4c954}
nx OptOut
Я проще сделал.
Установил Windows на первый диск. Удалил msr и диск восстановления.
Колнировал диск при помощи MiniTool Partition Wizard.
Затем сделал динамические диски и зеркалирование. Я не лазил в загрузчик. При этом при зеркалировании само прописалась. И не нужно копировать вручную загрузчик.
И да msr и диском восстановление не мог сделать динамический диск.
Привет, как удалить конфигурацию зеркала?
Спасибо! Всё получилось!
Дополню работающую схему
1. Установил Windows на первый диск.
2. Создал диск D
3. Удалил msr и диск восстановления.
4. Клонировал диск при помощи MiniTool Partition Wizard без измненения разделов
5. Удалил букву диска у загрузочного раздела на втором диске
6. Со вторго диска удалил диск C D, оставив только загрузочный диск 100мб.
7. Сделал динамичесие диски 1 2
8. Включил зеркалирование на диске C В
Подскажите, а из двух разных дисков (NVME и SATA) возможно сделать рабочую схему? Выполнил с ними все по инструкции — зеркало раздела С работает, а вот вторичный плекс — нет, пишет: inaccessible boot device. NVME у меня изначально стоял и слот только один, к тому же диск SSD SATA в наличии есть.
По началу все шло хорошо, дошел до пункта «Копирование конфигурации EFI и BCD на второй диск» и словил BSOD с ошибкой whea uncorrectable error. После перезапуска система загружается нормально, но через 10-15 минут стабильно вылетает эта же ошибка. Я просто не успеваю закончить настройку по инструкции. Грешил на проблемы с дисками, по этому собрал другой конфиг чтобы попробовать на нем. Но там все то же самое. Переставил винду, начал заново — то же самое. Отключил файл подкачки — не помогло.
Конфиги на которых пытался:
1) Gigabyte B450m-S2H + Ryzen 2400GE + 2* KINGSTON SA400 120gb + 2*8gb Corsair Vengance 3200
2) HUANANZHI X99-QD4 + Xeon 2620V4 + 2* ADATA SX6000 Lite 128gb + 4*8gb SAMSUNG ECC 2400
Общих комплектующих в выше названных сборок не было. Проверил на виртуальной машине через VmWare, проблема та же самая. В другой группе внятного ответа не получил, прошу помощи у вас.
Пробовал на Windows 10 22H2 и Windows Server 2019