LINUX.ORG.RU

Настройка initrd

 , , , ,


0

3

Доброго времени суток.

Имеется raid1 массив, состоящий из 3-х дисков. Массив создан средствами btrfs, на нем установлена ОС. Проверка отказоустойчивости данной конфигурации показала что загрузка ОС проходит успешно только при условии что все диски в корзине подключены.

Если отключить физически один из 3-х дисков и попытаться загрузить систему в деградированном состоянии, то в initramfs происходит ошибка загрузки с отвалом в BusyBox с диагностикой:

...
BTRFS: failed to read the system array: -5
BTRFS: open_ctree failed
mount: mounting /dev/sda2 on /root failes: Invalid argument
...
Если я правильно понимаю, то это связано с неправильно сформированным образом initrd, в котором не указана опция монтирования degraded для массива. А как это указать правильно я не знаю. Нужен коллективный разум.

З.Ы. Данная тема является продолжением этой.


Ошибка найдена, но не полечена:(

В файле /etc/grub.d/10_linux присутствует строчка:

GRUB_CMDLINE_LINUX="rootflags=degraded,subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
А в /boot/grub/grug.cfg после update-grub указанные параметры по какой то причине отсутствуют. Как это исправить?

torm7 ()
Ответ на: комментарий от torm7

А если передать руками этот параметр (вручную отредактировать /boot/grub/grug.cfg) — всё норм?

mandala ★★★★ ()

Решали похожую проблему на Debian jessie. Вот тут: debian raid1 BOOT_DEGRADED. inird не хочет собирать массив, если отключить от машины один из дисков

Там правда разговор про raid1 шел. Но суть та же. Не грузилось с degraded массивом. На тот момент нашел выход только пересборкой initrd и там ручками при загрузке приходилось остановить массив и заново инициализировать из init-premount скриптов.

Как сейчас дела обстоят не знаю, не пробовал. Можно впринципе на виртуалке проверить ради интереса...

samson ★★ ()
Ответ на: комментарий от MikeWortin

В общем не знаю, баг(склоняюсь к багу) это или фича, но оказалось что:

  • Если файловая система без subvolume, то надо прописывать этот параметр в /etc/default/grub, откуда он успешно берется и идет загрузка;
  • если корневой раздел перенесен в subvolume, то надо этот параметр из /etc/default/grub удалять и вставлять его в /etc/grub.d/10_linux.

Если этого не сделать, то при grub-update он возьмется из обоих файлов и сломает загрузку.

Всем спасибо за участие, чего хотел добился. Имею систему с загрузкой из subvolume btrfs, который находится на raid1. C ломаным raid полет нормальный, даже если из 3-х дисков оставить любой один.

torm7 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.