lvm2, обновление до 2.02.51-r1

В общем, недельку назад обновился, а сегодня выключили свет. Подошел к серверу, а там мой initrd, созданный с помощью genkernel говорит, мол не может найти корневой раздел. Набрал shell, сделал vgscan -vvv 2>&1 | grep md. И оно показано мне что-то типа md[12] skipped by sysfs. У меня lvm поверх софтварного рейда, который в /dev/md2.

Сразу же полез в гугл, и попал вот сюда: http://bugs.gentoo.org/292833. Там чотко написано:

Цитата:
In my case the problem got resolved by enabling CONFIG_SYSFS_DEPRECATED_V2 in
kernel. Although udev complains about it the system works just fine and lvm
detection works as expected.

Сделал, как обычно genkernel --menuconfig all, и включил CONFIG_SYSFS_DEPRECATED_V2, посидел десять минут, надоело ждать, перестал компилить ядро. Открыл man lvm.conf, и увидел там опцию sysfs_scan, которую тут же выставил в 0, и сделал genkerlen ramdisk. Перезагрузился, все отлично заработало.

lvm.conf — http://pastebin.ca/1682120
genkernel.conf — http://pastebin.ca/1682123

Можно было эту проблему решить не столь радикально? Не добавляя deprecated в ядро, и не убирая возможность опрашивать sysfs у lvm.

Эта проблема связана с тем,

Эта проблема связана с тем, что genkernel использует очень старый lvm, а системный при генерации initrd найти не может, т.к. статический lvm называется теперь lvm.static.
Косяк в /usr/share/genkernel/gen_initramfs.sh

        if [ -e '/sbin/lvm' ] && LC_ALL="C" ldd /sbin/lvm|grep -q 'not a dynamic executable'
        then
                print_info 1 '          LVM: Adding support (using local static binaries)...'
                cp /sbin/lvm "${TEMP}/initramfs-lvm-temp/bin/lvm" ||
                        gen_die 'Could not copy over lvm!'

Я бы поменял на:

        if [ -e '/sbin/lvm.static' ]
        then
                print_info 1 '          LVM: Adding support (using local static binaries)...'
                cp /sbin/lvm.static "${TEMP}/initramfs-lvm-temp
        elif [ -e '/sbin/lvm' ] && LC_ALL="C" ldd /sbin/lvm|grep -q 'not a dynamic executable'
        then
                print_info 1 '          LVM: Adding support (using local static binaries)...'
                cp /sbin/lvm "${TEMP}/initramfs-lvm-temp/bin/lvm" ||
                        gen_die 'Could not copy over lvm!'

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

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