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
Я бы поменял на: