Установка windows на программный raid

Profile picture for user Олег

Supermicro

Давно уже работаю с серверами Supermicro, но почему-то ещё ни разу не устанавливал Windows на RAID массив, собранный на встроенном программном RAID контроллере чипа Intel.

Intel PCH: контроллеры AHCI и SCU

Linux без проблем определяет программные массивы, собранные на контроллере SATA или sSATA. Windows Server в этом плане снова отличился. Казалось бы, серверная система, предназначена для установки на сервера…

Сегодня ставлю Windows Server 2016 на сервер Supermicro на базе материнской платы X11DDW-NT. Эта материнская плата оснащена набором микросхем Intel C622. Этот контроллер способен объединять диски SATA3 (6 Gbps) в массивы RAID 0,1,5,10. Сколько диском можно объединять в массив — это нужно читать мануал, я встречался с ситуацией, когда в RAID10 нельзя было объединить более 4 дисков, странно, но факт.

При установке Windows видит обычные диски, а RAID массив видеть не хочет.

win

В этом случае действуем по простой схеме. Переходим на страничку материнской платы:

https://www.supermicro.com/en/products/motherboard/x11ddw-nt

win

И скачиваем последние драйвера и утилиты: Download the Latest Drivers and Utilities.

win

Выбираем операционную систему и тип драйвера. Для RAID контроллера понадобятся драйвера для чипсета.

win

Сейчас нужен драйвер Intel SATA. Но можно все скачать, после установки пригодятся. Распаковываем архив и создаём ISO образ с драйверами. Поможет в этом UltraISO:

UltraISO — создать ISO образ с файлами

Демонтируем инсталляционный образ Windows Server 2016 с сервера и монтируем новый образ с драйверами. Нажимаем Load Driver.

win

Драйвер RAID контроллера нашёлся. Next. Драйвер установится.

win

Обнаружен новый дисковый массив, на него и будем устанавливать Windows. Демонтируем ISO образ с драйверами и снова монтируем инсталляционный ISO образ Windows Server 2016. Refresh.

Становится доступна кнопка Next.

win

Дальше продолжаем установку как обычно, главную проблему мы решили.

Установка Windows Server 2016 на сервер Supermicro с контроллером MegaRAID 9460-8i

Что делать, если нужно поставить ОС на зеркало, но чипсетного программного RAID нет, а установить дополнительный дополнительный контроллер не позволяет бюджет? В данной статье мы рассмотрим процедуру организации загрузки Windows Server 2019 с программного зеркала, а так же особенности восстановления.

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

В Windows есть два механизма создания программных массивов — на основе динамических дисков и на основе Storage Spaces. При этом только первый из них позволяет зеркалировать раздел с системой. Краткое описание процедуры при загрузке через UEFI:

  1. Установить ОС на одиночный диск.
  2. Создать на втором диске идентичные разделы.
  3. Преобразовать оба диска в динамические.
  4. Зазеркалировать системный раздел первого диска на второй диск.
  5. Обеспечить возможность загрузки с любого из дисков — настроить дополнительный пункт в загрузочном меню и скопировать конфигурацию бутменеджера, т. е. по сути скопировать содержимое 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.

softraid-uefi-windows-000.pngПрограммный RAID пользуется заслуженной популярностью, позволяя легко создавать отказоустойчивые дисковые конфигурации в недорогих системах, отличаясь простотой создания и управления. Но с переходом современных систем на UEFI появились некоторые особенности, касающиеся процесса загрузки, которые следует понимать и принимать во внимание. В противном случае отказоустойчивость может оказаться мнимой и при отказе одного из дисков вы просто не сможете загрузить систему.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Данная инструкция может кому-то показаться сложной, действительно, для создания программного 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 разметка может несущественно отличаться.

softraid-uefi-windows-001.pngWindows 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 установленный на виртуальной машине. Если мы откроем оснастку Управление дисками, то увидим примерно следующую картину:

softraid-uefi-windows-002.pngПервым идет раздел Windows RE, размером в 499 МБ, а за ним раздел EFI, который ошибочно именуется шифрованным. Но как мы говорили выше, данная оснастка не дает полного представления о структуре разметки, поэтому запустим утилиту командной строки diskpart и получим список разделов:

diskpart
sel disk 0
list par

Первая команда запускает утилиту, вторая выбирает первый диск (диск 0) и третья выводит список разделов.

softraid-uefi-windows-003.pngЗдесь присутствуют все существующие на диске разделы, включая MSR, размером в 16 МБ. Теперь нам нужно воспроизвести аналогичную разметку на втором жестком диске. Будем считать, что вы еще не вышли из утилиты diskpart, поэтому выберем второй жесткий диск (диск 1) и очистим его:

sel disk 1
clean

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

Преобразуем диск в GPT:

 convert gpt

При преобразовании на диске будет автоматически создан MSR раздел, нам он пока не нужен, поэтому удалим его командой:

sel par 1
delete part override

После чего убедимся, что диск не содержит разделов.

softraid-uefi-windows-004.pngТеперь можно создавать разметку. Разделы должны идти в том же порядке и с тем же типом, что и на первом диске. Поэтому первым создадим раздел восстановления, он не является обязательным и не влияет на работу системы. В принципе его можно даже не форматировать, но во избежание каких-либо недоразумений в дальнейшем мы рекомендуем создать раздел с теми же атрибутами, что и оригинальный раздел восстановления.

На всякий случай явно выберем диск и создадим на нем раздел размером в 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

Если все сделано правильно, то вы должны получить следующую схему разметки, которая будет полностью повторять (за исключением системного раздела) разметку первого диска.

softraid-uefi-windows-005.pngПосле чего систему обязательно следует перезагрузить.

Создание программного RAID

Прежде всего преобразуем диски в динамические, это можно сделать в оснастке Управление дисками:

softraid-uefi-windows-006.png

или утилитой diskpart:

sel disk 0
convert dynamic
sel disk 1
convert dynamic

Затем добавим зеркало к системному диску через графический интерфейс

softraid-uefi-windows-007.pngили с помощью diskpart:

sel vol c
add disk 1

После чего следует обязательно дождаться ресинхронизации данных, в зависимости от скорости и объема дисков это может занять некоторое время.

softraid-uefi-windows-008.pngТеперь при загрузке появится меню с выбором раздела, загрузиться можно с обоих, но не будем забывать, что загрузчик по-прежнему присутствует только на первом диске и при смене порядка загрузки в BIOS загрузиться со второго диска не удастся.

softraid-uefi-windows-009.pngНастройка загрузчика EFI и его копирование на второй раздел

Снова запустим утилиту diskpart и присвоим буквы EFI разделам на дисках, но перед этим уточним расположение нужного нам раздела:

sel disk 0
list par

softraid-uefi-windows-010.pngКак видим интересующий нас раздел имеет номер 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

softraid-uefi-windows-011.pngВывод команды покажет нам единственную запись диспетчера загрузки (на текущем EFI-разделе) и две записи загрузчика Windows, на каждом из зеркальных томов. Нам потребуется создать второй экземпляр диспетчера загрузки:

bcdedit /copy {bootmgr} /d "Windows Boot Manager 2"

Из вывода данной команды нам потребуется идентификатор, скопируем его для использования в следующей команде.

softraid-uefi-windows-012.png

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

softraid-uefi-windows-013.pngОшибка при копировании активного экземпляра 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-системе.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

I recently got a new laptop (Asus G73JH-A2) which has two identical hard drives in it. Unfortunately the motherboard does not have a RAID controller. What I would like to do is run the drives in a RAID-0 configuration to improve performance (plus get the extra capacity on one partition). I would like Windows installed onto the striped volume (RAID 0).

I have spent some time using diskpart to create a striped volume across the two drives, however when I go to install windows and select the volume it will not let me select ‘Next’ giving the error «Windows cannot be installed to this hard disk space. The partition contains one or more dynamic volumes that are not supported for installation.» I’m hoping theres a step that I am missing that will allow me to install windows on a striped volume. Any ideas?

asked Mar 20, 2010 at 18:31

Jay B's user avatar

After many hours, I am concluding that it is not possible. It seems that RAID-1 is possible, or at least the ‘Mirror’ feature of Disk Management, which can be applied after install, but RAID-0 striping is not possible on the OS disk.

answered Mar 22, 2010 at 4:50

Jay B's user avatar

Jay BJay B

911 gold badge1 silver badge4 bronze badges

HarryMC is almost completely mistaken. The article he cites is no longer available. I have found that RAID0 provides a substantial performance improvement in some situations. To protect against data loss, make sure you have a good backup system. Losing Windows does not necessarily entail losing both disks; just leave your data in its own separate Win7 RAID0 array and install Windows on a separate drive if necessary. I don’t know why the system disk would be in particular danger, especially if it’s the newest. If a Windows update is going to screw up your system, that would presumably not be unique to RAID0. In any case, that’s just a question of whether you keep a system image or other backup and can restore it to the target partition. Harry seems not to know that Win7 permits creation of multiple RAID0 arrays on the same drives, as well as single-drive partitions within a set of dynamic disks. And I’m not sure why his response refers to support for mirroring, when the question had to do with RAID0.

I agree with the second answer. I have spent hours at it myself. RAID0 on Win7 does not appear possible. If you do find a way to do it, but then have a problem with it, I am not sure how you will restore your Win7 installation. Your data will still be there in its own separate RAID0 arrays, or on single-disk partitions on the dynamic volumes, but to get it back you may have to install Win7 from scratch on a separate partition.

answered Jan 12, 2011 at 19:11

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

Created on .

Last commit e81697c5 on — 9 total changes.


Setup

Most Windows installers if not all modern versions have a command line option that can be accessed when using the GUI installer (from anywhere from what I can tell). This functionality can be accessed with SHIFT + F10 and looks like:

Commandline within Windows Installer.

