Начальная загрузка Grub2 RAID /

Я использую хинду на своем HomeServer. Мои жесткие диски являются raid1, зеркально отраженным с mdadm.

Моя проблема состоит в том, как загрузить / корректный раздел начальной загрузки?

/dev/md1 consists of /dev/sdc2 & /dev/sdd2 mounted on /boot

В моем grub.cfg У меня есть uuid /dev/md1 но во время начальной загрузки массив, конечно, не готов.

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

таким образом, как я узнаю UUID участников набега? ls -l /dev/disk/by-uuid только показывает мне uuid /dev/md1. И когда я несовершаю рейд на диски, я не могу смонтировать их для получения их UUID mount: unknown filesystem type 'linux_raid_member'

таким образом, как я могу позволить Grub2 загрузить те диски, он сможет определить содержание, прежде чем они будут в набеге? (они на самом деле ext2).

Я должен, возможно, добавить, что использую gpt таблицы разделов, поэтому у меня есть небольшой раздел /dev/sdc1 and /dev/sdd1 на обоих дисках разместить bios_grub раздел. это не банкомат, на который совершают рейд.

Как указано в комментариях ниже ответа Gilles моя проблема сохраняется. Личинка не найдет устройство, говоря мне

error: no such device: 9f81a-(device uuid)-5580.
entering rescue mode...
grub rescue> 

впоследствии я добавил строки

insmod part_msdos
insmod part_gpt
insmod raid
insmod mdraid

к моему grub.cfg, чуть выше строки, где корень определяется root='(md0)' Я все еще получаю ту же ошибку.

Я провел еще некоторое исследование, и я действительно предполагаю ошибка, связанная с uuids:

# grub-probe -d --target=fs_uuid /dev/md1
9f81a35d-0813-481f-9ae0-e4fba57c5580
# blkid
/dev/sdc2: UUID="11adb545-0e80-61d1-61f6-565f18e8c3f0" UUID_SUB="88826c5e-d12b-307d-6e54-556d1ebb2458" LABEL="livecd:1" TYPE="linux_raid_member"
/dev/sdd2: UUID="11adb545-0e80-61d1-61f6-565f18e8c3f0" UUID_SUB="15150fb2-5066-edba-d39b-08b63219453c" LABEL="livecd:1" TYPE="linux_raid_member"
/dev/md1: UUID="9f81a35d-0813-481f-9ae0-e4fba57c5580" TYPE="ext2"
(I cut away the other drives here)

поскольку Вы видите, что оба раздела имеют тот же UUID, таким образом, я отредактировал UUID дисков в моем grub.cfg и сделал grub-install /dev/sdx снова, но я все еще получаю ошибку со "старым"/dev/md1 UUID.

4
28.07.2011, 17:54
3 ответа

Хинду Wiki имеет информацию, которая обсуждает и Личинку 1 и Личинку 2. Обратите внимание, что ситуация полностью отличается в Личинке 1 и Личинке 2: Личинка 1 ничего не знает о RAID, но может фальсифицировать чтение из устройства RAID-1 путем чтения одного из дисков (это требует 0,9 или 1,0 mdraid форматов суперблока, не 1.1 или 1.2); Копайте 2 поддержки Linux mdraid объемы исходно.

Копайте 2 работы на трех этапах (см. здесь для получения дополнительной информации):

  1. Загрузочный сектор.
  2. Базовое изображение, сгенерированное install-grub в /boot/grub/core.img, способный к показу спасательной подсказки и загрузке модулей, но не очень еще.
  3. Полная система с загружаемыми модулями, который обычно (через normal модуль), показывает меню начальной загрузки, описанное /boot/grub/grub.cfg.

Генерация базового изображения

Выполненный grub-install /dev/sda генерировать базовое изображение и заполнить /boot/grub с файлами модуля. grub-install также устанавливает загрузочный сектор на обозначенном устройстве. Выполненный оба grub-install /dev/sdc и grub-install /dev/sdd если Вы хотите иметь загрузочный сектор на обоих дисках.

Если grub-install не обнаруживает Ваши диски правильно, создает следующий сценарий как /usr/local/sbin/grub-probe-verbose и выполненный grub-install --grub-probe=/usr/local/sbin/grub-probe-verbose видеть, что продолжается.

#!/bin/sh
exec /usr/sbin/grub-probe "$@" | tee /dev/stderr

Из Вашей расшифровки стенограммы от bash -x /sbin/grub-install /dev/sdc, это появляется это grub-probe не обнаруживает /dev/md1 как RAID-массив (/sbin/grub-probe --device-map=/boot/grub/device.map --target=partmap --device /dev/md1 и /sbin/grub-probe --device-map=/boot/grub/device.map --target=abstraction --device /dev/md1 ничего не возвратите). В случае, если проблема находится только в grub-probe а не в загрузочном коде, попытайтесь переопределить его решение:

