Я устанавливаю HTPC с 64-битной Ubuntu, используя UEFI и RAID с GPT-дисками.
Возможно ли, чтобы системный раздел EFI (тип раздела 0xEF00) был частью массива RAID1 с помощью mdadm
? Я надеюсь, что метаданные версии 1.0 (в конце диска) позволят это.
Кроме того, что также должно быть установлено «устройство для установки загрузчика», или это относится только к MBR-дискам?
После долгих экспериментов я думаю, что это ответ:
Системный раздел EFI (обычно смонтированный на /boot/efi/
) не содержит много файлов, если, например, GRUB хранится прямо там, а не /boot/grub/
. Содержимое обычно не меняется, поэтому нет необходимости в RAID-разделе. Наличие нескольких копий раздела на разных дисках также потребует установки загрузочных записей UEFI с помощью efibootmgr
; обычно GRUB инициализирует это на основе смонтированного раздела /boot/efi/
.
Таким образом, кажется, что это и не нужно, и нелегко сделать.
Мне удалось получить рабочую конфигурацию, которую Eig Gigabyte GA-C1037UN-EU смог загрузить. Эта конфигурация ограничена RAID1 для раздела ESP, но позволяет использовать любую конфигурацию RAID для остальных разделов. Давайте покажем RAID1 на двух дисках в качестве примера. Каждый диск разбивается следующим образом:
sda (gpt)
--sda1 (512MB)
mdadm array member with 1.0 metadata format
boot and esp flags set
--sda2 (rest of disk)
mdadm array member with 1.2 metadata format
Первый RAID-массив, созданный на разделах sdX1 на каждом диске и используемый для раздела ESP. Остальную емкость дисков можно использовать любым способом, например, в RAID1. Пусть первый RAID будет /dev/md/efi
, а второй /dev/md/data
. /dev/md/efi
не следует использовать метки разделения, такие как MBR или GPT. /dev/md/data
можно разделить позже или использовать как LVM pv. Например:
/dev/md/efi
--fat32 fs, mounting to /boot/efi/
/dev/md/data
--/dev/md/data1
linux swap partition
--/dev/md/data2
ext4 root partition
... (other needed partitions)
Метаданные вер. 1.0 имеет одну простую особенность: ее суперблок хранится в конце раздела RAID, поэтому BIOS может обнаружить простой раздел FAT32 с флагами ESP и BOOT. Так что ничто не мешает BIOS искать EFI / BOOT / BOOTX64.EFI на этом разделе и загружаться с него.
Основным ограничением этого метода является то, что GRUB должен быть настроен для установки загрузочного файла EFI в пути для съемных носителей, поскольку efibootmgr
пытается загрузить BIOS непосредственно с устройства md
, а не sdX
. Это можно сделать, используя grub-install
с флагом --removable
.
UPD. Есть проблемы с совместимостью. Пробовал ту же конфигурацию на материнской плате ASUS P8Z68-V PRO / GEN3. Система не загружается, независимо от того, что я делаю.
Я думаю, что короткий ответ таков: нет, системные разделы EFI (ESP) не могут быть RAID-ed. Однако вы все равно можете получить преимущества, подобные RAID, если клонируете ESP между вашими дисками RAID и добавляете оба раздела в цепочку загрузки EFI. Подробнее см. Как установить 64-битную Ubuntu 14.04 с разделом RAID 1 с двойной загрузкой в системе UEFI / GPT? .
Нет, это пока невозможно, большинство материнских плат с UEFI могут считывать ограниченное количество типов разделов для EFI (например, FAT32), и RAID не является одним из них.
Технически, да, ESP можно зеркально отразить, поместив суперблок RAID в конец (что происходит, если вы создаете суперблок формата Linux RAID-1 версии 1.0).
В такой конфигурации ESP с рейдом неотличим от ESP без рейда микропрограммой UEFI.
Однако этот режим не поддерживается Ubuntu, и ни один из инструментов Ubuntu не работает с такой настройкой. (В отличие, например, от Fedora.)
Тем не менее, наличие избыточных и синхронизированных ESP по-прежнему важно, даже если их содержимое не меняется часто. Обновления пакетов, которые записываются в ESP, действительно происходят, самое позднее при следующем dist-upgrade. Кроме того, если один диск выходит из строя, вам нужен резервный ESP, чтобы по-прежнему иметь возможность загружаться с другой части вашей корневой файловой системы, то есть когда она была создана на RAID-1. И тогда он должен содержать текущее программное обеспечение, совместимое с остальной частью системы Ubuntu.
К счастью, в настоящее время Ubuntu поддерживает избыточные ESP другими способами. Это означает, что их пакет grub можно перенастроить так, чтобы он всегда обновлял второй ESP, всякий раз, когда система записывает в ESP: