LINUX.ORG.RU

Монтирование lvm разделов вsystemd

 , , ,


0

1

В общем есть система в виде шифрованного luks'ом lvm раздела с корнем usr и home. Initrd отлично подгружает корень, монтирует в него usr и передаёт управление systemd. Вот тут возникает проблема. Во время загрузки systemd ждёт 1:30 мин. когда диски смонтируются, но это не удаётся(timed out), загрузка обрывается из-за неудовлетворенных зависимостей и меня выбрасывает в shell. Там я спокойно могу сделать mount -a и все заработает. Никаких специальных настроек не делал. Только в fstab указал пути в стиле /dev/mapper/vg-home /home и все.
Кто-нибудь может помочь?

★★★★★

а зачем тебе systemd на генте?

science ★★☆
()

а если монтировать не через fstab, а написать mount-юниты для этого?

anonymous
()

Никогда так не делал, даже не знаю. Попробуй проверить сфейлившиеся юниты (systemctl show home.mount) и посмотреть, чего конкретно они ждут. Ну и арчвики в помощь :)

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

Да, это нормально. Вместо слешей дефисы, вместо дефисов — их ASCII-коды.

Т. е. foo.mount ждал systemd-fsck@foo.service, и последний сфейлился?

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

Да, он ждал подключение устойчива lvm и его проверку. Вот ракетка помечена красным. Даже в режиме отладки в журнал ничего про фейл не поступает.

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

А lvm к этому моменту уже активирован/настроен/устройства появились? (Хотя, наверное, да, systemd ведь ждёт появления устройств.)

Можно скостылить: поставить ноль в поле pass в fstab для этих устройств...

А у тебя случаем монтируется не то же самое устройство, на котором fsck?

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

Да нет. Тут дело в том, что он одновременно ожидает проверки нескольких lvm разделов(на самом деле у меня ещё там 2 устройства). И все уперается в превышеное время ожидания у всех. Вручную все работает. Можно конечно схалтурить и не проверять, но не хотелось бы.

deterok ★★★★★
() автор топика
Ответ на: комментарий от val-amart

Побочный эффект попытки (со стороны разработчиков sd) сделать всё семантически корректно. Баги бывают везде.

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

А вот не знаю никакой инфы даже при дебаге нет. Только collection чего-то там не несущее информации.

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

Печально. А если запустить систему «как-нибудь» (записав ноль в passno для всех проблемных разделов), а потом запустить systemd-fsck@чтототам руками?

Можно ещё поправить /usr/lib/systemd/system/systemd-fsck@.service, приписав перед бинарником strace. :)

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

Хреново... Отключил проверку, а оно продолжает так себя вести... Сейчас узнатю что на этот раз...

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

Он тупо не может держаться устройств которые уже доступны...

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

В общем весь косяк в том, что он тупо ждёт диски которые уже давно существуют и непонятно чего ждёт вообще...

deterok ★★★★★
() автор топика

Подтвердилась плохая мысль. Проблема в том, что кажется systemd неправильно определяет состояние устройства. Возможно только из-за lvm и/или luks.

deterok ★★★★★
() автор топика

В генте нет юнитов lvm для системде. Могу свои подкинуть.

Хотя, некорректное состояние - это скорее из-за правил удева, но в апстриме генты вроде все нормально. Надо проверить, что правила удева лежат в нужном месте. Там бардак с virtual/udev и /lib /usr/lib. По крайней мере был

vasily_pupkin ★★★★★
()
Последнее исправление: vasily_pupkin (всего исправлений: 2)
Ответ на: комментарий от deterok

Тупой вопрос.

А они точно существуют? Когда всё отвалилось, или ты с нуля настраиваешь?

systemctl enable debug-shell — и у тебя на девятой, ЕМНИП, консоли есть оболочка.

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

Ясненько. Тогда, если на момент собственно ожидания они тоже есть, надо смотреть в удев, как и говорит vasily_pupkin. Видимо, он (удев) не оповещает systemd о появлении dm-устройств.

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

Поверил, во время ожидания все устройства есть и доступны.

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

В любом случае спасибо за преданный анализ.

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

Если бы я в нём ещё разбирался... Да и компа под рукой нет, пишу с холодильника.

Сколько у тебя разделов в device-mapper'е? Я бы попробовал udevadm test /sys/class/block/dm-X (X — порядковый номер; можно посмотреть, что в этой директории есть вообще) и поглядел на вывод, в частности на TAG= — там должно упоминаться «systemd».

А отвечает за udev-systemd коммуникацию следующий файл правил: /lib/udev/rules.d/99-systemd.rules (с точностью до /usr-префикса).

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

В генте нет юнитов lvm для системде. Могу свои подкинуть.

скачать бесплатно без смс? Поттеринг стайл :D

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

В общем завтра отрублю локальные fs и набросаю unit с mount -a. Костыль до решения проблемы.

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

Да. И монтируются корень и usr. Остольное я хотел на systemd взвалить... Udev тег ставит автоматом как я понял или его надо где-то прописать?

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

И в самом systemd перед монтированием он несколько раз делает(я так и не понял почему) lgchenge -aay --sysinit. Я уж не знаю что и делать но на подобной конфигурации на другом pc проблема присутствовала. Решал монтированием в initrd...

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

Я помню что у меня в генте с lvm+systemd была когда-то проблема, что удев хотел расставлять теги уже после того, как они были нужны. Причем, если во время зависона сделать systemctl daemon-reload, все начинало работать. Еще, надо в fstab пихать пути, которые /dev/mapper, а не которые симлинки, если что.

https://www.dropbox.com/s/rg2t5yma6mrpka4/lvm.7z

Вобщем, может пригодится

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

Может я что не так делалаю? У меня и половины нет. У меня initrd тупо монтирует / и /usr и передаёт управление systemd. Дальше я рассчитывал, что он сам все должен погрузить по fstab...

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

Чего нет? Переменных удев? Скорее всего с правилами ботвень. Нужно проверить, что префикс правильный, например, и на момент старта удева эти самые правила лежат в нужном месте..

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

Даканал! В общем что-то было с сигнатурами udev'а не так и их надо из initramfs было тянуть. Я сильно не разобрался и запилил dracut с нужными фишками. Заработало!

deterok ★★★★★
() автор топика
7 июня 2014 г.
Ответ на: комментарий от deterok

как лечил можешь описать? те же грабли:)

собираю systemd 212, перегружаю и монтирование lvm разделов не работает. местами ругается на удев правила.

пробовал регенерить initramfs, но там подвисает и не находит даже корень файловой системы.

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

решил проблему установкой пакета libblkid-devel.

пересобрал systemd 213.

сгенерил образ initramfs.

и все заработало)))

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