LINUX.ORG.RU
ФорумAdmin

grub2 and sortware raid1 не грузится с одним диском

 , , ,


0

3

Добрый день.

Есть debain, sotf raid1. Grub установлен на оба диска, делал grub-install /dev/sda ; grub-intsall /dev/sdb. Корень на /dev/md0.

С двумя дисками все ОК. А вот если отключить один из дисков, то grub запускается, видит корень (из командной строки grub-а видно все содержимое /dev/md0), грузит ядро и initrd, но при загрузке ядра и inittd, массив не собирается и, соответственно не может загрузиться.

В initramfs присутствует mdadm.conf с описанием массива, но в /proc/mdstat написано, что md0 inactive, mdadm --detail /dev/md0 почему то указывает, что Raid Level : 0 вместо 1.

Подключаю обратно второй диск - все ОК. От того какой диск отключаем (первый или второй) ничего не зависит.

Перебрал все:

metadata=0.90, 1.2

прописать root не по uuid, а указывать непосредственно /dev/md0

отдельным разделом сделать /boot

dos и gpt disktables

по разному описывал array в mdadm.conf

как только не правил секцию при загрузке grub

Делал все на реальном железе, потом забил, на виртуалке тот же результат.

Подскажите плиз что не так, куда копать? Сто раз собирал эти массивы, все ок. А тут весь моз сломал уже.

Linux vdeb 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64 GNU/Linux

★★
Ответ на: комментарий от baralgin

сейчас конфиг такой. dpkg-reconfigure mdadm сделал - без результата

# grep -v ^# /etc/mdadm/mdadm.conf 

CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root

ARRAY /dev/md0 UUID=b224fce5:48623ae0:59afb648:84186f4a
ARRAY /dev/md2 UUID=daafc54a:c443543d:59afb648:84186f4a
/dev/md0 - rootfs. на второй внимание не обращайте. это swap. Зачем то создал его на тестовой виртуалке...

samson ★★
() автор топика
Последнее исправление: samson (всего исправлений: 1)
Ответ на: комментарий от baralgin

похже вы правы. сейчас ищу, где и что указать надо...

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

делаю

(initramfs) mdadm -S /dev/md[0,2]
(initramfs) mdadm --assemble --scan
или
(initramfs) mdadm --assemble /dev/md0
массив нормально поднимается

а при загрузке initrd - не хочет.

добавляю bootdegraded=true в cmdline в /etc/default/grub BOOT_DEGRADED=true в /etc/default/mdadm /etc/initramfs-tools/conf.d/mdadm

делаю unpack initrd, в нем правлю /etc/conf.d/madam - добавляю BOOT_DEGRADED=true. Пакую все обратно. гружусь - все так же.

Так и не найду, где прописать, чтоб он собирал этото чертов degraded array......

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

да я догадываюсь. Но почему бы и нет. Просто брал рабочий initrd, который был создан ранее при помощи update-initramfs -u, разворачивал его в /tmp/initrd/ там правлю что-либо, и обратно заворачиваю в /boot/initrd*, гружусь...

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

Интересно, а с какой поры по дефолту degraded raid не грузится?

В инете везде написано, что надо bootdegraded=true в kernel cmdline добавить при загрузке. Либо добавить BOOT_DEGRADED=true option в /etc/initramfs-tools/conf.d/mdadm. Но это для Ubuntu. Пробую - не работает.

Так же добавил в cmdline md-mod.start_dirty_degraded=1. В /sys/module/md_mod/parameters/start_dirty_degraded до этого было 0. Проубую - без результата.

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

Попробуйте еще тут почитать https://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-system-i...

это все читал. Массивы собирал неоднократно и работал с ними... система установлена, grub стоит в mbr обоих дисков. Есть куча пошаговых инструкций об установке debian на raid1 - я все так же делаю.

Проблема толкьо в том, что при загрузке initrd не хочет собирать raid1, если отключить от машины один из дисков. Причем вручную с консоли восстановления все сразу поднимается:

(initramfs) mdadm -S /dev/md[0,2] && mdadm --assemble --scan
и массив становится active

Подскажите плиз кто-нибудь, куда тут в debian-е с его initramfs-tools копать далее???

samson ★★
() автор топика
Последнее исправление: samson (всего исправлений: 1)
Ответ на: комментарий от bass

С bootdelay тоже тоже ставил эксперементы. Еще раз сделал так:

#!/bin/sh

cat <<EOF > /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="bootdegraded=true md-mod.start_dirty_degraded=1 bootdelay=5000"
GRUB_CMDLINE_LINUX=""
EOF

echo "echo \">>>> wait for raid: .....\"  && sleep 5" > /etc/initramfs-tools/scripts/init-premount/wait4raid  

chmod +x /etc/initramfs-tools/scripts/init-premount/wait4raid

update-initramfs -u && update-grub

не помогло. Вот что получилось: http://postimg.org/image/ivxfp9mad/

ты забываешь указывать какая ошибка возникает при

/dev/md0 не собирается. статус inactive. Выглядит это так: http://postimg.org/image/ve7yolylf/ http://postimg.org/image/7gzo9jueh/ http://postimg.org/image/3qv3687cf/

Создал еще раз тему: debian raid1 BOOT_DEGRADED. inird не хочет собирать массив, если отключить от машины один из дисков там постарался подробнее описать суть.

ps: не ругайте плиз за то что создал аналогичную тему.

pps: похоже действительно проблема в том, что initrd по умолчанию не хочет поднимать зеркало на одном диске. Но все стандартные рекомендации (bootdegraded=true md-mod.start_dirty_degraded=1 bootdelay=5000) не подходят, чтобы указать initrd, что все же надо поднять.

samson ★★
() автор топика
Последнее исправление: samson (всего исправлений: 1)
Ответ на: комментарий от bass

Сделал так:

#!/bin/sh

cat <<EOF > /etc/initramfs-tools/scripts/init-premount/assemble-md0
mdadm -S /dev/md0
mdadm -A --scan
EOF

chmod +x /etc/initramfs-tools/scripts/init-premount/assemble-md0

update-initramfs -u
стартует с одним диском. Но как то оно очень уж криво. Должен же быть какой-нибудь параметр, отвечающий за bootdegraded. Неужели debian не умеет загружаться с зеркала с одним диском стандартными средствами???

samson ★★
() автор топика
28 мая 2015 г.
Ответ на: комментарий от baralgin

К сожалению, на Debian Jessie такого не обнаружил. Не спрашивает он такого :(

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

Я прошу прощения, кто-либо обнаружил, каким образом это делается, или единственный способ - это тот, что предложил samson? Удивительно, что существует такой баг (по-другому не назвать) в таком «старом» дистрибутиве.

nimzovich
()

Помню были у меня похожие проблемы - сервер грузился только с первого диска. Попробуй в /etc/default/grub раскомментируй:

# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console
а затем запусти: update-grub

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