При загрузке системы на экране проскакивает вот такое сообщение: vgchange: /sbin/vgchange: error while loading shared libraries: libdevmapper-event.so.1.00: cannot open shared object file: No such file or directory У меня корень системы на LVM. Но при этом группа томов и все логические тома активируются и работают корректно.
Перевесил на мейнтейнера.
rpm -qa | grep libdevmapper
Понял. Если у вас корень на lvm, значит вы используете make-initrd. Для работы vgchange теперь требуется не только libdevmapper.so.1.00, но и libdevmapper-event.so.1.00 который, судя по всему, не попал на initrd. Итог: надо адаптировать make-initrd к новому lvm2
(В ответ на комментарий №3) make-initrd не пакует /sbin/vgchange. Он использует "/sbin/lvm vgchange" Так что ваш вывод о наличии проблемы в make-initrd для меня не очевиден. > Понял. Если у вас корень на lvm, значит вы используете make-initrd. Для работы > vgchange теперь требуется не только libdevmapper.so.1.00, но и > libdevmapper-event.so.1.00 который, судя по всему, не попал на initrd. Если /sbin/lvm был слинкован с libdevmapper-event.so.1.00, то эта библиотека попала в initrd. > Итог: надо адаптировать make-initrd к новому lvm2 Он уже адаптирован.
(In reply to comment #4) > > > vgchange: /sbin/vgchange: error while loading shared libraries: > > > libdevmapper-event.so.1.00: cannot open shared object file: No such file > > > or directory > > > > Понял. Если у вас корень на lvm, значит вы используете make-initrd. Для > > работы vgchange теперь требуется не только libdevmapper.so.1.00, но и > > libdevmapper-event.so.1.00 который, судя по всему, не попал на initrd. > > Если /sbin/lvm был слинкован с libdevmapper-event.so.1.00, то эта библиотека > попала в initrd. Выходит так, будто пользователю померещилось, а сообщения об ошибке нет? (In reply to comment #0) > При загрузке системы на экране проскакивает вот такое сообщение: Давайте мы вас попросим заглянуть в ваш initrd.img и рассказать, чем и когда он был сделан, и какие библиотеки туда попали. Спасибо.
(In reply to comment #1) > Перевесил на мейнтейнера. Операция $ ssh git.alt acl sisyphus lvm2 leader новый_мейнтейнер позволит сразу закреплять новые баги на lvm2 за новым мейнтейнером.
(В ответ на комментарий №5) > Выходит так, будто пользователю померещилось, а сообщения об ошибке нет? Я этого не говорил. Не нужно переиначивать мои слова. Я сказал, что /sbin/vgchange не мог попасть в initrd: http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=blob;f=features/lvm/config.mk;h=661e04fec09008fe7b48f0f39cf3eda500139873;hb=aed3d9d9747d598331a7940e01e232dfb7c26e37 Не нужно перевешивать ошибки столь бездумно.
(In reply to comment #7) > (В ответ на комментарий №5) > > Выходит так, будто пользователю померещилось, а сообщения об ошибке нет? > > Я этого не говорил. Не нужно переиначивать мои слова. Я сказал, что > /sbin/vgchange не мог попасть в initrd: Однако из сообщения пользователя следует, что либо vgchange попал в initrd, либо vgchange попал в систему не из пакета lvm2, либо пакет lvm2 был установлен без своих зависимостей. Из этих соображений и твоих слов, таким образом, следует, что, скорее всего, initrd был сформирован не make-initrd или mkinitrd, а каким-то другим средством не из Сизифа. Кстати, обнаружился баг в упаковке lvm2: $ ldd /sbin/lvm | fgrep /usr/ libdevmapper-event.so.1.00 => /usr/lib64/libdevmapper-event.so.1.00 (0x00002b602975d000) - утилита в /sbin, а библиотека в /usr.
(In reply to comment #8) > Кстати, обнаружился баг в упаковке lvm2: > $ ldd /sbin/lvm | fgrep /usr/ > libdevmapper-event.so.1.00 => /usr/lib64/libdevmapper-event.so.1.00 > (0x00002b602975d000) > - утилита в /sbin, а библиотека в /usr. Этот баг делает возможным ещё один вполне реалистичный вариант: /usr расположен на отдельной от / файловой системе. Поскольку /etc/rc.d/scripts/lvm_start вызывает vgchange именно таким образом, можно предположить, что перемещение библиотеки в /lib исправит эту ошибку.
Да, это достаточно вероятный вариант.
(В ответ на комментарий №5) > (In reply to comment #4) > Давайте мы вас попросим заглянуть в ваш initrd.img и рассказать, чем и когда он > был сделан, и какие библиотеки туда попали. Спасибо. initrd делался make-initrd при очередном обновлении ядра. Вот версия make-initrd: [root@rivendale ~]# rpm -q make-initrd make-initrd-0.3.9-alt1 Вот мои системные файловые системы: root@rivendale ~]# df -h Файловая система Разм Исп Дост Исп% смонтирована на /dev/mapper/linux-root 1008M 661M 297M 70% / /dev/mapper/linux-usr 9,9G 7,6G 1,8G 81% /usr /dev/mapper/linux-var 5,0G 443M 4,3G 10% /var Отдельного /boot нет. Библиотеки libdevmapper и libdevmapper-event внутри initrd есть: [root@rivendale lib64]# pwd /tmp/initrd/lib64 [root@rivendale lib64]# ls | grep mapper libdevmapper-event.so.1.00 libdevmapper.so.1.00 На всякий случай используемое ядро: [root@rivendale lib64]# uname -a Linux rivendale 2.6.35-std-def-alt7 #1 SMP Wed Oct 20 15:57:10 UTC 2010 x86_64 GNU/Linux Могу initrd сам приложить, но он почти 3 Мб...
lvm2-2.02.75-alt2 -> sisyphus: * Sun Oct 31 2010 Vitaly Kuznetsov <vitty@altlinux> 2.02.75-alt2 - move libdevmapper-event.so.1.00 to /lib[64] (ALT #24458)