Отдельный /usr и udev-181

Вероятно, вы уже прочитали новость о том, что с новым sys-fs/udev-181 системы с отдельным разделом /usr будут работать некорректно.
Если нет, то вот вам последнее китайское предупреждение:

Цитата:
udev-181 размаскирован 2012-03-19.

Если у вас отдельный раздел /usr, то после обновления udev до версии >= 181 вы должны создать initramfs, который предварительно смонтирует /usr до загрузки основной системы.

Такой initramfs может быть создан с помощью >=sys-kernel/genkernel-3.4.25.1 или >=sys-kernel/dracut-017-r1. Если вы не хотите использовать эти утилиты, проверьте, что созданный вами вручную initramfs будет предварительно монтировать /usr.

Также, при использовании OpenRC вы должны обновить его до >= openrc-0.9.9.

Если вам интересно, почему такое могло произойти, то прочтите следующий документ:
http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken

Не забудьте также отключить проверку раздела в fstab (последния два поля должны быть 0 0), потому как проверка на ошибки должна проводиться силами initramfs.

(*)

Прошу создать голосование "У вас отдельный раздел /usr?" - Да|Нет.
Может оказаться, что эта новость актуальна только для пятерых гентушников. Мы попросим их назвать свои ники.

Троих я уже знаю :)

Троих я уже знаю :)

Не грусти, товарищ! Всё хорошо, beautiful good!

Ты приколись, но на генте

Ты приколись, но на генте есть сервера , и их больше пяти. Не все же красноглазят в институте, некоторые еще и работают

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Гента чай не убунта, разница

Гента чай не убунта, разница в сложности, времени установки и т.д. от варианта разбивки почти не зависит.
По этому у многих на своем компе, даже на десктопе может быть отдельный раздел под /usr.

У меня отдельный /usr, на

У меня отдельный /usr, на одной системе на LVM томе, на другой сжатый в squashfs образ.

/usr over LVM

Очинно интересует способ настройки ситуации /usr over LVM. dracut почему-то не справился.

Коллеги, выручите, отправьте в правильную ветку форума!

echo "DRACUT_MODULES=lvm" >>

echo "DRACUT_MODULES=lvm" >> /etc/make.conf

а потом

emerge dracut

и затем

man dracut.kernel

и поиск по lvm

как-то так
ЗЫ Сам не пробовал )

Все так, но... При разборе

Все так, но...

При разборе полетов выяснилось, что:

  • dracut --hostonly --modules "lvm usrmount" упирается Module "lvm" not found. Без --hostonly все нормально. При этом usrmount — все нормально. Ну и фиг с ним.
  • При загрузке фейлится найти рутовый раздел по UUID. root=/dev/sda2 в строке запуска ядра в grub ситуацию спасает. Подозрительно...
  • При попадании в rdshell:
    - ls /dev/vg — нет такой директории
    - ls /dev/mapper — только файл control
    - lvm vgchange -ay vg/dev/vg по прежнему не существует, /dev/mapper заполнен логическими томами, как положено
    - lvm vgexport vgWrite locks are prohibited with read-only locking. Can't get lock for vg.
    - mount /dev/mapper/vg-usr /sysroot/usr; exit — успешно продолжает загрузку системы

Собственно, целей у данного поста две: спросить совета, куда копать, чтобы по-человечески грузиться, ну и поделиться каким-никаким, но решением проблемы.

У меня работает просто dracut

У меня работает просто
dracut -a gensplash --force --xz "" ${kernel}

Никаких специфичных опций ядра я не делал.

Подозреваю, что проблема в том, что монтирование usr там сделано на скорую руку и довольно костыльно и ваша проблема в том, что рут не на lvm, поэтому дракут и не считает, что надо подключать lvm. Посмотрите его скрипты, но скорее всего так.

Посмотрел. И вот что

Посмотрел. И вот что выяснилось.

В скрипте /usr/lib/dracut/modules.d/90lvm/module-setup.sh, функция check_lvm, строка

eval $(udevadm info --query=property --name=$1|egrep '(DM_VG_NAME|DM_LV_NAME|DM_UDEV_DISABLE_DISK_RULES_FLAG)=')

полагается на наличие строк DM_VG_NAME|DM_LV_NAME в выхлопе команды, однако у меня их нет. Вот что выдает у меня команда выше:

