[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