grub-install --modules='biosdisk ext2 msdos raid mdraid' /dev/sdc

Поддержка mdraid 1.x суперблоки является все еще недавней; это не находится в Личинке 1.98, Вам нужен, по крайней мере, пересмотр Базара 2550, датировался 20.07.2010 (код был на ответвлении в течение нескольких месяцев прежде). Debian сжимают и поставка Ubuntu 10.10 с 1.x поддержка суперблока; я ожидал бы, что хинду будет иметь 1.99 к настоящему времени.

Генерация grub.cfg

Выполненный grub-mkconfig -o /boot/grub/grub.cfg.grub-mkconfig произвести предварительный конфигурационный файл Личинки. Рассмотрите его, и если взгляды исправляют, переименуйте его к /boot/grub/grub.cfg.

Карта устройства

Вы, возможно, должны настроить /boot/grub/device.map получить вывод grub-mkconfig правильно. Этот файл будет сгенерирован автоматически grub-mkdevicemap если это не существует, но устанавливает со многими дисками, имеют тенденцию путать его. Я ожидал бы, что это будет содержать что-то как

(md0) /dev/md1
(hd0) /dev/sdc
(hd1) /dev/sdd

где md0 имя тома Личинки и /dev/md1 имя в соответствии с Linux. Личинка должна получить доступ /boot/grub для двух вещей:

  • Загрузочный сектор личинки читает базовое изображение в закрепленном местоположении на диске, поддерживаемом BIOS (это не имеет большого выбора). С BIOS ПК, (hd0) диск, что BIOS читает загрузочный сектор из (это - диск, который содержит загрузочный сектор), и (hd1) некоторый другой диск (Вы не всегда добираетесь для выбора). Это более просто если (hd0) диск (или диск, с массивом RAID-1), который содержит /boot/grub.
  • Базовые модули загрузок образа и grub.cfg и ядро Linux от местоположения файловой системы, определенного grub-install, обычно /grub или /boot/grub от устройства, которое может быть RAID-массивом или любым другим типом объема, поддерживаемым Личинкой.

Если Вы изменяетесь device.map, необходимо работать grub-install снова. Вы, возможно, должны работать grub-mkconfig снова, если Вы не полагаетесь search команда для всего.

4
27.01.2020, 21:02
  • 1
    Ссылка выглядит многообещающей. Я уже изменил свой device.map, потому что у меня было устройство, не найденное ошибкой (/dev/md1), но я на самом деле не думал об использовании стиля подсчета личинки. –  Baarn 27.07.2011, 21:01
  • 2
    я добавил строку (md0) /dev/md1 к моему device.map и grub-mkconfig найденный соответствующим UUID и записал это в grub.cfg., но после начальной загрузки я получаю это error: no such device: 9f81a...restofUUID –  Baarn 28.07.2011, 00:13
  • 3
    @WalterMaier-Murdnelch Делает у Вас есть необходимое insmod директивы (insmod part_msdos, insmod raid, insmod mdraid должен сделать это)? Я ожидал бы grub-mkconfig для генерации их но возможно это не сделало. Отправьте Ваш grub.cfg. –  Gilles 'SO- stop being evil' 28.07.2011, 00:22
  • 4
    pastebin.com/qWaSYw8a, который пропускает материал insmod, это точно, в чем я нуждаюсь, я предполагаю, попробует его сразу же –  Baarn 28.07.2011, 00:26
  • 5
    все еще та же ошибка... странно. –  Baarn 28.07.2011, 01:29

Отвечать на вопрос о UUID: Использовать blkid

0
27.01.2020, 21:02

livecd ~ # mdadm - создают/dev/md1 - level=1 - raid-devices=2 - metadata=0.90/dev/sdc2/dev/sdd2

livecd ~ # личинка

личинка> корень (hd0,1)

Filesystem type is ext2fs, partition type 0xfd

личинка> установка (hd0)

Checking if "/boot/grub/stage1" exists... yes  
Checking if "/boot/grub/stage2" exists... yes  Checking if
"/boot/grub/e2fs_stage1_5" exists... yes  Running "embed
/boot/grub/e2fs_stage1_5 (hd0)"...  16 sectors are embedded. succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p
(hd0,0)/boot/grub/stage2 /boot/ grub/menu.lst"... succeeded Done.
-3
27.01.2020, 21:02
  • 1
    Только отправьте дампы команд, это обычно не достаточно. Добавьте объяснения. И удостоверьтесь, что Вы действительно выводите, на самом деле относится к вопросу. –  Mat 01.02.2012, 12:30
  • 2
    , если бы это был этот легкий Gilles и я, сделал бы это, я попробовал его снова полностью другим компьютером и все еще не сделал получил его работа. и btw является этим ответом с помощью наследия личинки не 2 –  Baarn 01.02.2012, 16:12

Теги

Похожие вопросы