Собрал с make-initrd2-2.0.0-alt1 сперва rescue.iso; при загрузке на фоне последней синей строчки propagator: sh: udevadm: command not found Далее при загрузке собственно initrd: init-bottom: Root fs is squashfs init-bottom: Remounting / with aufs sed: missing command sed: missing command sed: missing command init-bottom: Root fs overlayed with aufs sed: missing command В остальном на первый взгляд порядок. Собрал и icewm.iso (инсталятор); при загрузке исошки аналогично rescue.iso, только ещё заметил: Spawning init ... done. /bin/grep: /proc/cmdline: No such file or directory Загрузка установленной системы проходит нормально, только на глаз заметно дольше грузится сам initrd. PS: для сборки потребовались мелкие правки в mkimage-profiles (причёсываю) и чуть другой bootloader-utils.spec (http://webery.altlinux.org/task/164335).
Это кто-то трогал propagator (не будем показывать пальцем) и не всё пошло ему на пользу. http://git.altlinux.org/gears/p/propagator.git?p=propagator.git;a=blob;f=cdrom.c;h=e5a3de141303c4f58953538d5f89a535e2ec4fae;hb=35bf95867adddca7d81d07047ffc601821a7afc4#l202 http://git.altlinux.org/gears/p/propagator.git?p=propagator.git;a=blob;f=disk.c;h=5c2bc57f8ac8f282430c71b5a6c440e9245d7607;hb=35bf95867adddca7d81d07047ffc601821a7afc4#l339 Эти сделаны из расчёта, что у вас есть PATH. Когда вы init это не так. Варианта решения два: * Я добавлю скрипт, который обернёт propagator и выставит ему env; * Вы добавите в propagator PATH и остальной env, который ему нужен. Второй вариант мне кажется более разумным.
(В ответ на комментарий №1) > Это кто-то трогал propagator (не будем показывать пальцем) Да что уж там, показывай -- и так все знают, какой из меня сишник. Спасибо.
Также там несколько устарели пляски вокруг /dev/.udev/{db,queue}
Проверил твой http://git.altlinux.org/people/legion/packages/propagator.git?p=propagator.git;a=commitdiff;h=bc936fd7c2602099173c859cbb6e221aefc030f6 -- "sh: udevadm: command not found" пропало (остальное, понятно, на месте); спасибо!
PS: при загрузке собранного с таким propagator и установленного icewm.iso сообщений об ошибках во время работы initrd _не_ наблюдаю вовсе, а вот при старте собственно основной системы перед запуском udev пробежало: mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links
(In reply to comment #5) > PS: при загрузке собранного с таким propagator и установленного icewm.iso > сообщений об ошибках во время работы initrd _не_ наблюдаю вовсе, а вот при > старте собственно основной системы перед запуском udev пробежало: > > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links Ты говоришь про живую систему уже ? Можно исошку ?
(In reply to comment #6) > > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links > Ты говоришь про живую систему уже ? Угу, в смысле установленную и загружающуюся. > Можно исошку ? https://yadi.sk/d/VYuf3jTTrmbxE (361M)
(В ответ на комментарий №5) > PS: при загрузке собранного с таким propagator и установленного icewm.iso > сообщений об ошибках во время работы initrd _не_ наблюдаю вовсе, а вот при > старте собственно основной системы перед запуском udev пробежало: > > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links Это же сообщение сейчас на системе с текущим сизифом на ядрах 4.9.2x-std-def https://forum.altlinux.org/index.php?topic=38583.0
(В ответ на комментарий №5) > при старте собственно основной системы перед запуском udev пробежало: > > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links В системах на sysv будут сломаны права на /dev/pts/N который псевдотерминал, т.е. X-терминал. Права должны быть user tty При ошибке mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links права будут user user ИМХО: Нужно убирать make-initrd-busybox откатом make-initrd на версию 0.8.14. Ставить make-initrd в hold необязательно. Но после отката make-initrd на версию 0.8.14, удалять make-initrd-busybox и блокировать его установку перед dist-upgrade обязательно: # cat /etc/apt/preferences Package: make-initrd-busybox Pin: version 0.8.14* Pin-Priority: -1 Заодно и пакеты make-initrd* 'будут СОХРАНЕНЫ'. Если по version и Pin-Priority не тормознуть установку make-initrd-busybox при установленном make-initrd версии 0.8.14, то после перегенерации initrd.img, на старте системы вывалит горы повторений ошибки MESSAGES и логгирование будет сломано. Без кастомной пересборки make-initrd, ИМХО тут два варианта: - или мириться со сломанными правами /dev/pts/N - или откатывать make-initrd на версию 0.8.14 и по version и Pin-Priority блокировать установку make-initrd-busybox.
(В ответ на комментарий №9) > В системах на sysv будут сломаны права на /dev/pts/N > который псевдотерминал, т.е. X-терминал. > Права должны быть > > user tty Эти права должен выставлять udev. В системе с systemd или sysv. > При ошибке > > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links ls -la /dev/pts ? > Нужно убирать make-initrd-busybox откатом make-initrd на версию 0.8.14. Утилита mount изпользуется из util-linux, а не из busybox. С чего вы взяли, что эта проблема из-за make-initrd-busybox ?
(В ответ на комментарий №10) > (В ответ на комментарий №9) > > В системах на sysv будут сломаны права на /dev/pts/N > > который псевдотерминал, т.е. X-терминал. > > Права должны быть > > > > user tty > > Эти права должен выставлять udev. В системе с systemd или sysv. > > > При ошибке > > > > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links > > ls -la /dev/pts ? > $ ls -la /dev/pts итого 0 drwxr-xr-x 2 root root 0 апр 17 2017 . drwxr-xr-x 17 root root 3480 апр 17 16:44 .. crw------- 1 user user 136, 0 апр 17 2017 0 c--------- 1 root root 5, 2 апр 17 2017 ptmx Должно быть: $ ls -la /dev/pts ... crw--w---- 1 user tty 136, 0 апр 17 2017 0 ... $ grep tty /etc/group tty:x:5:tester,user $ grep pts /etc/fstab devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0
При установленном $ rpm -qa|grep make-initrd make-initrd-lvm-0.8.14-alt1.i586 make-initrd-luks-0.8.14-alt1.i586 make-initrd-0.8.14-alt1.i586 make-initrd-mdadm-0.8.14-alt1.i586 make-initrd-plymouth-0.8.14-alt1.i586 make-initrd-devmapper-0.8.14-alt1.i586 $ cat /etc/apt/preferences Package: make-initrd-busybox Pin: version 0.8.14* Pin-Priority: -1 $ grep tty /etc/group tty:x:5:tester,user $ grep pts /etc/fstab devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0 права $ ls -la /dev/pts итого 0 drwxr-xr-x 2 root root 0 апр 17 2017 . drwxr-xr-x 17 root root 3480 апр 17 17:06 .. crw--w---- 1 user tty 136, 0 апр 17 17:10 0 c--------- 1 root root 5, 2 апр 17 2017 ptmx Ошибки нет: mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links При dist-upgrade обновления make-initrd* не будет. Pin-Priority блокирует установку make-initrd-busybox и слом MESSAGES на загрузке.
(В ответ на комментарий №11) > $ ls -la /dev/pts > итого 0 > drwxr-xr-x 2 root root 0 апр 17 2017 . > drwxr-xr-x 17 root root 3480 апр 17 16:44 .. > crw------- 1 user user 136, 0 апр 17 2017 0 > c--------- 1 root root 5, 2 апр 17 2017 ptmx Скрипт /etc/rc.d/init.d/udevd делает какие-то странные манипуляции с /dev/pts: http://git.altlinux.org/gears/s/systemd.git?p=systemd.git;a=blob;f=udevd.init;h=d42717a435c2400e24462a2c0b0ce6beca4c20cb;hb=f7c4653220e7b262687f4133c47c8768e27c78b3#l70 2shaba@: Алексей не подскажите, что должна делать attach_pts_filesystem ?
Валер, может ты знаешь что это за функции такие в /etc/rc.d/init.d/udevd ?
Там же все и так ясно и понятно... проверяем, если не смонтировано, монтируем
(В ответ на комментарий №15) > Там же все и так ясно и понятно... проверяем, если не смонтировано, монтируем Не совсем так. В 82 строке если мы нашли в /proc/mounts /dev/pts мы делаем: mount -n --move pts "$udev_root"/pts и вот это мне не очень понятно. Зачем что-то двигать, если он уже смонтировано ? Я не уверен на 100%, кажется эта ошибка: mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links как раз от этой операции т.к. мы двигаем /dev/pts в /dev/pts.
а кто и зачем запускает /etc/rc.d/init.d/udevd?
(В ответ на комментарий №12) > При установленном > > > $ rpm -qa|grep make-initrd > make-initrd-lvm-0.8.14-alt1.i586 > make-initrd-luks-0.8.14-alt1.i586 > make-initrd-0.8.14-alt1.i586 > make-initrd-mdadm-0.8.14-alt1.i586 > make-initrd-plymouth-0.8.14-alt1.i586 > make-initrd-devmapper-0.8.14-alt1.i586 > > > $ cat /etc/apt/preferences > Package: make-initrd-busybox > Pin: version 0.8.14* > Pin-Priority: -1 > > > $ grep tty /etc/group > tty:x:5:tester,user > > > $ grep pts /etc/fstab > devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0 > > > права > > $ ls -la /dev/pts > итого 0 > drwxr-xr-x 2 root root 0 апр 17 2017 . > drwxr-xr-x 17 root root 3480 апр 17 17:06 .. > crw--w---- 1 user tty 136, 0 апр 17 17:10 0 > c--------- 1 root root 5, 2 апр 17 2017 ptmx > > > Ошибки нет: > mount: mount /dev/pts on /dev/pts failed: Too many levels of symbolic links > > > При dist-upgrade обновления make-initrd* не будет. > Pin-Priority блокирует установку make-initrd-busybox и слом MESSAGES на > загрузке. Если в этой ситуации make-initrd-busybox не удалять и не прибивать его инсталляцию по Pin-Priority, то на загрузке в tty1 вывалит пачку таких сообщений: logger: unrecognized option '--socket-errors=off' BusyBox v1.24.2 (2017-03-16 10:50:56 UTC) multi-call-binary, Usage: logger [OPTIONS] [MESSAGE] Write MESSAGE (or stdin) to syslog -s Log to stderr as well as the system log -t TAG Log using the specified tag (defaults to username) -p PRIO Priority (nimeric or facility.level pair)
(В ответ на комментарий №17) > а кто и зачем запускает /etc/rc.d/init.d/udevd? На системах sysv он используется. Я конечно знаю быстрое решение: не переносить /dev/pts из initrd и тогда всё будет работать. Но в данном случае в налицо ошибка в init-скрипте. Ведь даже grep делается с udev_root и последующий mount --move просто не имеет смысла. Это могло бы быть нужно если бы мы нашли pts вне udev_root и тогда можно понять желание переместить его на правильное место.
(В ответ на комментарий №18) > > При dist-upgrade обновления make-initrd* не будет. > > Pin-Priority блокирует установку make-initrd-busybox и слом MESSAGES на > > загрузке. > > Если в этой ситуации make-initrd-busybox не удалять и не прибивать его > инсталляцию по Pin-Priority, то на загрузке в tty1 вывалит пачку таких > сообщений: > > > logger: unrecognized option '--socket-errors=off' > BusyBox v1.24.2 (2017-03-16 10:50:56 UTC) multi-call-binary, > > Usage: logger [OPTIONS] [MESSAGE] > > Write MESSAGE (or stdin) to syslog > > -s Log to stderr as well as the system log > -t TAG Log using the specified tag (defaults to username) > -p PRIO Priority (nimeric or facility.level pair) Пожалуйста хватит. Либо пользуйтесь новой версией make-initrd, либо откатывайте его весь и удаляйте make-initrd-busybox. Совершенно очевидно, что работать то, что вы делаете нормально не будет.
(В ответ на комментарий №20) > Пожалуйста хватит. Либо пользуйтесь новой версией make-initrd, либо откатывайте > его весь и удаляйте make-initrd-busybox. Совершенно очевидно, что работать то, > что вы делаете нормально не будет. Оно _уже_ работает без ошибок и сломов и не требует дальнейшего вмешательства пользователя. Извините что потревожил.
(В ответ на комментарий №21) > Оно _уже_ работает без ошибок и сломов и не требует дальнейшего вмешательства > пользователя. > Извините что потревожил. Ну если откат чего-либо для вас решение проблемы, то вам виднее.
(In reply to comment #22) > (В ответ на комментарий №21) > > Оно _уже_ работает без ошибок и сломов и не требует дальнейшего вмешательства > > пользователя. > > Ну если откат чего-либо для вас решение проблемы, то вам виднее. Пользователь не обязан быть догадливым. В комментарии #18 показал, что ожидает пользователя в недалёком будущем, если он воспользуется советом про откат и удаление. hold не решает полностью проблему. И удаление make-initrd-busybox не решает полностью проблему. Решает сразу все проблемы: - откат по версии на 27 марта на версию 0.8.14, удаление свежего make-initrd-busybox и его блокировка по Pin-Priority. Соблюдение последовательности действий строго обязательно. В этом случае hold пакетов make-initrd* становится лишней сущностью, а блокировка make-initrd-busybox по Pin-Priority решит сразу две проблемы. Всё это будет работать если зависимости не поменяются. Но если вероятность этого существует, то лучше использовать и hold и Pin-Priority. Чтобы пользователь решил проблему один раз и мог про неё забыть навсегда. Это я и пытался объяснить в комментарии #18.
make-initrd-2.0.4-alt1 -> sisyphus: * Wed Apr 19 2017 Alexey Gladkov <legion@altlinux> 2.0.4-alt1 - initrd-cp: + Remove existing destination file before copy - luks: + Add access to console + Add gpg encryption for keyfile - initrd: + Do not mount /dev/pts (ALT#32068)
Лёш, спасибо!