LINUX.ORG.RU

Gentoo udev /usr


0

2

Читал тут новости пришедшие с синком.

tl;dr
Если у вас /usr отдельным разделом и нету initrd, то после апдейтов udev'а от 19 марта система станет небутабельной.

Лично я пользуюсь genkernel'ом и мой /usr не отделён от корня, зависимость есть, брат жив.

2012-03-16-udev-181-unmasking
  Title                     udev-181 unmasking
  Author                    William Hubbs <williamh@gentoo.org>
  Posted                    2012-03-16
  Revision                  1

udev-181 is being unmasked on 2012-03-19.

This news item is to inform you that once you upgrade to a version of
udev >=181, if you have /usr on a separate partition, you must boot your
system with an initramfs which pre-mounts /usr.

An initramfs which does this is created by
>=sys-kernel/genkernel-3.4.25.1 or
>=sys-kernel/dracut-017-r1. If you do not want to use these tools, be
sure any initramfs you create pre-mounts /usr.

Also, if you are using OpenRC, you must upgrade to >= openrc-0.9.9.

For more information on why this has been done, see the following URL:
http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
★★

Последнее исправление: dismal_faun (всего исправлений: 1)

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

Ога, и вполне популярный /usr на отдельном разделе :D

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

Я таки не понял, почему в моей генте поттерингопроблемы? Они решили засунуть удава в /usr? Нахуа?

tiandrey ★★★★★
()

поццеринг тянет свои мерзкие потные ручонки в мою генту!!!!

УЖОС

Harald ★★★★★
()

не при делах здесь Поттеринг
хоть и мудак он, конечно

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

=udev-1.8.1 требует kmod, бинарники которого устанавливаются на usr, возможно если их скопировать в /bin (/sbin) этого будет достаточно для нормальной работы udev этой версии.

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

Чисто из праздного интереса, если я сделаю /lib/modules на отдельном разделе, система перестанет грузиться?

anonymous
()

Если /usr не на отдельном разделе, обновлять OpenRC не нужно?

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

Чисто из праздного интереса, если я сделаю /lib/modules на отдельном разделе, система перестанет грузиться?

Система загрузится, но половина железа работать не будет.

Удевопроблемы с отдельным /usr не надуманы, и даже Поттеринг тут ни при чём, потому что я столкнулся с ними ещё года 2 назад, когда systemd ещё и в помине не было. У меня был bluetoothd, который активировался через udev при включении адаптера. И при загрузке с воткнутым адаптером bluetoothd не стартовал, потому что лежал в /usr/sbin на размонтированном разделе.

gentoo_root ★★★★★
()

Может наконец запилят systemd, а то мне лень вручную все это ставить.

vurdalak ★★★★★
()

Я вот только не понял: при том раскладе, что в новости, genkernel надо будет забыть и юзать dracut?

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

А если bluetoothd поместить в ранлевел default?

Тогда он будет запускаться всегда, даже если адаптер не воткнут. Я тогда так и сделал, но это неприятно, когда работает лишний демон без надобности и ничего не делает. А с активацией по udev он бы запускался только тогда, когда он нужен, т.е. когда воткнут адаптер.

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

Я вот только не понял: при том раскладе, что в новости, genkernel надо будет забыть и юзать dracut?

An initramfs which does this is created by

=sys-kernel/genkernel-3.4.25.1 or
=sys-kernel/dracut-017-r1.

Initramfs, которая делает это, может быть создана с помощью genkernel или dracut.

Можно использовать любой из этих двух инструментов, хотя я уже давно запилил себе свою initramfs.

gentoo_root ★★★★★
()

Срочно замаскировал это сраное говно.

И не вижу никаких проблем: делаем вручную /dev/, заполняем его всевозможными специальными файлами на все случаи жизни и не используем вовсе этот галимый udev. Жили же и без него, и без devfs.

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

Да, проблема не только в этом, libkmod тоже находится в /usr/lib, кроме того:
1. udevadm перемещён на usr, раньше находился в корне (/bin) и на него была ссылка с /usr/bin
2. libudev теперь находится в /usr/lib, раньше была в /lib и с /usr/lib была ссылка на /lib.

Не понятно зачем они это сделали, оставалось бы ссылкой и пусть, даже если идёт подготовка к совмещению /usr/bin с /bin и прочего.

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

И не вижу никаких проблем

Я подскажу: приносишь домой новое устройство (USB-модем, веб-камеру, флешку, что угодно вообще) и не знаешь, что с ним делать, чтобы оно заработало, потому что нужного файла в /dev нет. В лучшем случае (флешка) он будет в /dev заранее создан в избыточном количестве. В худшем — придётся руками делать то, что сделал бы udev.

Лучше уж использовать альтернативу — hotplugd.

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

>=udev-1.8.1 требует kmod, бинарники которого устанавливаются на usr

А если просто пропатчить инсталлятор kmod'а?

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

Пошли им лучше патчи для исправления кала.

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

Хм, зачем патчить, можно ebuild поправить, добавить флаг, указывающий что /usr separated и что нужно библиотеки kmod разместить не в /usr/lib а в /lib, /usr/bin/kmod разместить в /bin или /sbin и изменить ссылки на rmmod, depmod, modinfo, lsmod, modprobe и insmod вместо /usr/bin/kmod на /sbin/kmod.

Собственно, у меня /usr на отдельном lvm томе, ради теста поставил kmod и сделал выше описанные действия вручную, всё работает, система нормально загружается.

Думаю если обновить udev и выполнить аналогичные действия с его библиотекой и бинарником udevadm то так же всё будет нормально.

Возможно я чего-то не учёл, сейчас попробую обновить udev до 1.8.1.

kostik87 ★★★★★
()

Блин, ну что за идиотизм! Хоть семерочку ставь, честное слово…

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

Я подскажу: отложить монтирование /dev/ до окончания загрузки, когда и /usr, и прочее становятся доступными.

/usr не станет доступным, если недоступен /dev.

gentoo_root ★★★★★
()
Ответ на: комментарий от O02eg
echo 'EXTRA_ECONF="--prefix /"' >> /etc/portage/env/sys-apps/kmod

можете тестить

qnikst ★★★★★
()

А почему бы просто не воспользоваться initramfs? Что за упертость? Вот уж действительно, прямо как в соседнем топике: «я не буду пользовать initramfs, потому что этого хочет поттеринг, а поттеринг - мудак»

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

А почему бы просто не воспользоваться initramfs?

Нахера? Я понимаю оправданность этих костылей для livecd, которые должны работать в неожиданных условиях, или для дистрибутивных ядер, где ядро собирается методом make all-modules. Но у меня самосборное ядро, в которое вкомпилировано все, что нужно для старта безо всяких костылей. ЗАЧЕМ МНЕ КОСТЫЛИ???

P. S. А Поттеринг все равно moodaque.

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

1) Поттеринг всё равно мудак. 2) В этом вашем initramfs слишком много мусора. 3) Я лично не хочу, чтобы линукс превращался в систему костылей и подпорок.

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