LINUX.ORG.RU

[lvm] initramfs


0

1

При попытке грузиться с lvm'а получаю странную ошибку:

Enter passphrase for /dev/sda4:
5 logical volume(s) in volume group "vg" now active
UDF-fs: No partition found (1)
И загрузка останавливается. Не понятно к чему тут UDF, если root находится на jfs. (jfs собрано в ядре, вместе с device mapper и crypt target). lvm2, cryptsetup USE=«static» и static-libs у зависимостей

init к самосборному initramfs'у

#!/bin/sh
CMDLINE=`cat /proc/cmdline`
mount -t proc proc /proc
mount -t sysfs sysfs /sys
sleep 3
/bin/cryptsetup luksOpen /dev/sda4 vault
/bin/vgchange -ay
mount -r /dev/mapper/vg-root /newroot
umount /sys
umount /proc
exec /bin/busybox switch_root /newroot /sbin/init ${CMDLINE}
пробовал также initramfs от genkernel'а - тоже не грузится - даже не отрабатывается cryptsetup, хотя запускался с ключами --luks и --lvm.

GRUB2 config (сгенерирован grub2-mkconfig)

menuentry 'GNU/Linux, with Linux x86_64-3.0.6-gentoo' --class gnu-linux --class gnu --class os {
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos3)'
        search --no-floppy --fs-uuid --set=root 5623f0c2-9962-4b10-9c5b-0f3dd1f3e63e
        echo    'Loading Linux x86_64-3.0.6-gentoo ...'
        linux   /kernel-genkernel-x86_64-3.0.6-gentoo root=/dev/mapper/vg-root ro
        echo    'Loading initial ramdisk ...'
#       initrd  /initramfs-genkernel-x86_64-3.0.6-gentoo
        initrd  /initramfs
}
Все делал по вики.

что я сделал не так?


Тебя напрягает сообщение про UDF? В lvm.conf (который у тебя в рамдиске) задай точные имена устройств — это оно, похоже, на CD-ROM лезет.

GotF ★★★★★ ()
Ответ на: комментарий от GotF

>Тебя напрягает сообщение про UDF?
Оно вообще не загружается :)

>В lvm.conf (который у тебя в рамдиске)
В вики про lvm.conf не говорилось даже

Kadi ()
Ответ на: комментарий от GotF

Сменил

mount -r -t jfs
/dev/mapper/vg-root /newroot Ошибка с UDF пропала, но на
exec /bin/busybox switch_root /newroot /sbin/init ${CMDLINE}
загрузка останавливается

Kadi ()
Ответ на: комментарий от Kadi

Это уже не по моей части — initramfs руками я не собираю :)

GotF ★★★★★ ()
Ответ на: комментарий от GotF

а есть вариант с автосборкой? чтоб работало и шифрование, и lvm?[

пробовал собирать генкернелом

genkernel --luks --lvm all
но, как я писал вышел cryptsetup не выполняется, а в консоли (которую открывает генкернел при фейле загрузки) нельзя выполнить vgchange - его там нет (как будто в initramfs без него собран)

Kadi ()
Ответ на: комментарий от Kadi

>> а есть вариант с автосборкой? чтоб работало и шифрование, и lvm?

Не знаю, у меня Debian, и здесь свои методы сборки.

нельзя выполнить vgchange - его там нет

В дебиановском initramfs тоже нет этой ссылки, там только бинарник lvm, т.е. используется как «lvm vgscan», «lvm vgchange -ay».

GotF ★★★★★ ()
Ответ на: комментарий от GotF

Я бы разобрал полученный с помощью genkernel рамдиск да посмотрел, что и как. У cryptseup, например, может не быть цели.

GotF ★★★★★ ()
Ответ на: комментарий от GotF

загрузился с initramfs от genkernel'a.

Решилось дописыванием параметров ядра luks dolvm и crypt_root раздела.

menuentry 'GNU/Linux, with Linux x86_64-3.0.6-gentoo' --class gnu-linux --class gnu --class os {
        load_video
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos3)'
        search --no-floppy --fs-uuid --set=root 5623f0c2-9962-4b10-9c5b-0f3dd1f3e63e
        echo    'Loading Linux x86_64-3.0.6-gentoo ...'
        linux   /kernel-genkernel-x86_64-3.0.6-gentoo crypt_root=/dev/sda4 root=/dev/mapper/vg-root ro luks dolvm
        echo    'Loading initial ramdisk ...'
       initrd  /initramfs-genkernel-x86_64-3.0.6-gentoo
}

Kadi ()
Ответ на: комментарий от Kadi

хотя пробовал прописывать dolvm и luks, но, похоже, без crypt_root оно не работает :)

Kadi ()
Ответ на: комментарий от GotF

Теперь при выключении ругается udev сообщениями вроде таких

The link /dev/mapper/vg-* should have been removed by udev. Falling back to direct node removal.
а при загрузке ругается на отсутствие /dev/{console,null}, хотя они на рутовом разделе присутствуют

Kadi ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.