From here we can access diskpart. From Microsoft’s Technet, «DiskPart is a text-mode command interpreter [that] enables you to manage objects (disks, partitions, or volumes) by using scripts or direct input at a command prompt.»

Think parted if you’re coming from Linux — but with a lot more functionality. You might have used it under the name «Disk Management», which is basically a GUI wrapper. We will need this program to preparing the Windows installer to install to a RAID 1 setup.

To use Diskpart, invoke it from the command line using:

X:\Sources> diskpart
DISKPART> 

You can list all the disks available as so:

X:\Sources> diskpart
DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 1    Online          127 GB    127 B        
  Disk 2    Online          127 GB    127 B        

In the above example we have two disks, we will put both of these into our RAID1. As can be seen above, diskpart is base 0.

Convert Each Disk to Dynamic

Any mirror setup requires disks to be in dynamic mode — this is basically LVM under Linux. Dynamic disks can be used for a multitude of purposes like disk spanning, mirroring, striping, etc. Although, be careful, there’s no going back from dynamic without formatting the disks completely.

Let’s clean each disk before converting them, this uninitialize the disks without a partition scheme. After this disk is empty we enable dynamic mode.

DISKPART> select disk 0
DISKPART> clean
DISKPART> convert dynamic

And do the same thing with the second disk.

DISKPART> select disk 1
DISKPART> clean
DISKPART> convert dynamic

list disk should look like this now:

Output of list disk with dynamic disks.

Prepare Mirrors

At this point we can create our RAID1 «partitions». I use «partitions» in quotes as they aren’t really partitions (as they mirror data) but the Windows installer must think of them as partitions. Little weird, but kind of makes sense.

Windows requires two partitions when in MBR mode (EFI requires 3, which I won’t go into). One which is normally called System Reserved and the main OS partition normally without a name (C:/). Both of these partitions need to be created manually as the normal Windows installer cannot.

DISKPART> select disk 0
DISKPART> create volume mirror disk=0,1 size=500
DISKPART> format quick fs=ntfs label="System Reserved"

These commands create a mirrored volume using disk 0 and 1 with a size of 500mb (default size under Windows 2016). Then it formats the newly created (and automatically selected) volume using ntfs as the filesystem and «System Reserved» as the volume label.

Then we can create the OS partition using similar commands:

DISKPART> select disk 0
DISKPART> create volume mirror disk=0,1
DISKPART> format quick fs=ntfs

Output after formatting.

Using list volume we should see the list of volumes that we created. Note that the volume numbers may be different.

Make the Mirrors Usable

In the above setup, each volume represents a single logical «partition», but in reality each of these volumes spans two physical drives. These volumes are great under Windows, but not so useful to the BIOS attempting to bootstrap a OS. To make it possible for the BIOS to start Windows we need to create real partitions for each of our mirror volumes.

First let’s use detail disk to make sure we target the correct volumes.

DISKPART> select disk 0
DISKPART> detail disk

In the picture, volume 0 is our System Recovery volume and volume 1 is our OS volume, different configurations may be different.

DISKPART> select disk 0
DISKPART> select volume 1
DISKPART> retain

This creates a real partition for volume 0 (System Recovery) on disk 0. Use list partition to find to again make sure to target the correct partition.

DISKPART> select disk 0
DISKPART> list partition

Our System Recovery partition is 500 MB, in this example, this partition is partition 1.

To mark the newly created, real partition to be the boot partition we can use the following:

DISKPART> select disk 0
DISKPART> select partition 2
DISKPART> active

We need to do the same thing on the other drive too, as so:

DISKPART> select disk 1
DISKPART> select volume 1
DISKPART> retain
DISKPART> select disk 1
DISKPART> select partition 2
DISKPART> active

We also need a partition for the OS drive (required by the installer). This can be done using the same commands:

DISKPART> select disk 0
DISKPART> select volume 0
DISKPART> retain
DISKPART> select disk 1
DISKPART> select volume 0
DISKPART> retain

Showing Windows installed with RAID1 enabled.

At this point you can install Windows as normal to one of the mirror partitions.

Postscript

Testing more with HyperV, I discovered that formating the mirrors using Windows setup was required to get a booting OS. I remember doing this before as the IPMI device I was using kept on crashing during installation — forcing me to restart the Windows installation.

Video of formatting drives after creation.

Considerations

  • This method actually allows you to keep the «System Recovery» partition in sync under a mirror. Microsoft’s official white paper on mirroring does provide support for this feature.
  • This method also allows you to create a mirror on two drives with different sector sizes — although I personally think disallowing two different sector sizes should be a bug.
  • You may need to make sure that you add the second drive as a boot device.

  • Установка windows на планшет dexp
  • Установка windows на данный диск невозможна программа установки не поддерживает конфигурацию дисков
  • Установка windows на данный диск невозможна выбранный диск имеет стиль разделов mbr разделов
  • Установка windows на ssd или hdd без загрузочной флешки или dvd диска
  • Установка windows на планшет asus