Проблема эта, видимо давно, но не проявлялась из-за бага 35941. Теперь же после его исправления, если включена фича plymouth в /etc/initrd.mk образ не генерируется, иногда: [root@localhost ~]# PS1="(CHROOT) $PS1" chroot /mnt/destination/ /bin/bash (CHROOT) [root@localhost /]# mount /proc mount: /proc: proc already mounted on /proc. (CHROOT) [root@localhost /]# mount /dev/pts (CHROOT) [root@localhost /]# mount -t sysfs none /sys mount: /sys: none already mounted or mount point busy. (CHROOT) [root@localhost /]# make-initrd Config file: /etc/initrd.mk Generating module dependencies on host ... Creating initrd image ... Adding plymouth support ... Adding modules ... add-module: Unable to handle pattern: /lib/modules/4.14.96-std-def-alt1/misc/vboxvideo.ko make: *** [/usr/share/make-initrd/features/add-modules/rules.mk:10: add-modules] Ошибка 1 make: *** [/usr/share/make-initrd/mk/make-initrd.mk:29: all] Ошибка 1 (CHROOT) [root@localhost /]# ls lib/modules/4.14.96-std-def-alt1/misc/vboxvideo.ko lib/modules/4.14.96-std-def-alt1/misc/vboxvideo.ko
<(CHROOT) [root@localhost /]# mount -t sysfs none /sys <mount: /sys: none already mounted or mount point busy. То, что /sys не примонтировался не критично, когда я чрутился?
> То, что /sys не примонтировался не критично, когда я чрутился? Критично.
Покажите /etc/initrd.mk
В загрузившейся системе, тоже обломился. А в rescue, в котором нет vboxvideo.ko сгенерировался успешно. Загрузился с plymouth. При этом проявился баг квадратики вместо кириллицы в консоли. (В ответ на комментарий №3) > Покажите /etc/initrd.mk cat /etc/initrd.mk # trying to detect modules and features to access to root volume AUTODETECT = all MODULES_PRELOAD += autofs4 FEATURES += plymouth
Чего-то у меня не получается воспроизвести. # grep -v ^# /etc/initrd.mk AUTODETECT = all FEATURES += plymouth MODULES_ADD += vboxvideo # make-initrd -b /tmp -k 4.14.96-std-def-alt1 Config file: /etc/initrd.mk Creating initrd image ... Adding plymouth support ... Adding modules ... Adding rescue modules ... Adding module dependencies ... Generating module dependencies in image ... Adding initrd shell support (shell mode) ... Packed modules: ata_generic ata_piix crc16 crc32c_generic crc32c-intel ehci-hcd ehci-pci evdev ext4 fscrypto hid hid-apple hid-appleir hid-generic input-leds intel-agp intel-gtt jbd2 libata mbcache pata_acpi scsi_mod sd_mod sis-agp usb-common usbcore usbhid usbkbd vboxvideo via-agp Sorting sysvinit services ... Packing image to archive ... Writing build info files ... Compressing image ... Installing image ... Unpacked size: 23M Image size: 7,3M Removing work directory ... Image is saved as /tmp/initrd-4.14.96-std-def-alt1.img Я пробовал как с MODULES_ADD так и без него. Образ нормально создаётся.
А как пробовали? Я пробую устанавливать регулярку, заглядываю в /boot установленной системы, вижу, initrd образа нет, чрутюсь, пробую make-initrd. Регулярки здесь: http://nightly.altlinux.org/sisyphus/snapshots/20190129/
(In reply to comment #6) > А как пробовали? Поставил ядро из сизифа, поставил модуль для virtualbox, создал образ для указанного ядра. kernel-image-std-def-4.14.96-alt1.x86_64 kernel-modules-virtualbox-addition-std-def-5.2.24-alt1.265824.1.x86_64 # rpmquery -a make-initrd\* make-initrd-2.2.8-alt1.x86_64 make-initrd-plymouth-2.2.8-alt1.x86_64 make-initrd-busybox-1.28.1-alt1.x86_64 make-initrd-ucode-2.2.8-alt1.x86_64 В такой конфигурации образ создаётся, plymouth внутри есть, с vboxvideo проблем не вижу. > Я пробую устанавливать регулярку, заглядываю в /boot > установленной системы, вижу, initrd образа нет, чрутюсь, пробую make-initrd. > Регулярки здесь: http://nightly.altlinux.org/sisyphus/snapshots/20190129/ Я ничего не знаю про регулярки и что они делают там у себя внутри.
(В ответ на комментарий №7) > (In reply to comment #6) > # rpmquery -a make-initrd\* > make-initrd-2.2.8-alt1.x86_64 > make-initrd-plymouth-2.2.8-alt1.x86_64 > make-initrd-busybox-1.28.1-alt1.x86_64 > make-initrd-ucode-2.2.8-alt1.x86_64 > А у меня поболее: # rpmquery -a make-initrd\* make-initrd-busybox-1.28.1-alt1.x86_64 make-initrd-ucode-2.2.8-alt1.x86_64 make-initrd-luks-2.2.8-alt1.x86_64 make-initrd-lvm-2.2.8-alt1.x86_64 make-initrd-2.2.8-alt1.x86_64 make-initrd-mdadm-2.2.8-alt1.x86_64 make-initrd-devmapper-2.2.8-alt1.x86_64 make-initrd-plymouth-2.2.8-alt1.x86_64 Попробуйте с таким набором.
Я нашёл причину. Обламывается в add-module вот здесь: if [ -n "${KERNEL_MODULES-}" ]; then find "$KERNEL_MODULES" -type f | { grep -E -e "$n" || :>"$workdir/abort"; } | По той причине, что $KERNEL_MODULES = /lib/modules/4.14.96-std-def-alt1/kernel а vboxvideo.ko у нас лежит здесь: /lib/modules/4.14.96-std-def-alt1/misc/ То есть нужно изменить путь поиска или добавить ещё одно место для поиска.
(In reply to comment #9) > Я нашёл причину. > Обламывается в add-module вот здесь: > if [ -n "${KERNEL_MODULES-}" ]; then > find "$KERNEL_MODULES" -type f | { grep -E -e "$n" || :>"$workdir/abort"; } | > По той причине, что $KERNEL_MODULES = /lib/modules/4.14.96-std-def-alt1/kernel > а vboxvideo.ko у нас лежит здесь: > /lib/modules/4.14.96-std-def-alt1/misc/ > > То есть нужно изменить путь поиска или добавить ещё одно место для поиска. Нет, дело не в этом. Модули добавляются не только оттуда. Как я уже говорил, я сгенерировал образ с этим модулем без ошибок: # initrd-ls /tmp/initrd-4.14.96-std-def-alt1.img |grep vboxvideo 1 -rw-r--r-- 1 0 0 100168 Jan 16 16:14:41 2019 ./lib/modules/4.14.96-std-def-alt1/misc/vboxvideo.ko Приложите лог от: make-initrd -v
Created attachment 7973 [details] лог неудачного make-initrd в virtualbox
Я понял в чём проблема.
(В ответ на комментарий №12) > Я понял в чём проблема. Поделитесь? Заметил, что vboxvideo.ko предоставляется также kernel-modules-staging: /lib/modules/4.14.96-std-def-alt1/kernel/drivers/staging/vboxvideo/vboxvideo.ko.gz Если удалить kernel/drivers/staging/vboxvideo, то сборка всё равно не чинится. А если удалить /lib/modules/4.14.96-std-def-alt1/misc/vboxvideo.ko то чинится, и в образ попадает misc/vboxvideo.ko.gz Какая-то лотерея. То нормально собирается при установке live, то не собирается. Проверил, что когда собирается при установке live, в initrd попадает модуль из misc.
Попробуйте make-initrd 2.2.9-alt1, который уже в сизифе.
(В ответ на комментарий №14) > Попробуйте make-initrd 2.2.9-alt1, который уже в сизифе. Воспроизвёл баг, установил новый make-initrd. make-initrd успешно создался. initrd-ls /boot/initrd-4.14.96-std-def-alt1.img |grep vboxvideo 1 -rw-r--r-- 1 0 0 100168 Jan 16 22:14:41 2019 ./lib/modules/4.14.96-std-def-alt1/misc/vboxvideo.ko Спасибо!