RAID6 mdraid -> LVM -> EXT4 root с GRUB2?
2012-03-31 Ежедневная сборка Debian Wheezy в VirtualBox 4.1.2, 6 дисковых устройств.
Мои шаги, чтобы воспроизвести до сих пор:
- Настройте один раздел, используя весь диск как физический том для RAID, на диск
- Настройте один массив RAID6 mdraid из всех этих
- Используйте полученный md0 в качестве единственного физического тома для группы томов.
- Настройте логические тома, файловые системы и точки монтирования по своему желанию
- Установите вашу систему
Оба / и /boot будут в этом стеке. Я выбрал EXT4 в качестве моей файловой системы для этой настройки.
Я могу добраться до консоли спасения GRUB2, которая может видеть на ней mdraid, группу томов и логические тома LVM (все названы соответствующим образом на всех уровнях), но я не могу просмотреть содержимое файловой системы любого из них и не могу загрузиться от них.
Насколько я вижу из документации, версия GRUB2, поставляемая там, должна обрабатывать все это изящно.
http://packages.debian.org/wheezy/grub-pc (1.99-17 на момент написания.)
Он загружает ext2, raid, raid6rec, dosmbr (этот есть в списке модулей один раз на диск) и модули lvm в соответствии с сгенерированным файлом grub.cfg. Также он определяет список модулей, которые должны быть загружены дважды в сгенерированном файле grub.cfg, и в соответствии с быстрым поиском в Google это кажется нормой и нормальным для GRUB2.
Как продвинуться дальше, заставив GRUB2 действительно читать содержимое файловых систем и загружать систему?
Что я ошибаюсь в своих предположениях о функциональности здесь?
РЕДАКТИРОВАТЬ (2012-04-01) Мой сгенерированный grub.cfg:
Кажется, это делает мой логический том /usr корневым, и это может быть причиной сбоя? Ошибка grub-mkconfig? Или предполагается получить доступ к материалам из /usr до / и /boot? /boot включен / для меня - нет отдельного загрузочного логического тома.
3 ответа
В конце концов, это была ошибка / проблема Grub2 с устаревшим программным массивом raid.
Grub2 1.9x имеет проблемы с загрузкой из поврежденного массива. Загрузка в режиме восстановления на систему и восстановление самого рейда исправили проблему с первоначальной настройкой.
Между прочим, установка работает (на данный момент: 2012-06-26) прямо из коробки на Fedora 17, Arch (стабильная версия) и Gentoo (стабильная + последняя версия grub2 bzr через Portage): Grub2 2.0+ устранила проблему. В скором времени ожидается заморозка Wheezy, и я полностью надеюсь, что проблема будет решена путем перехода на 2,0 или создания бэкпорта.
Для меня это все еще влияет на Debian 6, 7; Ubuntu 8.04, 10.04, 12.04.
Разрешение raid-синхронизации в однопользовательском режиме восстановления - приемлемый обходной путь для домашней системы, но наличие дополнительной возможности для перезагрузки рабочего сервера (даже файлового сервера небольшого офиса) заставляет задуматься дважды.
Очень хороший пост, большое спасибо, это очень помогло мне в установке LVM over - RAID на Debian Wheezy. Вот шаги, которые я предпринял, чтобы преодолеть проблему.
Обновите Grub2 до V2+
Добавьте эти строки в /etc/apt/sources.list
deb http://http.debian.net/debian unstable main
deb-src http://http.debian.net/debian unstable main
apt-get update
apt-get установить grub2
Возможно, вы сделали слишком большой один раздел и не оставили достаточно места для установки GRUB2, и он перезаписал части пространства LVM. Что-то длинное. Попробуйте свои шаги, чтобы воссоздать вашу проблему, за исключением того, что на этот раз используйте один диск (пропустите RAID), создайте один раздел точно так же, как вы делали раньше, а затем оставшуюся часть. Если я прав, то у вас должно быть такое же поведение.
ОБНОВЛЕНИЕ: Итак, этот ответ неверен. Я просматривал руководство GRUB2 и нашел этот раздел, в котором говорится:
Если вместо этого вы получаете только спасательную оболочку, это обычно означает, что GRUB по какой-то причине не удалось загрузить "обычный" модуль. Может быть возможно обойти это временно: например, если причиной сбоя является неправильный "префикс" (возможно, это относится к неправильному устройству или, возможно, путь к /boot/grub не был правильно задан относительно устройства), затем вы можете исправить это и войти в обычный режим вручную:
# Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal
Однако любая проблема, которая оставляет вас в оболочке восстановления, вероятно, означает, что GRUB был установлен неправильно. Может быть более полезным попытаться переустановить его правильно, используя устройство grub-install (см. "Вызов grub-install"). При этом нужно помнить несколько вещей:
- Порядок дисков в вашей операционной системе может отличаться от порядка загрузочного диска, используемого вашей микропрограммой. Не думайте, что ваш первый жесткий диск (например, '/ dev / sda') является тем, с которого будет загружаться ваша прошивка. device.map (см. карту устройства) можно использовать для переопределения этого, но обычно лучше использовать UUID или метки файловой системы и избегать зависимости от упорядочения дисков полностью.
- По крайней мере, в системах BIOS, если вы скажете grub-install установить GRUB в раздел, но GRUB уже установлен в основной загрузочной записи, установка GRUB в разделе будет проигнорирована.
- Если возможно, обычно лучше избегать установки GRUB в раздел (если это не специальный раздел для использования только GRUB, например, загрузочный раздел BIOS, используемый в GPT). Это означает, что GRUB может перестать считывать образ своего ядра из-за перемещения файловой системы блоков, например, во время дефрагментации, выполнения проверок или даже во время нормальной работы. Установка на весь диск обычно более надежна.
- Убедитесь, что GRUB действительно знает, как читать с устройства и файловой системы, содержащей /boot/grub. Он не сможет читать с зашифрованных устройств и файловых систем, поддержка которых еще не добавлена в GRUB.