# udevadm info --query=property --name=/dev/sda3
DEVLINKS=/dev/disk/by-id/ata-ST3250410AS_6RY1AJJS-part3
DEVNAME=/dev/sda3
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda3
DEVTYPE=partition
ID_ATA=1
ID_ATA_DOWNLOAD_MICROCODE=1
ID_ATA_FEATURE_SET_HPA=1
ID_ATA_FEATURE_SET_HPA_ENABLED=1
ID_ATA_FEATURE_SET_PM=1
ID_ATA_FEATURE_SET_PM_ENABLED=1
ID_ATA_FEATURE_SET_SECURITY=1
ID_ATA_FEATURE_SET_SECURITY_ENABLED=0
ID_ATA_FEATURE_SET_SECURITY_ERASE_UNIT_MIN=0
ID_ATA_FEATURE_SET_SMART=1
ID_ATA_FEATURE_SET_SMART_ENABLED=1
ID_ATA_SATA=1
ID_ATA_SATA_SIGNAL_RATE_GEN1=1
ID_ATA_SATA_SIGNAL_RATE_GEN2=1
ID_ATA_WRITE_CACHE=1
ID_ATA_WRITE_CACHE_ENABLED=1
ID_BUS=ata
ID_FS_TYPE=LVM2_member
ID_FS_USAGE=raid
ID_FS_UUID=wBc377-fano-LCMO-rnDd-SyLD-4ZiW-f3vbBf
ID_FS_UUID_ENC=wBc377-fano-LCMO-rnDd-SyLD-4ZiW-f3vbBf
ID_FS_VERSION=LVM2 001
ID_MODEL=ST3250410AS
ID_MODEL_ENC=ST3250410AS\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_PART_ENTRY_DISK=8:0
ID_PART_ENTRY_NUMBER=3
ID_PART_ENTRY_OFFSET=2120580
ID_PART_ENTRY_SCHEME=dos
ID_PART_ENTRY_SIZE=486271485
ID_PART_ENTRY_TYPE=0x8e
ID_PART_TABLE_TYPE=dos
ID_REVISION=3.AAC
ID_SERIAL=ST3250410AS_6RY1AJJS
ID_SERIAL_SHORT=6RY1AJJS
ID_TYPE=disk
LVM_SBIN_PATH=/sbin
MAJOR=8
MINOR=3
SUBSYSTEM=block
USEC_INITIALIZED=569612673

Видно что это LVM2_member, но ожидаемых строк нет. Что не так с моим томом? Есть мысли?

Однако! Если добавить

Однако!

Если добавить параметр rd.lvm.lv=vg/usr к строке загрузки ядра, то бутимся как полагается, dracut цепляет мой /usr over LVM.

На мой взгляд, все равно костыльно.

А все-таки если серьезно чего

А все-таки если серьезно чего делать тем у кого /usr вынесен?
Замаскировать и ждать допила, или создавать initramfs?
Замаскировать у меня что-то не получается.
Добавил в /usr/portage/profiles/package.mask
>sys-fs/udev-172
Он мне предлагает поставить sys-fs/udev-9999
Добавил:
=sys-fs/udev-9999, но эффекта ноль

насколько я понял, ждать

насколько я понял, ждать "допила" бесполезно. Назад пути нет.

mv /usr/lib/libkmod* /lib mv

mv /usr/lib/libkmod* /lib
mv /usr/bin/kmod /bin
cd /bin
ln -fs /bin/kmod lsmod
cd /sbin
for i in depmod insmod modinfo modprobe rmmod ; do ln -s /bin/kmod $i ; done
...
mv /usr/bin/udevadm /bin/
mv /usr/lib64/libgudev* /lib64/
mv /usr/lib64/libudev* /lib64/
cd /usr/lib64
ln -fs /lib64/libgudev-1.0.so.0.1 libgudev-1.0.so.0
ln -fs /lib64/libudev.so.0.9.3 libudev.so.0

и зачем это непотребство?

и зачем это непотребство?

Не грусти, товарищ! Всё хорошо, beautiful good!

Эх, ну а если подумать ?К

Эх, ну а если подумать ?

К примеру, у меня сейчас /usr на отдельном разделе, в ядро вкомпилены модули поддержки контроллера дисков и файловой системы, initrd мне вообще не нужен, стартует ядро, монтирует корневой раздел, дальше уже сама система монтирует /usr из записи /etc/fstab и происходит нормальная загрузку, с >=udev-181 меня обязывают использовать initrd, зачем он мне ?

