Назад | Перейти на главную страницу

Получение Grub2 для распознавания загрузки / root Raid 10

Я уже около двух дней пытаюсь загрузить свой рейд с grub2 и, похоже, не приближаюсь. Проблема, похоже, в том, что он вообще не распознает мой рейд. Он не видит (md0) и т. Д. Я не уверен, почему и как это изменить. Я использую устройство mdadm, 2 (по сути, raid1) raid10, f2, который в настоящее время деградированный.

Я пробовал добавить raid и mdraid модули с grub устанавливаются вместе с другими. Я пробовал несколько вариантов grub-install Такие как grub-install --debug --no-floppy --modules="biosdisk part_msdos chain raid mdraid ext2 linux search ata normal" /dev/md0

Я искал в сети ответ на то, что я не сделал, но безуспешно. На другом моем диске, который я планирую удалить, рейд инициализируется и устанавливается нормально при загрузке, но это не boot / root для этой настройки. Мой grub.cfg не распознается grub, так как он не может прочитать раздел рейда, поэтому я не публикую это. md0 не указан в моем /boot/grub/device.map.

Не забывайте, что GRUB2 все еще находится в стадии разработки, поэтому, если вы хотите его использовать ... это на ваш страх и риск.

Учитывая вышеизложенное, я думаю, вам лучше всего посоветовать получить последний исходный код и скомпилировать его, чтобы посмотреть, устранит ли это какие-либо проблемы, которые вы можете увидеть. Вы должны использовать как минимум версию 1.9.6, поскольку документы говорят, и сделайте так, чтобы ваш рейд был построен с использованием суперблока метаданных mdadm v0.90.

Например, чтобы создать устройство RAID1 «-l 10» для файловой системы / boot с дисками «-n 4» и запасными частями «-x 0»:

mdadm --create -e 0.90 -n 4 -x 0 -l 1 /dev/md2 /dev/sda2 /dev/sdb2 [/dev/sdc2 /dev/sdd2 ...]

А при тестировании с mdadm v3.2.3, grub 1.99-21ubuntu3 метаданные 0.90 требовались только для загрузочной файловой системы, а не для корня. И raid10 не работал после удаления диска, поэтому пример raid1 выше. (еще вопрос по raid10 Вот)

Для тех, кто прокручивает так далеко, у меня была эта проблема, когда я пытался заставить Ubuntu 16/14 загрузиться с 24-дискового SW RAID 10.

Ключ оказался установка раздела / boot на RAID 1; Grub явно не любит RAID 10. Остальная часть системы, раздел подкачки и корневой раздел («/») были настроены на RAID 10.

Обновление для текущих версий программного обеспечения (Ubuntu 14.10):
Grub2 2.02 ~ beta2-15

Я создал свои разделы и сделал на них устройства md, а затем запустил на них mkfs. ТОГДА я запустил установщик Ubuntu (повсеместность). (Если сначала не использовать mkfs, вездесущность настаивает на разделении ваших устройств MD. IDK, если grub будет обрабатывать таблицу разделов внутри MD на разделе.)

С участием / (включая /boot) на XFS на RAID10, f2 из 2 дисков, GRUB не имеет проблем с загрузкой, даже если диск отсутствует. (В настоящее время существует или была ошибка, при которой GRUB считает RAID10 непригодным для использования, если в нем отсутствуют 2 устройства, не проверяя, КАКИЕ два устройства отсутствуют. Таким образом, бывают случаи, когда у Linux не будет проблем с использованием ухудшенного RAID10, но простая проверка GRUB терпит неудачу.)

(Примечания к XFS: grub2 2.02 beta2 НЕ поддерживает новый XFS mkfs.xfs -m crc=1 формат метаданных. Не используйте это в файловой системе, которая включает /boot пока вы не получите исправленный GRUB.)

Я тестировал размер блока 32 КБ для моего RAID10, f2, чтобы убедиться, что vmlinuz и мой initrd не являются смежными на диске. Я не тестировал конфигурацию, которая требовала бы, чтобы GRUB читал с нескольких дисков, чтобы получить полный файл, поэтому я до сих пор не знаю, поддерживается ли это. (Я думаю, что нет: я тестировал из командной строки GRUB (после загрузки normal.mod, а не из консоли восстановления grub).

ls (md/0)
blah blah holds an XFS filesystem
ls (md/1)
<machine reboots instantly>
 or booting with only one disk connected:
error: failure reading sector 0xb30 from `fd0'.
error: disk `md/1' not found.

(Intel DZ68DB mobo, диски на контроллере SATA mobo (установлен на RAID, а не на AHCI, в случае, если это имеет значение)) Итак, я предполагаю, что он ищет раздел с правильным UUID для завершения RAID0.

Мой RAID10, f2 использовал формат метаданных по умолчанию 1.2 (расположенный в 4 КБ от начала раздела). Поскольку в наши дни grub понимает устройства md, вам не нужна старая практика сокрытия суперблока md в конце раздела (который вы могли бы получить с форматом 1.0, а также с форматом 0.9, я думаю). Я не проверял, если grub также поддерживает ddf или imsm (Форматы метаданных рейда BIOS, используемые некоторыми контроллерами mobo).

На обоих моих дисках были таблицы разделов GPT с EF02 Загрузочный раздел BIOS перед первым «обычным» разделом. (с 40 по 2047 сектор). Grub использует его для размещения материалов, необходимых для чтения RAID и XFS, но это не помещается в загрузочный сектор 512 Байт.

Не используйте RAID в загрузочных разделах BIOS. Тебе надо grub-install каждый /dev/sdX независимо, так что вы можете загрузить любой из ваших дисков. При этом также записывается, что нужно grub в загрузочный раздел BIOS на этом диске. update-grub не касается загрузочного раздела BIOS, он просто восстанавливает меню и initrd из файлов конфигурации. Только grub-install касается загрузочного раздела, и, как я уже сказал, его в любом случае нужно запускать на каждом диске.

Тестирование фактической загрузки с удаленным одним HD: Ubuntu дает интерактивную возможность пропустить монтирование недоступных файловых систем. (Я имел /var/cache на RAID0). Но после того, как сказал пропустить, все в порядке.