Монтирование софтверных рейдов при загрузке (после обновления появились глюки) [SOLVED]

После очередного обновления системы появились непонятные глюки с монтированном софтверных (mdraid) raid-массивов: при загрузке при попытке монтировать массивы не находит их:

mount: special device /dev/md6 does not exist
mount: special device /dev/md7 does not exist

Самое удивительное, что после загрузки все эти массивы прекрасно монтируются вручную. При этом /dev/md2 - корень прекрасно монтируется.
Есть еще массив /dev/md5 - он тоже в fstab'е прописан, но при загрузке монтируется от случая к случаю! То монтируется, а то как выше описал.
Что за костыли непонятно. Куда копать?

Возможно, при загрузке

Возможно, при загрузке попытка монтирования происходит до запуска какого-нибудь важного для этого демона (разного рода udev/dbus/*kit). То есть, где-то зависимости стартовых скриптов могут быть не совсем корректными.

Но md5 монтируется без

Но md5 монтируется без вопросов.
Еще смутило это:

jazz-bass / # mdadm --detail --scan
ARRAY /dev/md/2_0 metadata=0.90 UUID=3e0023b8:0c152968:cb201669:f728008a
ARRAY /dev/md1 metadata=0.90 UUID=5da41afa:9cd5c939:cb201669:f728008a
ARRAY /dev/md3 metadata=1.2 name=livecd:cache UUID=72292dd0:22318097:aa7480d9:179ae6bf
ARRAY /dev/md4 metadata=1.2 name=livecd:data UUID=77d1d459:966d1890:7c13defd:49a5d8b3
ARRAY /dev/md5 metadata=1.2 name=jazz_bass:3 UUID=14ffdc23:8fd2eafd:b6fe1640:52ce9447
ARRAY /dev/md7 metadata=1.2 name=jazz-bass:7 UUID=c2972fe4:33d15956:a9a200b2:8e38276d
ARRAY /dev/md6 metadata=1.2 name=jazz-bass:6 UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace

Что за /dev/md/2_0
Тут все нормально:

jazz-bass / # cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md6 : active raid0 sde1[0] sdf1[1]
      7812773888 blocks super 1.2 512k chunks
md7 : active raid1 sdg1[0] sdh1[1]
      2930134464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/22 pages [0KB], 65536KB chuns
md5 : active raid0 sdd1[1] sdc1[0]
      5860528128 blocks super 1.2 512k chunks
md4 : active raid0 sda3[0] sdb3[1]
      209714176 blocks super 1.2 512k chunks
md3 : active raid0 sda2[0] sdb2[1]
      209714176 blocks super 1.2 512k chunks
md1 : active raid1 sdb1[1] sda1[0]
      1048512 blocks [2/2] [UU]
md2 : active raid1 sdb4[1] sda4[0]
      101806336 blocks [2/2] [UU]      
unused devices: <none>

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Неужто пришло время менять

Неужто пришло время менять OpenRC на systemd?

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

.

jazz_bass написал(а):
Неужто пришло время менять OpenRC на systemd?

Есть основания предполагать, что вероятность аналогичных недоработок у леннарта не ниже.

:wq
--
Live free or die

Anarchist

Anarchist написал(а):
jazz_bass написал(а):
Неужто пришло время менять OpenRC на systemd?

Есть основания предполагать, что вероятность аналогичных недоработок у леннарта не ниже.

Так... Давно я сюда не заходил... Что такое леннарт? Имелось ввиду это?

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Нет, этого

Нет, этого

:)))))))))))) Спасибо!

:))))))))))))
Спасибо!

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

.

Ответ на вопрос «Куды рыть?» вульгарно-тривиален:
Начинать с идентификации списка пакетов проблемного обновления.

:wq
--
Live free or die

Это сложно - аптайм большой,

Это сложно - аптайм большой, без перезагрузки около 3-х обновлений делал. Но думаю либо OpenRC либо mdadm... Сегодня вечером попробую откатить их по очереди. Пробовал предыдущие версии ядер пересобирать - результата не дало.
Вот ссылка на конфиг ядра.

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

A почему нельзя написать в

A почему нельзя написать в техподдержку вашего диструбутива?

Хм... А разве тут не

Хм... А разве тут не обсуждаются вопросы связанные с gentoo?

Цитата:
...вашего диструбутива...

Gentoo - мой дистрибутив.

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Включить boot log и

Включить boot log и посмотреть в каком порядке запускаются сервисы и монтируются диски? Вероятно ему чего-то не хватает для монтирования.

Смотрел, ничего такого нет!

Смотрел, ничего такого нет! md5 нормально монтирует и md3, md4... а вот с md6, md7 беда. После загрузки все можно примонтировать вручную без проблем. Откатывал назад openrc, mdadm - результат нулевой. Пробовал перевыбирать ядро - иногда после новой сборки ядра другие массивы не монтируются при загрузке, например md5 и md7, а md6 монтируется.
Непонятная болячка вообщем... Куда копать непонятно!

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

ФС на этих массивах

ФС на этих массивах одинакова?
А последние циферки в fstab?
Ядро само стартует или через initrd?

ФС - ext4 на всех md5, md6,

ФС - ext4 на всех md5, md6, md7, более того на все этих массивах metadata=1.2
последние циферки 0 0 на всех 3-х вышеуказанных рейдах
ядро само стартует

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Может еще что посоветуете...

Может еще что посоветуете...

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

.

jazz_bass написал(а):
Может еще что посоветуете...

Посмотреть за поведением при выключении оптимизации скорости загрузки (ЕМНИП rc_parallel в /etc/rc.conf).

:wq
--
Live free or die

Первым делом на это

Первым делом на это посмотрел. Она у меня всегда отключена. Это у меня домашний сервер с большими аптаймами и очень редкими перезагрузками.

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Попробовать монтировать по

Попробовать монтировать по UUID а не по имени устройства?

.

evadim написал(а):
Попробовать монтировать по UUID а не по имени устройства?

LABEL мнемоничнее.
И даже Handbook уже достаточно давно рекомендует этот подход.

:wq
--
Live free or die

Бред какой то... Обновил мир,

Бред какой то...
Обновил мир, вместе с ним обновился openrc.
Переделал fstab на рекомендуемый Вами и Handbook'ом подход... Получил:

* Mounting local filesystems ...
mount: can't find UUID=16f8875e:46a3182a:6ff2f581:6f3c4cdc
mount: can't find UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace
mount: can't find UUID=fddf4d1c:8f63b595:21c01721:13350f6e

Переделал fstab вот так:

UUID=16f8875e:46a3182a:6ff2f581:6f3c4cdc        /home           ext4            noatime         0 0
/dev/md5                                        /home           ext4            noatime         0 0
UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace        /mnt/storage    ext4            noatime         0 0
/dev/md6                                        /mnt/storage    ext4            noatime         0 0
UUID=fddf4d1c:8f63b595:21c01721:13350f6e        /mnt/archive    ext4            noatime         0 0
/dev/md7                                        /mnt/archive    ext4            noatime         0 0

Поясню: строки 1 и 2, 3 и 4, 5 и 6 - одно и тоже!
Иначе говоря:
UUID=16f8875e:46a3182a:6ff2f581:6f3c4cdc - /dev/md5
UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace - /dev/md6
UUID=fddf4d1c:8f63b595:21c01721:13350f6e - /dev/md7
Вот доказательства ;)

/ # mdadm --detail --scan
ARRAY /dev/md2 metadata=0.90 UUID=3e0023b8:0c152968:cb201669:f728008a
ARRAY /dev/md1 metadata=0.90 UUID=5da41afa:9cd5c939:cb201669:f728008a
ARRAY /dev/md4 metadata=1.2 name=jazz-bass:4 UUID=a0cea9ac:7939a912:43603a86:86d8605a
ARRAY /dev/md3 metadata=1.2 name=jazz-bass:3 UUID=3a58f17c:fb0135e7:4976405a:687043cd
ARRAY /dev/md6 metadata=1.2 name=jazz-bass:6 UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace
ARRAY /dev/md5 metadata=1.2 name=jazz-bass:5 UUID=16f8875e:46a3182a:6ff2f581:6f3c4cdc
ARRAY /dev/md7 metadata=1.2 name=jazz-bass:7 UUID=fddf4d1c:8f63b595:21c01721:13350f6e

Так вот при задвоенном fstab'е получаем при загрузке:

* Mounting local filesystems ...
mount: can't find UUID=16f8875e:46a3182a:6ff2f581:6f3c4cdc
mount: special device /dev/md5 does not exist
mount: can't find UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace
mount: can't find UUID=fddf4d1c:8f63b595:21c01721:13350f6e
mount: special device /dev/md7 does not exist

Иначе говоря /dev/md6 как /dev/md6 монтируется, а как UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace - нет!!!
Что это?!?

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

покажи-ка ls -l

покажи-ка

ls -l /dev/disk/by-uuid/

UUID диска для монтирования

UUID диска для монтирования (blkid или ls /dev/disk/by-uuid) должен выглядеть совершенно иначе, нежели эти mdadm UUID, по которым Вы пытаетесь монтировать.

Все так и

Все так и оказалось!

lrwxrwxrwx 1 root root  9 апр 22 22:24 586ef24d-fafd-4097-9af9-e4dd4856e468 -> ../../md5
lrwxrwxrwx 1 root root  9 апр 22 22:24 5c726bd1-1945-498b-b299-53acd04e1421 -> ../../md6
lrwxrwxrwx 1 root root  9 апр 22 22:24 ff08706b-d287-464c-9d1c-1750bf197af3 -> ../../md7

К сожалению добавление этих UUID в fstab не решило проблемы!
Вообще раньше не подозревал, что на одно и тоже устройство разные UUID есть!

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

jazz_bass написал(а): Бред

jazz_bass написал(а):
Бред какой то...
Иначе говоря /dev/md6 как /dev/md6 монтируется, а как UUID=50bf28bc:054d9ce3:f3fd2b08:2a819ace - нет!!!
Что это?!?

А вот это не про оно?
2016-11-04-important_fstab_and_localmount_update
Title Important fstab and localmount update
Author William Hubbs
Author Ian Stakenvicius
Posted 2016-11-04
Revision 2

Recent updates to service scripts in OpenRC and (e)udev have removed the
requirement for udev to "settle" before its startup completes. The
result of this is that services which used to wait for udev to finish
processing all kernel events will now start earlier. One such service
is localmount.

If "/dev/disk/by-*" device paths are used for mount points in
fstab, it is possible that those symbolic links will not exist when
localmount starts and attempts to mount them.

The recommended solution is to convert fstab from using
"/dev/disk/by-*" to the LABEL=, UUID=, PARTLABEL= or PARTUUID= syntax.
This syntax is supported directly by both util-linux and busybox's mount
commands and has no dependency on any device manager. More information
on this syntax can be found in the fstab(5) and mount(8) man pages.

To force the old behaviour, instead of converting fstab, you can add
rc_want="dev-settle" to /etc/conf.d/localmount or add udev-settle to the
sysinit runlevel.

Огромное спасибо!rc-update

Огромное спасибо!
rc-update add udev-settle sysinit
Проблема решена!

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".