LINUX.ORG.RU

Linux на LVM

 , ,


0

1

Привет

На /dev/sdb8 создал lvm структуру с logical volume vg11-gentoo11; переписал туда Линукс корень. Прошу grub2 создать конфиг. Получаю такое в grub.cfg:

### BEGIN /etc/grub.dhttps://wiki.archlinux.org/index.php/LVM#Kernel_options/30_os-prober ###
menuentry 'Gentoo/Linux (on /dev/mapper/vg11-gentoo11)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-aa0ab174-09de-4906-13d-14ee562b0051' {
        insmod part_msdos
        insmod lvm
        insmod ext2
        set root='lvmid/va7oBN-23P2-2Sbv-JLwF-VZ4t-mYjh-wKAEQ7/aBGas0-Wttn-Uz5x-LxFe-hpwa-gKL3-Ay9I20'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/va7oBN-23P2-2Sbv-JLwF-VZ4t-mYjh-wKAEQ7/aBGas0-Wttn-Uz5x-LxFe-hpwa-gKL3-Ay9I20'  aa0ab174-09de-4906-a13d-14ee562b0051
        else
          search --no-floppy --fs-uuid --set=root aa0ab174-09de-4906-a13d-14ee562b0051
        fi
        linux /boot/vmlinuz-4.9.76-gentoo-r1-v17 root=/dev/sdb5 ro consoleblank=0 5
}
То есть ядру передается root=/dev/sdb5 - другая партиция с не тем корнем. Попытка заменить на /dev/mapper/vg11-gentoo11 приводит к kernel panic (хотя документация Арча говорит что так можно).

ядро сконфигурено вот так: https://wiki.gentoo.org/wiki/LVM#Kernel

Вопросы:
1. Что я делаю не так?
2. Если у вас есть корень на lvm, покажите, плиз свой кусок grub.cfg. Хотелось бы без initrd и без отдельного /boot, но если даже с нимим - покажите плиз.

Спасибо.

★★★★★

Последнее исправление: Kroz (всего исправлений: 2)

Если у вас есть корень на lvm, покажите, плиз свой кусок grub.cf

$ cat /etc/grub.d/40_custom 
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Gentoo' --class Gentoo --class gnu-linux --class gnu --class os  {
	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	linux	/kernel root=/dev/mapper/cryptvolumes-gentoo ro kopt=root=/dev/mapper/cryptvolumes-gentoo quiet splash init=/lib/systemd/systemd dolvm crypt_root=UUID=76495472-7d0e-4a01-9981-fb8fdacb158e $vt_handoff
	initrd	/initramfs
}
Deleted
()
Ответ на: комментарий от Pinkbyte

Что в /etc/fstab - как там указан корень?

fstab отсутствует. Что до сих пор не было проблемой.
Разве kernel panic может быть из-за отсутствия fstab?

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

Сюрприз: grub вычисляет твой корень в том числе по /etc/fstab

Если его нет, то теоретически(по крайней мере это логично) он должен это делать по текущим точкам монтирования. Но на самом деле видимо что-то пошло не так.

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

Сюрприз: grub вычисляет твой корень в том числе по /etc/fstab

Генерю я конфиг на системе с полноценным fstab'ом и с примонтированным LVM. Систему оно авто-определяет корректно, да, генерит конфиг немного неправильно, но это уже вторая проблема. Первая и основная - это то, что, даже если я рукам поправлю конфиг чтобы было правильно, при загрузке вылетает kernel panic. При том пробовал и /dev/mapper/vg11-gentoo11, и /dev/dm-0, и root=UUID=...

Kroz ★★★★★
() автор топика
Последнее исправление: Kroz (всего исправлений: 2)
Ответ на: комментарий от deadNightTiger

Для загрузки с / на LVM initramfs обязателен. Ядро не умеет находить LVM-тома без помощи юзерспейса.

Жаль.
Да, с initramfs получилось.

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

Как раз этот кейс показывает что нужна. И де-факто она там оказывается, только через ж...

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

Как раз этот кейс показывает что нужна.

Двум задротам?

И де-факто она там оказывается, только через ж...

Нет. В ядре нет никакой поддержки on-disk формата LVM. Равно как и любого другого формата, который используется с device mapper.

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

Как раз этот кейс показывает что нужна.

Двум задротам?

То есть тебе нравится городить стопку партиций, одни за пределами LVM (ибо иначе ядро не умеет), другие внутри LVM?

И де-факто она там оказывается, только через ж...

Нет. В ядре нет никакой поддержки on-disk формата LVM. Равно как и любого другого формата, который используется с device mapper.

initramfs можно вкомпилить в ядро - внезапно.

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

То есть тебе нравится городить стопку партиций, одни за пределами LVM (ибо иначе ядро не умеет), другие внутри LVM?

Зачем? Используешь initramfs и никаких гвоздей.

initramfs можно вкомпилить в ядро

Ну вкомпиляй и радуйся. Непонятно, правда, как это связано с поддержкой LVM в ядре 😀

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

Зачем? Используешь initramfs и никаких гвоздей.

initramfs и есть гвоздь.

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

да не читает он fstab

# Device containing our userland.  Typically used for root= parameter.
GRUB_DEVICE="`${grub_probe} --target=device /`"
GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true

# Device containing our /boot partition.  Usually the same as GRUB_DEVICE.
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true
int13h ★★★★★
()
Ответ на: комментарий от int13h

Ну я хз тогда:

oas1 /home/pinkbyte # strace grub-mkconfig 2>&1 | grep fstab | grep open
open("/etc/fstab", O_RDONLY)     = 3
Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.