Программный 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.
Программный RAID заслуженно пользуется популярностью благодаря простоте настройки и управления. Он позволяет создавать отказоустойчивые дисковые конфигурации без дополнительного оборудования. Однако с переходом современных систем на UEFI процесс создания программного RAID приобрел свои особенности, которые важно учитывать, чтобы избежать проблем с загрузкой системы при отказе одного из дисков.
В этой статье мы рассмотрим, как создать программный RAID на основе динамических дисков в системах с UEFI, а также подготовку дисков и настройку загрузчика.
Приобрести оригинальные ключи активации Windows всегда можно у нас в каталоге от 1099 ₽
Конфигурация разделов Windows с UEFI
Современные версии Windows (10, 11, Windows Server 2016/2019) автоматически создают стандартную конфигурацию разделов на GPT-дисках:
1) Windows RE: Раздел для восстановления системы (NTFS), размер 500 МБ.
2) EFI: Системный загрузочный раздел (FAT32), размер 100 МБ.
3) MSR (Microsoft System Reserved): Служебный раздел, размер 16 МБ.
4) Windows: Основной системный раздел, на котором установлена ОС.
Шаг 1: Подготовка к созданию программного RAID
1) Установите Windows на один из дисков.
После установки зайдите в «Управление дисками». Здесь первым идет раздел Windows RE, размером в 499 МБ, а за ним раздел EFI, который ошибочно именуется шифрованным. Но как мы говорили выше, данная оснастка не дает полного представления о структуре разметки.
2) Поэтому запустите Командную строку с правами администратора и выполните команды:
diskpart
sel disk 0
list par
Это покажет структуру разделов на первом диске.
3) Подготовьте второй диск для зеркалирования:
sel disk 1
clean
Внимание! Команда clean удалит все данные на выбранном диске.
4) Преобразуйте второй диск в GPT:
convert gpt
При преобразовании на диске будет автоматически создан MSR раздел, нам он пока не нужен, поэтому удалим его командой:
sel par 1
delete part override
После чего убедимся, что диск не содержит разделов.
5) Создайте разделы на втором диске, аналогичные первому:
— Для раздела восстановления:
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
Если все сделано правильно, то вы должны получить следующую схему разметки, которая будет полностью повторять (за исключением системного раздела) разметку первого диска.
После чего перезагрузите систему.
Шаг 2: Создание программного RAID
Прежде всего преобразуем диски в динамические, это можно сделать в оснастке Управление дисками.
Или через diskpart:
1) Преобразуйте оба диска в динамические:
sel disk 0
convert dynamic
sel disk 1
convert dynamic
2) Создайте зеркальный массив (RAID 1) для системного раздела:
sel vol c
add disk 1
Так же это можно сделать через «управление дисками»
3) Дождитесь завершения ресинхронизации данных. Это может занять некоторое время в зависимости от объема и скорости дисков.
Теперь при загрузке появится меню с выбором раздела, загрузиться можно с обоих, но не будем забывать, что загрузчик по-прежнему присутствует только на первом диске и при смене порядка загрузки в BIOS загрузиться со второго диска не удастся.
Шаг 3: Настройка загрузчика EFI и его копирование на второй раздел
Для полноценной работы программного RAID в среде UEFI необходимо настроить загрузчик EFI на обоих дисках. Это обеспечит возможность загрузки системы в случае отказа одного из дисков
—
Шаг 1: Присвоение букв EFI разделам
1) Запустите diskpart через командную строку или PowerShell от имени администратора.
2) Уточните расположение нужного раздела на первом диске:
sel disk 0
list par
Найдите раздел EFI (обычно это раздел с номером 2).
3) Выберите раздел и присвойте ему букву:
sel par 2
assign letter=P
4) Повторите действия для второго диска:
sel disk 1
sel par 2
assign letter=S
Создание второго экземпляра загрузчика
1) Перейдите в раздел EFI первого диска:
P:
cd EFI\Microsoft\Boot
2) Просмотрите текущие точки загрузки:
bcdedit /enum
Вы увидите единственную запись диспетчера загрузки и две записи загрузчика Windows.
3) Создайте второй экземпляр загрузчика:
bcdedit /copy {bootmgr} /d "Windows Boot Manager 2"
Скопируйте идентификатор, выданный в результате выполнения команды.
4) Привяжите новый загрузчик к EFI-разделу второго диска:
bcdedit /set {ID} device partition=s:
Вставьте идентификатор вместо {ID}, полученный ранее.
5) Экспортируйте BCD-хранилище загрузчика:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
Копирование загрузчика
1) Скопируйте содержимое EFI-раздела первого диска на второй:
robocopy P:\ S:\ /E /R:0
Примечание: Ошибка при копировании активного экземпляра BCD-хранилища является нормальной.
2) Переименуйте копию BCD на втором диске:
rename S:\EFI\Microsoft\Boot\BCD2 BCD
3) Удалите временную копию с первого диска:
del P:\EFI\Microsoft\Boot\BCD2
Удаление букв дисков
1) Запустите diskpart и выполните команды:
sel vol P
remove
2) Повторите действия для второго диска:
sel vol S
remove
Тестирование загрузки
Перезагрузите систему и в BIOS выберите Windows Boot Manager 2. Затем выберите загрузку с вторичного диска. Если все настройки выполнены правильно, система загрузится успешно.
Теперь ваша система готова работать с программным RAID в среде UEFI. При правильной настройке вы обеспечите отказоустойчивость данных и сможете загружаться с любого диска. Однако помните, что для поддержки RAID требуется регулярное обслуживание и контроль за состоянием массива.
В 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 компьютера обеспечивает защиту данных от выхода из строя любого из дисков. При этом при замене диска придется потратить немного времени на ручное обновление конфигурации таблицы разделов и загрузчика.
Перейти к содержимому
Вступление
В следующем руководстве описывается, как вручную настроить зеркалирование дисков (RAID1) в операционной системе Windows.
Поскольку на серверах, которые были установлены с помощью нашей автоматической установки Windows (доступной через робота ) или заказанных с помощью надстройки Windows, уже настроен и запущен уровень RAID 1, это руководство предназначено для пользовательских установок Windows.
Подготовка
- Сначала щелкните значок
Windows symbol
в нижнем левом углу или нажмите клавишуWindows
илиSuper
. - Введите
diskmgmt.msc
и нажмитеEnter
клавишу, чтобы открыть Утилиту управления дисками.Ниже приведен краткий обзор утилиты:
-
- A: Основной диск, содержащий операционную систему
- B: Второй диск, предназначенный для использования для зеркалирования RAID1
- C: Тома (означают разделы под Windows) на основном диске
- D: Незанятое пространство на втором диске
- Если на вашем втором диске уже есть тома, щелкните их правой кнопкой мыши и выберите
Delete Volume
все из них. - Щелкните правой кнопкой мыши диск, который в настоящее время содержит операционную систему, и щелкните
Convert to dynamic disk
. - В появившемся диалоге уже должен быть выбран главный диск. Пожалуйста, выберите также другой диск, который вы хотите использовать для RAID1, нажмите
Ok
и подтвердите. - Теперь вам нужно определить, была ли ваша система установлена в устаревшем режиме или в режиме UEFI. Поэтому щелкните значок
Windows symbol
в нижнем левом углу или нажмите клавишуWindows
илиSuper
. - Введите
msinfo32.exe
и нажмитеEnter
клавишу, чтобы открыть окно информации о системе. - На правой панели вы должны увидеть
BIOS MODE
запись, в которой в качестве значения указан режим рассмотрения (Legacy
илиUEFI
). Если указанная запись отсутствует, система установлена вLegacy
режиме. Затем перейдите к разделу, касающемуся данной статьи.
Наследие
Если ваша система работает в устаревшем режиме, следующие шаги должны быть выполнены на всех томах основного диска слева направо:
- Щелкните правой кнопкой мыши соответствующий объем и выберите
Add mirroring
из контекстного меню. - В появившемся меню выберите предпочтительный второй диск для RAID1 и подтвердите, нажав на
Add mirroring
.
Убедитесь, что все тома были добавлены к зеркалированию и синхронизация запущена, на что указывают тома красного цвета и информация об их состоянии.
UEFI
Каждая система UEFI имеет так называемый системный том UEFI. Этот раздел не может быть автоматически зеркалирован Windows, и его необходимо вручную скопировать и настроить на втором диске. Как и в случае с Legacy, добавляйте зеркальное отображение для томов один за другим слева направо.
- Для всех томов, которые не имеют
EFI
метки, выполните эти шаги:- Щелкните правой кнопкой мыши соответствующий объем и выберите
Add mirroring
из контекстного меню. - В появившемся меню выберите предпочтительный второй диск для RAID1 и подтвердите это, нажав
Add mirroring
.
- Щелкните правой кнопкой мыши соответствующий объем и выберите
- Для системного тома UEFI выполните следующие действия:
- Создайте системный том UEFI того же размера на втором диске и отформатируйте его с помощью FAT32 . Поэтому просто щелкните правой кнопкой мыши незанятое пространство второго диска, выберите
New Simple Volume
и следуйте диалогу. - Скопируйте данные системного тома UEFI с первого диска на второй. Поэтому рекомендуем загрузить сервер в Rescue System и подключиться к нему по SSH:
- Найдите соответствующие разделы:
parted -l
Эта команда выведет список разделов всех дисков. Найдите там два раздела UEFI на обоих дисках, которые вы можете определить по их размеру и файловой системе ( FAT32 ), и объедините идентификаторы дисков (/dev/sdX
) с соответствующими номерами разделов.Пример:parted -l Model: WD Enterprise P20691 Disk /dev/sda: 2000GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 101MB 100MB primary fat32 2 102MB 2000GB 1999GB primary ntfs Model: WD Enterprise P20691 Disk /dev/sda: 2000GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 101MB 100MB primary fat32 2 102MB 2000GB 1999GB primary ntfs
В данном случае это разделы/dev/sda1
и/dev/sdb1
. - Создайте папки точек монтирования:
mkdir /mnt/main mkdir /mnt/second
- Установите соответствующие разделы системы UEFI (замените разделы на свои):
mount -t vfat /dev/sda1 /mnt/main -o rw,umask=0000 mount -t vfat /dev/sdb1 /mnt/second -o rw,umask=0000
- Затем скопируйте все файлы из текущего системного раздела UEFI в новый:
cp -ar /mnt/main/ /mnt/second/
- После завершения загрузите сервер обратно в установленную систему:
reboot
- Найдите соответствующие разделы:
- После повторного открытия Утилиты управления дисками (см. Раздел «Подготовка» данного руководства) вы также можете добавить системный том UEFI к зеркалированию, щелкнув его правой кнопкой мыши и выбрав
Add mirroring
из контекстного меню. - В появившемся меню выберите предпочтительный второй диск для RAID1 и подтвердите, нажав на
Add mirroring
.
- Создайте системный том UEFI того же размера на втором диске и отформатируйте его с помощью FAT32 . Поэтому просто щелкните правой кнопкой мыши незанятое пространство второго диска, выберите
Убедитесь, что все тома были добавлены к зеркалированию и синхронизация запущена, на что указывают тома красного цвета и информация об их состоянии.
Если у вас возникнут проблемы с определенными томами или второй Plex (означает, что часть зеркального тома Microsoft) не является загрузочным, см. Официальную документацию .
Настраиваем программный RAID на UEFI-системах в Windows
https://t.me/i_odminПрограммный RAID пользуется заслуженной популярностью, позволяя легко создавать отказоустойчивые дисковые конфигурации в недорогих системах, отличаясь простотой создания и управления. Но с переходом современных систем на UEFI появились некоторые особенности, касающиеся процесса загрузки, которые следует понимать и принимать во внимание. В противном случае отказоустойчивость может оказаться мнимой и при отказе одного из дисков вы просто не сможете загрузить систему.
Данная инструкция может кому-то показаться сложной, действительно, для создания программного 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 clear
Внимание! Данная команда полностью удалит все данные с указанного диска. Убедитесь, что вы выбрали нужный диск и что он не содержит никаких данных!
Преобразуем диск в 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-системе.
источник