Debian 12 (книжный червь): установка программного RAID 1 завершается с ошибкой grub

Некоторое время я пытался настроить новую серверную систему с RAID 1 в качестве источника загрузки. Этот RAID состоит из двух жестких дисков емкостью 4 ТБ. Поэтому я загружаюсь с USB-накопителя, который я подготовил с установочным образом Debian 12. Вначале все работает нормально. Настраиваю сеть и создаю первых двух пользователей. Когда дело доходит до разделения, я выбираю ручной способ.

В следующей таблице я вижу два своих диска емкостью 4 ТБ и загрузочное устройство USB. Жесткий диск SCSI9 является запасным на случай чрезвычайной ситуации, я не буду использовать его здесь. Я выбираю настройку программного RAID

Я выбираю создание устройства MD

Я выбираю RAID 1

2 RAID-устройства

0 запасных устройств

Я выбираю свои 2 свободных диска

Еще раз вернемся к разделению. На этот раз я выбираю управляемый режим

Все файлы в одном разделе

Я выбираю новое устройство RAID

Через одну или две минуты появляется новый разделенный RAID. Выглядит многообещающе...

Подтверждаю изменения и система начинает скачивать и устанавливать остальную ОС и все утилиты. Этот процесс хорошо спроектирован и на данный момент довольно прост. Единственная проблема: оно не заканчивается. :-(Когда дело доходит до установки GRUB (через 2 часа), он умирает... Я не нашел способа выйти за рамки этой точки. В чем моя ошибка и как я могу это исправить ?

Я перепробовал множество вариантов результатов обширного поиска в Интернете, и все с одним и тем же результатом . Это был самый многообещающий вариант: пропустить часть процесса установки и создать массив вручную с помощью mdadm:https://www.server-world.info/en/note?os=Debian_12&p=raid1

Добавление

2 ответа

4T требует использования GPT, и вы не можете правильно одновременно иметь RAID с возможностью разделения всего диска и сделать диски распознаваемыми BIOS для загрузки (строго невозможно с EFI, не так строго с устаревшим, но для этого потребуется темная магия, которую вы используете не хочу знать).

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

Это связано с тем, что таблица разделов GPT фактически хранится как в начале, так и в конце устройства. Когда используется и просматривается весь диск RAID без правильной интерпретации метаданных MD, обе копии GPT никогда не создаются одновременно:

  • для суперблока v1.0 MD второй GPT (в конце) будет отсутствовать (перенесен ранее, на место биос не ожидает);
  • для суперблоков MD v1.1 и v1.2 первый GPT (в начале) будет сдвинут, поэтому прошивка его не найдет.

В любом случае он не распознает диски как имеющие действительную таблицу разделов и откажется загружаться с них.

В дополнение к этому, если вы хотите загрузиться с UEFI, вам необходимо знать, что прошивка EFI не имеет ни малейшего представления о том, что ESP может быть программным RAID (в спецификации об этом ничего не говорится). Так что не должно быть. ESP всегда должен быть простым разделом GPT.

Чтобы решить эту проблему, вместо создания RAID и последующего разбиения на разделы вы сначала разбиваете диски, а затем собираете некоторые разделы в RAID. Хоть это и спорно, я предлагаю следующую схему:

  • для установки EFI: ESP (тип 1) размером 511 МБ (смещение по умолчанию 1 МБ), затем 512 МБ для /boot типа Linux RAID, затем остальное для остальной части типа Linux RAID (это тип 29 в fdisk, если я не ошибаюсь) ).
  • для устаревшей установки: 1 МБ (тип 4 — biosgrub), 510 МБ загрузочный (RAID), а остальное RAID.

Затем вы создаете два RAID-а (/boot и остальные) и выбираете один из ESP в качестве «ESP». После установки вы включите загрузку со второго диска. А затем вы создаете LVM на большом RAID для хранения файловых систем; там вы можете создать том подкачки, корневой том FS (30 ГиБ достаточно для Debian, и его легко увеличить на лету; обратите внимание, что вы поместите все данные в другие смонтированные выделенные тома — хранить данные приложения в корневом томе бесполезно ). Остальное можно создавать по мере необходимости, в течение срока службы системы.

Дальше устанавливаете систему как обычно. Он должен создать FAT32 в разделе ESP; У установщика Debian 11 были проблемы с этим, поэтому мне пришлось создать его вручную; На 12 не знаю, так как такую ​​установку не делал, только обновления. Когда дело доходит до установки загрузчика, вы просто делаете то, что предлагается для EFI, тогда как для устаревшего варианта вы можете просто повторить этот шаг и установить его дважды, выбрав второй диск во второй раз, чтобы он сразу стал резервным для загрузки.

Для EFI после первой загрузки системы вам необходимо вручную создать файловую систему FAT32 на втором разделе «ESP», смонтировать ее куда-нибудь (я использую /boot/efi2) и скопировать все из /boot/efi, сохранив структуру. Затем вы создаете вторую загрузочную запись прошивки, используяefibootmgr, вот инструкция.

Готово... Спасибо, Никита, что указал правильное направление! Вот краткий рецепт того, как это сработало у меня (я опустил пару «вы действительно хотите переразбить свои диски» — подтверждения):

  • Перейдите к настройке BIOS материнской платы и отключите все компоненты UEFI.
  • Загрузитесь с USB-накопителя с установочным образом Debian 12.
  • Запустите «Графическую установку».
  • Выполните первые шаги (установку сети и т. д.) обычным способом.
  • Когда установщик дойдёт до «Разбиения дисков», выберите «Вручную».
  • Удалите все старые разделы с двух целевых дисков.
  • Создайте новый раздел на первом целевом диске. На вопрос размера поставьте "1МБ". Поместите раздел в «Начало» доступного места. Измените настройку «Использовать как» на «Зарезервированная область загрузки BIOS».
  • Создайте новый раздел на первом целевом диске. На вопрос размера ставьте «макс». Измените настройку «Использовать как» на «физический том для RAID».
  • Повторите последние два шага для второго целевого диска.
  • Вернувшись в меню разделения, выберите «Настроить программный RAID». Выберите «Создать устройство MD». Выберите «RAID1». Активные устройства — «2». Запасные устройства — «0». Затем выберите два раздела RAID, которые вы подготовили ранее. Выйдите из настройки RAID, нажав «Готово».
  • Вернувшись в меню разделения, выберите «Управляемое разделение». Выберите «Управляемое — использовать весь диск и настроить LVM». Выберите устройство RAID, которое вы подготовили ранее. Выберите «Все файлы в одном разделе». На вопрос о размере LVM отвечайте «максимум».
  • Ваш список разделов теперь должен выглядеть примерно так. Выберите «Завершить разметку и записать изменения на диск».
  • Если все прошло хорошо, ваша система запустит стандартный процесс установки Debian (который может занять некоторое время). Вы отвечаете на вопросы точно так же, как и в обычном процессе установки.
  • Проснитесь еще раз, когда дело доходит до записи GRUB на ваши диски: запишите его один раз на первый целевой диск, затем вернитесь и сделайте то же самое для второго целевого диска.
  • В остальном процедура стандартная...
  • Вы можете проверить состояние вашего RAID (включая ход процесса синхронизации), запустивsudo watch cat /proc/mdstatиз командной строки.
Другие вопросы по тегам