Потому, что вдруг разработчики решили перенести часть нужных для запуска системы библиотек и исполняемых файлов с корня на /usr.

Если сделать указанные мной действия то initrd не понадобится.

.

А как на счет следующего шага - удаление /bin, /sbin ...?
Процесс-то уже пошел.

Что и в Gentoo ?

Что и в Gentoo ?

Увидимся после следующего

Увидимся после следующего обновления udev и kmod

Не грусти, товарищ! Всё хорошо, beautiful good!

Мда, если уж я эти действия

Мда, если уж я эти действия выполняю, то уж догадаюсь выполнить их и после обновления kmod и udev, так же можно ebuild`ы поправить., kmod я себе поправил, нужно с udev разобраться.

Очень этому рад, однако не

Очень этому рад, однако не надо советовать это делать другим. Опять же - увидимся, когда ты обновишься и забудешь обновить свои ебилды.

Не грусти, товарищ! Всё хорошо, beautiful good!

Лично ты можешь это не

Лично ты можешь это не использовать, я лишь указал на то, что есть способ как загрузить систему без initrd с отдельным /usr с новым udev и kmod, а как будет реализовано выполнение этих действий дело десятое, либо вручную, либо написан скрипт либо поправлен ebuild и добавлен флаг.

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

Если б все понимали, что

Если б все понимали, что делают и к чему это может привести...
Даже handbook не все читают целиком.

Вот только ты ничего про это

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

Не грусти, товарищ! Всё хорошо, beautiful good!

...

противоречит политике? это как?
меня вот тоже обламывает подобное положение вещей. /usr отдельно, initramfs ни для чего не нужен.
забудешь обновить свои ебилды? ::local, а уже если кому то потребуется более новая версия чем в локальном оверлее, то уже об этом явно скажут.

скрытный секс :)

А вот так вот,

А вот так вот, противоречит.
Наводящий вопрос: если в /usr появится ошибка ФС, что будет?

Не грусти, товарищ! Всё хорошо, beautiful good!

...

с этим согласен, но это имеет отношению только к командам mv и подобным, приведенных костиком. но опять же после этого он упомянул про правку ebuild. что как раз таки не противоречит политике.
хм ... отводящий ответ. будет что то другое, отличное от возникающих проблем до перехода на >udev-181. честно не понял, к чему вы клоните :)

скрытный секс :)

И где же эти ебилды-то?

И где же эти ебилды-то? Схоронены-забыты.

А выйдет вот что. Система может не загрузиться при следующей загрузке, так как /usr в rw, а проверку надо делать в ro. И чтобы проверить ФС и исправить ошибки, понадобится LiveCD. Что проще - сделать один раз по уму через initramfs или каждый раз трясущейся рукой запускать обновление, вспоминая, обновились там нужные ебилдики или нет, а потом еще ловить два часа простоя? Разработка на месте не стоит, и портаж уйдет далеко вперед, а вы будет ловить косяки со своих старых костылей. Подумайте над этим.

Не грусти, товарищ! Всё хорошо, beautiful good!

kmod-7.ebuild.patch https://b

...

ваша мысль понята мною, меры приняты :) наша мысль вами не понята, но не суть.
вы, как видно, в теме. тогда если не сложно (я всего лишь генто пользователь, не больше) объясните в чем смысл (техническая составляющая) переноса части нужных программ в /usr? где тут шаг к совершенствованию, к оптимизации, к улучшению жизни пользователей в конце то концов.
я, если честно, совсем не вижу в этом ни какого смысл, а лишь одни проблемы, мне, как пользователю, не нужные.

насчет ro/rw у separate /usr. /usr у меня всегда ro. да и как мне кажется, описанная вами проблема возникает при не правильном монтировании /usr из initramfs.

и что за маразм с FHS (правильная аббревиатура?), зачем эти качели с переносом чего либо из корня в /usr? если я правильно понял, то эти изменения по мотивам - http://www.gentoo.ru/node/24331

скрытный секс :)

Прочтите документ, который в

Прочтите документ, который в теме. Собственно никто пакеты в /usr не переносил, они там были изначально. Поменялся принцип обнаружения устройств ядром. Теперь (начиная с ядра 2.6.32) ядро лишь информирует userspace через udev, что есть такие-то устройства, которые пользователь может получить. Плюсы от этого следующие: упрощение загрузки с точки зрения пользователей, упрощенное первичное обнаружение (coldplug) и горячее обнаружение (hotplug) устройств. И нужный функционал для этого появился как раз в udev-180.
А в результате имеет то, что имеем. Для ранней загрузки нужны устройства в /dev, а устройствами заведует udev, а udev на отдельном разделе, а раздел не смонтирован, потому что он на устройстве, а для устройств нужен /dev...

Не грусти, товарищ! Всё хорошо, beautiful good!

...

спасибо за разъяснение. все понятно :)

скрытный секс :)

A если в / появится ошибка

A если в / появится ошибка ФС, что будет?
Вопрос не имеет смысла... - будет ошибка - найдем решение. :)

Проблема не в этом - просто поменялся механизм загрузки... видимо все же придется делать инитрд, другого корректного Юникс-вэй решения я не вижу...

(*)

Друзья, я просил создать опрос. А не отписываться всем пятерым под моим первым постом. Зачем друг друга троллить и проповедовать, ругаться и обзываться и доводить до ламината? Просто опрос. Можно?

Ну результаты очевидны же

Ну результаты очевидны же будут - 98 % не используют /usr как отдельный раздел.

Не грусти, товарищ! Всё хорошо, beautiful good!

У меня на 3-х компах (2

У меня на 3-х компах (2 десктопа и домашний NAS) /usr вынесен отдельно (LVM использую только на NAS). Эще на 2-х (десктоп сотрудника и сервер БД) - не вынесен. Правда везде initramfs используется. Так что 98% - слишком уж оптимистично (особенно если считать именно людей, а не системы)

С ужасом жду, когда оно

С ужасом жду, когда оно стабилизируется — администрирую удаленно 5 серверов на Gentoo в конфиге /usr over LVM. А на одном еще и over mdraid. Так что 98% (кстати, при том, что такое разбиение рекомендовано в хендбуке) как минимум с потолка.

А ебилдов ты тоже ждешь ? уш

А ебилдов ты тоже ждешь ? уш не с лора ли ты ? :)

Ну а пока вы ждете - у нас все продумано - DRACUT_MODULES="ssh net" ;) для совсем уж бомжей,куча ipmi для народа побогаче и KVM over IP для вменяемых админов, ценящих деньги работодателя

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

(*)

Рекомендовано в хендбуке? Так надо читать не только advantages но и disadvantages as well.

98% не с потолка, не верите - можете устроить опрос, ой, постойте, так я же...

Ну так если LVM и MDRAID - то

Ну так если LVM и MDRAID - то наверняка же и initramfs есть. Так что проблем быть не должно. Или я что-то неправильно понял?

Просто опрос. Можно? Пока

 Просто опрос. Можно?

Пока низзя. Не показана значимость и необходимость.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

(*)

Okay.
Спасибо winterheart и за новость и за оценку в процентах - оценке верю, и на опросе более не настаиваю.
Обращаю внимание тех 2% пользователей, которых коснулась эта новость - если вам не хочется создавать initramfs, попробуйте https://wiki.gentoo.org/wiki/Mdev

Ты конечно молодец, но оно НЕ

Ты конечно молодец, но оно НЕ работает для тех конфигов, на которые рассчитано сообщение .
я надеюсь, что ты сам догадаешся почему .

П.С Без обид, но набор реально используемых конфигураций загрузки гораздо шире того, что , судя по постам, ты себе представляешь.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

У меня на ноуте например gpt

У меня на ноуте например

gpt -> 2 раздела на диске bios_grub(ef02) и luks -> luks -> lvm2 -> система (8 lvm2 томов)

Все это бутается с grub2

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

У меня n-цать компов на

У меня n-цать компов на которые я ставил генту, все с вынесенным /usr

Грустно... еще один шаг в

Грустно... еще один шаг в сторону Windows-way... :(

С какого перепугу? у меня нет

С какого перепугу? Кстати у меня нет отдельного /usr

OS: Gentoo KDE4
Kernel: x86_64 Linux 4.0.5-gentoo
CPU: Pentium Dual-Core CPU E6500 @ 2.933GHz
GPU: GeForce GT 630/PCIe/SSE2
RAM: 3956MB
Since 2011

У уважаемого SysA все что

У уважаемого SysA все что сложнее бсд 95-го года - виндовс вей, имхо .

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

В проблему не вникал, но меня

В проблему не вникал, но меня тоже совсем не радует, что в отсутствии usr udev не стартанет.

У уважаемого SysA все что

У уважаемого SysA все что сложнее бсд 95-го года - виндовс вей, имхо .

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

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

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