Програмний RAID1 (дзеркало) для завантажувального GPT диска в Windows 10 / Server 2016

У цій статті ми розглянемо, як створити програмне дзеркало (RAID1) з двох GPT дисків в Windows Server 2016 / Windows 10, встановлених на UEFI системі. Ми розглянемо повноцінну конфігурацію BCD завантажувача, що дозволяє забезпечити коректне завантаження Windows і захистити дані від виходу з ладу будь-якого диска.

Отже, у нас є простий комп'ютер UEFI-архітектури без вбудованого RAID контролера з двома ідентичними дисками розмірами по 50 Гб. Наше завдання - встановити на перший GPT диск ОС (Windows Server 2016, Windows 10 або безкоштовного сервер Hyper-V), а потім зібрати з двох дисків програмне дзеркало (RAID1 - Mirroring).

У переважній більшості випадків при виборі між програмним або апаратним RAID варто вибирати останній. Зараз материнські плати з вбудованим фізичним RAID контролером доступні навіть для домашніх користувачів.

Запишіть інсталяційний образ Windows на DVD / USB флешку, завантажте комп'ютер) з цього завантажувального пристрою (в режимі UEFI, що не Legacy) і запустіть установку Windows Server 2016.

Після установки, відкрийте консолі управління дисками (diskmgmt.msc), переконайтеся, що на першому диску використовується таблиця розділів GPT (властивості диска -> вкладка Volumes -> Partition style -> GUID partition table), А другий диск порожній (неразмечен).

зміст:

  • Підготовка таблиці розділів для дзеркала на 2 диску
  • Перетворення дисків в динамічні, створення дзеркала
  • Підготовка EFI розділу на другому диску в дзеркалі
  • Копіювання конфігурації EFI і BCD на другий диск

Підготовка таблиці розділів для дзеркала на 2 диску

Відкрийте командний рядок з правами адміністратора і виконайте команду 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»

create partition efi size = 99

create partition msr size = 16

list part

Перетворення дисків в динамічні, створення дзеркала

Тепер обидва диска потрібно перетворити в динамічні:

Select disk 0

Convert dynamic

Select disk 1

Con 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 2016
  • Windows Server 2016 - secondary plex

Однак проблема в тому, що зараз у вас конфігурація завантажувача зберігається тільки на 1 диску, і при його втраті, ви не зможете завантажити ОС з другого без додаткових дій. По суті ви захистили дані (але не завантажувач Windows) тільки від збою другого диска.

Програмний RAID Windows не вийде використовувати для створення нормального дзеркала EFI розділу. Оскільки на EFI розділі зберігаються файли, необхідні для завантаження ОС, то при виході їх ладу першого диска, ви не зможете завантажити комп'ютер з другого диска без ручного відновлення завантажувача EFI на ньому в середовищі відновлення. Ці операції досить складно зробити непідготовленому адміністратора, а також вимагатиме додаткового часу (якого може не бути, якщо у вас за спиною стоїть натовп розгніваних користувачів).

Далі ми покажемо, як скопіювати EFI розділ на другий диск і змінити конфігурацію завантажувача BCD, щоб ви могли завантажити Windows як з першого, так і з другого диска.

Підготовка EFI розділу на другому диску в дзеркалі

Тепер потрібно підготувати EFI розділ на другому диску в дзеркалі, щоб комп'ютер міг використовувати цей розділ для завантаження 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 2016 - 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

Тепер при виході з ладу першого диска, вам потрібно при завантаженні комп'ютера вибрати пристрій «Windows Boot Manager Cloned», а потім «Microsoft Windows Server 2016 - secondary plex».

При завантаженні з несправним дисків, в диспетчері Disk Management ви побачите повідомлення Failed Redndancy.

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