[sisyphus] systemd и /usr на отдельном разделе

Alexey Shabalin a.shabalin на gmail.com
Вт Июл 2 18:01:28 MSK 2013


17 июня 2013 г., 12:50 пользователь Aleksey Avdeev написал:

> 17.06.2013 02:30, Alexey Shabalin пишет:
> > 16 июня 2013 г., 23:30 пользователь Aleksey Avdeev  написал:
> >
> >     11.06.2013 22:10, Alexey Shabalin пишет:
> >     > 11 июня 2013 г., 11:11 пользователь Sergei Epiphanov  написал:
> >     >
> >     >     Исторически сложилось, что у меня на всех компьютерах каталог
> /usr
> >     >     находится
> >     >     на отдельном разделе, как того требовала политика партии.
> Сейчас с
> >     >     приходом
> >     >     systemd оказалось, что это неправильная политика и необходимо
> >     объединить
> >     >     корневой и /usr вместе. Недавно я наткнулся на проблему,
> >     связанную с
> >     >     этим:
> >     >
> >     > Эта политика(объединить корневой и /usr вместе) касается федоры, и
> к
> >     > ALTLinux отношения не имеет.
> >
> >       У меня, при /usr отдельным разделом systemd нормально систему
> >     загрузить не может: LVM поднимается, / (на LVM) монтируется, а /usr,
> >     /var и /home (все тоже на LVM) остаются не смонтированными.
> Приходится
> >     их монтировать вручную. Как поправить пока не знаю.
> >
> > Выйду из отпуска, воспроизведу ситуацию в виртуалке.
>
>   Спасибо заранее.
>
> Вышел из отпуска. Проблему воспроизвел.
Дело в следующем.
initrd за собой удаляет базу udev, и никто её больше не наполняет заного.
попробуйте закоментировать "rm -rf $udev_db"
в /usr/share/make-initrd/data/lib/initrd/modules/090-stopudev и
перегенерить initrd - должно запуститься.

systemd-udev-trigger.service запускается с фильтром только на добавляемые
устройства (--action=add).
Поэтому в udev неполная информация об lvm-дисках, и смонтироваться
самостоятельно они не могут.
Раньше я удалял --action=add из systemd-udev-trigger.service, но была бага
https://bugzilla.altlinux.org/show_bug.cgi?id=28468
и я вернул обратно.

Надо что-то придумывать, как чинить:
- копировать базу udev из initrd в систему (legion@ против - обоснование
что в initrd и в системе udev может быть сильно разных версий, или
реализовывать обновление initrd при обновлении udev)
- удалить --action=add из systemd-udev-trigger.service (тогда надо как-то
чинить #28468)
- нарисовать еще один сервис, запускающийся перед
systemd-udev-trigger.service без --action=add
- ну и совсем кардинально :) - засунуть systemd в initrd(всякие *.service
для этого уже есть в апстриме, возможно еще что-то понадобиться - можно
посмотреть в dracut), копировать базу udev в систему, обновлять initrd при
обновлении systemd.


-- 
Alexey Shabalin
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/sisyphus/attachments/20130702/7e7f1ebd/attachment.html>


Подробная информация о списке рассылки Sisyphus