Программный RAID пользуется заслуженной популярностью, позволяя легко создавать отказоустойчивые дисковые конфигурации в недорогих системах, отличаясь простотой создания и управления. Но с переходом современных систем на UEFI появились некоторые особенности, касающиеся процесса загрузки, которые следует понимать и принимать во внимание. В противном случае отказоустойчивость может оказаться мнимой и при отказе одного из дисков вы просто не сможете загрузить систему.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Данная инструкция может кому-то показаться сложной, действительно, для создания программного RAID на UEFI-системах требуется довольно много подготовительных действий. Также определенное количество операций придется выполнить и при замене отказавшего диска, но это тема для отдельной статьи. В связи с этим встает вопрос выбора между программным RAID и встроенным в материнскую плату, т.н. fake-raid.
Если брать вопрос производительности, то сегодня он абсолютно неактуален, тем более что вся обработка данных так или иначе осуществляется силами CPU. Основным аргументов в пользу встроенного RAID служит простота его использования, но за это приходится платить совместимостью. Собранные таким образом массивы будут совместимы только со своим семейством контроллеров. К счастью, сейчас уже нет того зоопарка, который был еще лет 10 назад, но все равно, собранный на базе платформы Intel массив вы не запустите на AMD-системе.
Также вы можете столкнуться с тем, что несмотря на то, что массив собрался, система не может загрузиться, так как не имеет в своем составе драйверов для новой версии контроллера, это может быть актуально для старых ОС на новых аппаратных платформах. Кроме того, все операции по замене дисков, расширению и ресинхронизации массива вам придется делать в оффлайн режиме, загрузить систему с массива в состоянии обслуживания вы не сможете.
Программные массивы лишены этих недостатков, все что им требуется — это поддержка со стороны ОС. Операции обслуживания также можно выполнять без прерывания работы системы, естественно принимая во внимание тот факт, что производительность дисковой системы в это время будет снижена. Но есть и обратная сторона медали, динамические диски Windows имеют ряд неприятных особенностей, например, ограниченные возможности по управлению дисковым пространством и обслуживанию. Штатные инструменты имеют только базовые функции, а из коммерческого софта работу с данным типом дисков обычно поддерживают только дорогие корпоративные версии.
Также есть другая особенность, вытекающая из архитектуры программных RAID массивов, если некритически отказал тот жесткий диск, с которого осуществляется загрузка, то система не будет автоматически загружена со второго, исправного HDD, вы получите ошибку (или BSOD) и вам потребуется вручную изменить порядок загрузки для восстановления работы системы.
Но несмотря на определенные недостатки и ограничения, программный RAID на основе динамических дисков пока остается единственной возможностью обеспечить отказоустойчивость системы, не прибегая к аппаратным средствам.
Конфигурация разделов Windows-систем с UEFI
Прежде всего рассмотрим стандартную конфигурацию разделов, автоматически создаваемую Windows с UEFI, приведенный ниже пример соответствует последним версиям Windows 10 и Windows Server 2016/2019, у более ранних версий Windows разметка может несущественно отличаться.
Windows RE — NTFS раздел со средой восстановления, в последних версиях Windows имеет размер в 500 МБ, при создании ему присваиваются специальные атрибуты, препятствующие назначению буквы диска и удалению раздела через консоль управления дисками. В тоже время данный раздел не является необходимым для работы системы, среда восстановления может находиться на системном диске и даже может отсутствовать. Вынос среды восстановления на отдельный раздел преследует две цели: возможность работы на зашифрованных системах и защита от некорректных действий пользователя.
EFI — раздел специального типа с файловой системой FAT32, который содержит загрузчик, вызываемый микропрограммой UEFI. Данный раздел должен находиться в основной таблице разделов и не может быть расположен на динамическом диске. В Windows он ошибочно называется зашифрованным, имеет критическое значение для нормальной работы системы. В современных Windows-системах имеет размер в 100 МБ.
MSR (Microsoft System Reserved) — служебный раздел с файловой системой NTFS, является обязательным для GPT-разметки, которая не позволяет использовать скрытые сектора диска, используется для служебных операций встроенного и стороннего ПО, например, при преобразовании диска в динамический. Является скрытым и не отображается в оснастке управление дисками. Его размер в современных системах — 16 МБ.
Windows — самый обычный раздел с системой, фактически под ним следует понимать любую пользовательскую разметку. Никаких особенностей он в себе не таит.
Производители ПК могут добавлять дополнительные разделы, например, с резервным образом системы для отката к заводским настройкам или собственными инструментами восстановления, чаще всего они имеют специальные GPT-атрибуты, как и у раздела Windows RE.
Подготовка к созданию программного RAID
Будем считать, что вы уже установили операционную систему на один из дисков, в нашем примере будет использоваться Windows Server 2019 установленный на виртуальной машине. Если мы откроем оснастку Управление дисками, то увидим примерно следующую картину:
Первым идет раздел Windows RE, размером в 499 МБ, а за ним раздел EFI, который ошибочно именуется шифрованным. Но как мы говорили выше, данная оснастка не дает полного представления о структуре разметки, поэтому запустим утилиту командной строки diskpart и получим список разделов:
diskpart
sel disk 0
list par
Первая команда запускает утилиту, вторая выбирает первый диск (диск 0) и третья выводит список разделов.
Здесь присутствуют все существующие на диске разделы, включая MSR, размером в 16 МБ. Теперь нам нужно воспроизвести аналогичную разметку на втором жестком диске. Будем считать, что вы еще не вышли из утилиты diskpart, поэтому выберем второй жесткий диск (диск 1) и очистим его:
sel disk 1
clean
Внимание! Данная команда полностью удалит все данные с указанного диска. Убедитесь, что вы выбрали нужный диск и что он не содержит никаких данных!
Преобразуем диск в GPT:
convert gpt
При преобразовании на диске будет автоматически создан MSR раздел, нам он пока не нужен, поэтому удалим его командой:
sel par 1
delete part override
После чего убедимся, что диск не содержит разделов.
Теперь можно создавать разметку. Разделы должны идти в том же порядке и с тем же типом, что и на первом диске. Поэтому первым создадим раздел восстановления, он не является обязательным и не влияет на работу системы. В принципе его можно даже не форматировать, но во избежание каких-либо недоразумений в дальнейшем мы рекомендуем создать раздел с теми же атрибутами, что и оригинальный раздел восстановления.
На всякий случай явно выберем диск и создадим на нем раздел размером в 499 МБ, который отформатируем в NTFS:
sel disk 1
create partition primary size=499
format quick fs=ntfs
Затем зададим ему нужные GPT-атрибуты:
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
Идентификатор de94bba4-06d1-4d40-a16a-bfd50179d6ac задает тип раздела как Windows RE, а атрибут 0x8000000000000001 препятствует назначению буквы диска и помечает раздел как обязательный для работы системы, во избежание его удаления из оснастки управления дисками.
Следующим шагом создадим раздел EFI:
create partition efi size=99
format quick fs=fat32
И раздел MSR:
create partition msr size=16
Если все сделано правильно, то вы должны получить следующую схему разметки, которая будет полностью повторять (за исключением системного раздела) разметку первого диска.
После чего систему обязательно следует перезагрузить.
Создание программного RAID
Прежде всего преобразуем диски в динамические, это можно сделать в оснастке Управление дисками:
или утилитой diskpart:
sel disk 0
convert dynamic
sel disk 1
convert dynamic
Затем добавим зеркало к системному диску через графический интерфейс
или с помощью diskpart:
sel vol c
add disk 1
После чего следует обязательно дождаться ресинхронизации данных, в зависимости от скорости и объема дисков это может занять некоторое время.
Теперь при загрузке появится меню с выбором раздела, загрузиться можно с обоих, но не будем забывать, что загрузчик по-прежнему присутствует только на первом диске и при смене порядка загрузки в BIOS загрузиться со второго диска не удастся.
Настройка загрузчика EFI и его копирование на второй раздел
Снова запустим утилиту diskpart и присвоим буквы EFI разделам на дисках, но перед этим уточним расположение нужного нам раздела:
sel disk 0
list par
Как видим интересующий нас раздел имеет номер 2, выберем его и присвоим букву:
sel par 2
assign letter=P
Повторим аналогичные манипуляции со вторым диском:
sel disk 1
sel par 2
assign letter=S
Выйдем из утилиты diskpart (команда exit) и перейдем в EFI раздел первого диска:
P:
cd EFI\Microsoft\Boot
Для просмотра текущих точек загрузки выполните:
bcdedit /enum
Вывод команды покажет нам единственную запись диспетчера загрузки (на текущем EFI-разделе) и две записи загрузчика Windows, на каждом из зеркальных томов. Нам потребуется создать второй экземпляр диспетчера загрузки:
bcdedit /copy {bootmgr} /d "Windows Boot Manager 2"
Из вывода данной команды нам потребуется идентификатор, скопируем его для использования в следующей команде.
bcdedit /set {bb040826-aa5e-lle9-8e9e-8efd93e43841} device partition=s:
В фигурных скобках должен быть указан идентификатор, полученный на предыдущем шаге.
После чего экспортируем BCD-хранилище загрузчика:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
И скопируем содержимое EFI-раздела на второй диск:
robocopy P:\ S:\ /E /R:0
Ошибка при копировании активного экземпляра BCD-хранилища — это нормально, собственно поэтому мы и сделали его экспорт, вместо того, чтобы просто скопировать. Затем переименуем копию хранилища на втором диске:
rename S:\EFI\Microsoft\Boot\BCD2 BCD
и удалим ее с первого:
del P:\EFI\Microsoft\Boot\BCD2
Осталось удалить буквы дисков EFI-разделов, для этого снова запустим diskpart:
sel vol p
remove
sel vol s
remove
Теперь можно перезагрузить систему и в загрузочном меню BIOS выбрать Windows Boot Manager 2, затем Windows Server — вторичный плекс — это обеспечит использование EFI-загрузчика и системного раздела второго диска. Если вы все сделали правильно — загрузка будет удачной. Таким образом у нас будет полноценное зеркало системного раздела на динамических дисках в UEFI-системе.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
В Windows доступны встроенные средства для создания программных RAID массивов из нескольких физических дисков. Сначала рассмотрим простую конфигурацию, когда нужно создать зеркало из двух физических дисков с данными. Затем рассмотрим, как построить RAID1 конфигурацию для загрузочного (системного) диска, на котором находится загрузчик и системные файлы Windows. Такая конфигурация позволит обеспечить загрузку Windows и защитить данные от выхода из строя любого диска.
Содержание:
- Создать зеркало из двух дисков с данными в Windows
- Настраиваем программный RAID1 для загрузочного диска Windows
- Замена диска в программном RAID1 в 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
Идентфикатор
de94bba4-06d1-4d40-a16a-bfd50179d6ac
задает тип раздела как Windows RE, а атрибут
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
Либо выберите в консоли Disk Management системный раздел и нажмите Add mirror (это аналогичная операция).
Откройте консоль управления дисками, и убедитесь, что синхронизация раздела 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
Номера разделов можно перепроверить, выполнив команду list part.
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
При модификации BCD после замены диска будьте особенно внимательны и не снесите конфигурацию ESP, случайно удалив не ту запись в bootmgr.
Т.к. мы заменили первый (
!!!
) диск, нужно удалить запись {default}:
bcdedit /delete {default}
Следующая команда обновит конфигурацию bootmgr:
bcdedit /set {bootmgr} device partition=p:
Затем скопируйте раздел EFI на новый диск как описано выше. В результате, в загрузчик будет добавлена еще одна запись plex (их можно переименовать через
bcdedit
).
Такая конфигурация с программным RAID в Windows для UEFI компьютера обеспечивает защиту данных от выхода из строя любого из дисков. При этом при замене диска придется потратить немного времени на ручное обновление конфигурации таблицы разделов и загрузчика.
Здравствуйте! Вопрос, как для ReFS создать зеркальный том RAID 1 на Windows Server 2019?
Ниже читать не обязательно если вопрос понятен.
Раньше пользовался для своих задач зеркалированием на динамических дисках в ms windows, теперь пользуюсь ZFS на proxmox, конечно по функционалу это очень разные вещи, но для меня одно из критических преимуществ в том, что при сбое питания zfs не синхронизирует тут же все диски как это происходит в случае зеркалирования на динамических дисках.
Не так давно узнал о ReFS, сегодня попытался установить на тестовую машину ms server 2019, выяснилось, что ReFS не поддерживает загрузку, сделал системный раздел с зеркалированием на динамических дисках c NTFS, размером 50Гб что бы быстрее синхронизировались данные. Создал второй раздел, отформатировал в ReFS и не понял как добавить ему зеркальный том. Читал мануал от MS, очень много информации, для казалось бы простой задачи. Пришел к выводу, что ReFS используется только для виртуальных машин, но все же надеюсь, что кто-нибудь здесь подскажет можно ли так сделать и в каком направлении двигаться.
Что делать, если нужно поставить ОС на зеркало, но чипсетного программного RAID нет, а установить дополнительный дополнительный контроллер не позволяет бюджет? В данной статье мы рассмотрим процедуру организации загрузки Windows Server 2019 с программного зеркала, а так же особенности восстановления.
Стоит заранее оговориться, что такая конфигурация хоть и позволяет немного сэкономить на контроллере, повысив отказоустойчивость в сравнении с установкой ОС на одиночный накопитель, но в итоге из-за человеческого фактора может привести к снижению отказоустойчивости из-за роста вероятности допустить ошибку.
В Windows есть два механизма создания программных массивов — на основе динамических дисков и на основе Storage Spaces. При этом только первый из них позволяет зеркалировать раздел с системой. Краткое описание процедуры при загрузке через UEFI:
- Установить ОС на одиночный диск.
- Создать на втором диске идентичные разделы.
- Преобразовать оба диска в динамические.
- Зазеркалировать системный раздел первого диска на второй диск.
- Обеспечить возможность загрузки с любого из дисков — настроить дополнительный пункт в загрузочном меню и скопировать конфигурацию бутменеджера, т. е. по сути скопировать содержимое EFI-раздела с первого диска на второй.
Устанавливать будем Windows Server 2019 Standard с GUI, так как всё описанное ниже подходит и для Windows 10.
На пустом диске инсталлятор автоматически создаст дополнительный раздел восстановления размером 500 МБ в начале диска. Нам он не нужен, поэтому после запуска инсталлятора запускаем консоль через Shift-F10, запускаем diskpart, создаём три раздела:
- EFI 260 МиБ
- MSR 16 МиБ
- системный раздел — в данном случае, для примера, на всё оставшееся пространство
После установки увидим в disk manager’е следующую картину:
Запускаем diskpart (примечание: diskpart понимает сокращённые названия команд) и смотрим таблицу разделов на диске 0:
DISKPART> sel dis 0 Disk 0 is now the selected disk. DISKPART> lis par Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 260 MB 1024 KB Partition 2 Reserved 16 MB 261 MB Partition 3 Primary 99 GB 277 MB
Выберем диск 1 и инициализируем его (создадим таблицу разделов GPT). При этом будет автоматически создан раздел MSR размером 15 МиБ, который мы удалим, используя дополнительный параметр override:
DISKPART> con gpt DiskPart successfully converted the selected disk to GPT format. DISKPART> lis par Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 Reserved 15 MB 17 KB DISKPART> sel par 1 Partition 1 is now the selected partition. DISKPART> delete par override DiskPart successfully deleted the selected partition.
Создаём те же разделы, что и на диске 0:
DISKPART> crea par efi size=260 DiskPart succeeded in creating the specified partition. DISKPART> crea par msr size=16 DiskPart succeeded in creating the specified partition. не создавать!: DISKPART> crea par pri DiskPart succeeded in creating the specified partition. DISKPART> lis par Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 260 MB 1024 KB Partition 2 Reserved 16 MB 261 MB * Partition 3 Primary 99 GB 277 MB
Преобразуем оба диска в динамические:
DISKPART> sel dis 0 Disk 0 is now the selected disk. DISKPART> con dyn DiskPart successfully converted the selected disk to dynamic format. DISKPART> sel dis 1 Disk 1 is now the selected disk. DISKPART> con dyn DiskPart successfully converted the selected disk to dynamic format.
Зеркалируем системный раздел. В данном случае он смонтирован на C:
DISKPART> sel vol C Volume 3 is the selected volume. DISKPART> add disk=1 DiskPart succeeded in adding a mirror to the volume.
Начнётся процесс синхронизации зеркала:
Перейдём к дублированию загрузчика. Загрузчик сейчас находится на разделе EFI на диска 0. Аналогичный раздел на диске 1 пуст. Отформатируем его в FAT, назначим букву S (secondary), а разделу EFI на диске 0 — букву P (primary):
DISKPART> sel dis 1 Disk 1 is now the selected disk. DISKPART> lis dis Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 100 GB 0 B * * * Disk 1 Online 100 GB 0 B * * DISKPART> lis par Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 260 MB 1024 KB Partition 4 Dynamic Reserved 1024 KB 261 MB Partition 2 Reserved 15 MB 262 MB Partition 3 Dynamic Data 99 GB 277 MB Partition 5 Dynamic Data 1007 KB 99 GB DISKPART> sel par 1 Partition 1 is now the selected partition. DISKPART> assign letter = S DiskPart successfully assigned the drive letter or mount point. DISKPART> format fs=FAT32 quick 100 percent completed DiskPart successfully formatted the volume. DISKPART> sel dis 0 Disk 0 is now the selected disk. DISKPART> lis par Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 260 MB 1024 KB Partition 4 Dynamic Reserved 1024 KB 261 MB Partition 2 Reserved 15 MB 262 MB Partition 3 Dynamic Data 99 GB 277 MB Partition 5 Dynamic Data 1007 KB 99 GB DISKPART> sel par 1 Partition 1 is now the selected partition. DISKPART> assign letter=P DiskPart successfully assigned the drive letter or mount point.
Посмотрим на конфигурацию загрузчика. Примечание: запуск bcdedit с некоторыми параметрами в консоли PowerShell приводит к ошибкам, поэтому для работы с bcdedit следует запустить cmd.
bcdedit /enum Windows Boot Manager -------------------- identifier {bootmgr} device partition=P: path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit {globalsettings} bootshutdowndisabled Yes default {current} resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} displayorder {current} {4e02bc92-f967-11eb-bb60-dc5f81ee32a9} 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 {4e02bc8f-f967-11eb-bb60-dc5f81ee32a9} displaymessageoverride Recovery recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} nx OptOut Windows Boot Loader ------------------- identifier {4e02bc92-f967-11eb-bb60-dc5f81ee32a9} device partition=C: path \Windows\system32\winload.efi description Windows Server - secondary plex locale en-US inherit {bootloadersettings} recoverysequence {4e02bc8f-f967-11eb-bb60-dc5f81ee32a9} displaymessageoverride Recovery recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} nx OptOut
Когда мы зеркалировали системный раздел, то ОС автоматически добавила дополнительный пункт загрузки Windows Server — secondary plex. Теперь осталось скопировать всю конфигурацию загрузчика на раздел EFI диска 1. Для этого сначала создадим дубль конфигурации, получим его GUID, который затем используем, чтобы изменить букву раздела с P на S:
bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned" The entry was successfully copied to {4e02bc94-f967-11eb-bb60-dc5f81ee32a9}. bcdedit /set {4e02bc94-f967-11eb-bb60-dc5f81ee32a9} device partition=s:
Теперь экспортируем конфигурацию в BCD2, скопируем всё содержимое EFI-раздела на диске 0 (раздел P) на диск 1 (раздел S). Потом переименуем его на разделе S из BCD2 в BCD:
P: bcdedit /export P:\EFI\Microsoft\Boot\BCD2 robocopy p:\ s:\ /e /r:0 Rename s:\EFI\Microsoft\Boot\BCD2 BCD Del P:\EFI\Microsoft\Boot\BCD2
Перезагрузимся и заглянем в BIOS:
Помимо основного пункта (Windows Boot Manager), созданного при установке ОС, у нас теперь появился пункт Windows Boot Manager Cloned для загрузки со второго диска.
Временное отключение одного из дисков
Проверим конфигурацию в действии, отключив диск 0. Пункт Windows Boot Manager ничего не загрузит, воспользуемся Windows Boot Manager Cloned (или запустим boot manager через EFI Shell). Boot manager отобразит те же два пункта с загрузчиками. Первый запустить не получится, используем второй — Windows Server — secondary plex.
ОС загружается. Диск 1 теперь стал диском 0, система сообщает о потере отказоустойчивости на зеркальном томе сообщает и о потере соответствующего диска.
Допустим, что диск исправен, его просто случайно отключили, а потом вставили обратно. Тут нас подстерегает первая опасность — нужно помнить про то, что состояние системы при загрузке с этого диска будет неактуальным и выбрать пункт «Windows Server — secondary plex». После загрузки ОС мы увидим, что зеркало развалилось:
Для восстановления отказоустойчивости нужно удалить неиспользуемый раздел (в данном случае том E) и заново сделать зеркало тома C:
sel vol C add disk=0
Замена диска на новый
Другой, более вероятный сценарий — первый диск вышел из строя, и мы заменили его на новый. В этом случае нужно повторить процедуру, выполненную после установки системы. Добавляется два нюанса:
Желательно иметь под рукой размеры разделов до преобразования дисков в динамические, чтобы не пришлось вычислять заново правильный размер раздела MSR.
Придётся править загрузчик, удалив исправив пункт, ссылающийся на уже недоступный раздел. В данном примере это {default}, так как мы заменили первый диск:
bcdedit /enum Windows Boot Manager -------------------- identifier {bootmgr} device unknown path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit {globalsettings} bootshutdowndisabled Yes default {default} resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} displayorder {default} {current} {3df44507-f920-11eb-9dd3-080027bb0bb1} toolsdisplayorder {memdiag} timeout 30 Windows Boot Loader ------------------- identifier {default} device unknown path \Windows\system32\winload.efi description Windows Server locale en-US inherit {bootloadersettings} recoverysequence {4e02bc8f-f967-11eb-bb60-dc5f81ee32a9} displaymessageoverride Recovery recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice unknown systemroot \Windows resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} nx OptOut Windows Boot Loader ------------------- identifier {current} device partition=C: path \Windows\system32\winload.efi description Windows Server - secondary plex locale en-US inherit {bootloadersettings} recoverysequence {4e02bc8f-f967-11eb-bb60-dc5f81ee32a9} displaymessageoverride Recovery recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} nx OptOut Windows Boot Loader ------------------- identifier {3df44507-f920-11eb-9dd3-080027bb0bb1} device partition=C: path \Windows\system32\winload.efi description Windows Server - secondary plex - secondary plex locale en-US inherit {bootloadersettings} recoverysequence {4e02bc8f-f967-11eb-bb60-dc5f81ee32a9} displaymessageoverride Recovery recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {4e02bc8d-f967-11eb-bb60-dc5f81ee32a9} nx OptOut The system cannot find the file specified. ********** bcdedit /delete {default} bcdedit /set {bootmgr} device partition=p:
Затем можно продолжить процедуру — скопировать раздел EFI.
Заключение
Механизм загрузки Windows с программного зеркала достаточно хорошо отработан. Практически он не менялся со времён выхода Windows Server 2008. Как видите, поддержание работоспособности требует большего количества действий и понимания работы загрузчика — на любом этапе можно ошибиться и потерять если не данные, то ценное время.
Следующая статья будет посвящена установке и настройке Linux на программном RAID-1.

How To Create Software Raid In Windows Server 2019 While enterprise systems use hardware RAID with a dedicated RAID controller for better performance and more reliability, the average consumer can make use of software RAID on Windows to boost
How To Create Software Raid In Windows Server 2019 2016 2012 Or 2008

Software Raid Windows 2019 Wershoft
Creating Software Raid Inside Windows Server Os

Creating Software Raid Inside Windows Server Os

Create Software Raid On Windows Ri Xu Online