После обновления система не видит LUKS
Что я делаю:
Boot usb in live mode
cryptsetup luksOpen /dev/mmcblk2p2 gentoo
Enter passphrase for /dev/mmcblk2p2:
Смотрю что там открылось
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 506.3M 1 loop /run/rootfsbase
sda 8:0 1 14.4G 0 disk
├─sda1 8:1 1 250K 0 part
├─sda2 8:2 1 2.8M 0 part
├─sda3 8:3 1 593.1M 0 part /run/initramfs/live
└─sda4 8:4 1 300K 0 part
mmcblk2 179:0 0 29.1G 0 disk
├─mmcblk2p1 179:1 0 255M 0 part
└─mmcblk2p2 179:2 0 28.9G 0 part
└─gentoo 253:0 0 28.9G 0 crypt
└─vg_system-root_lv 253:1 0 28.9G 0 lvm
mmcblk2boot0 179:8 0 4M 1 disk
mmcblk2boot1 179:16 0 4M 1 disk
Факин щет! Я точно помню, что при разметке диска указывал имя вольюм группе gentoo
, а имя логическому разделу root
, зуб даю (металлокерамический), но после обновления группа стала vg_system
, а диск root_lv
.
Что же нам скажет lvdisplay
--- Logical volume ---
LV Path /dev/vg_system/root_lv
LV Name root_lv
VG Name vg_system
LV UUID TjkIQw-bcWN-BWiw-N04Z-Z8qX-szzF-mktDY2
LV Write Access read/write
LV Creation host, time livecd, 2024-09-30 10:56:22 +0000
LV Status available
# open 0
LV Size 28.85 GiB
Current LE 7386
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
Йоптыть, ну конечно! По данным из LV Path и VG Name имена группы томов и имя диска изменились.
Смотрим что с LVM
lvmdiskscan
/dev/live-base [ <506.34 MiB]
/dev/mapper/gentoo [ 28.85 GiB] LVM physical volume
/dev/mmcblk2p1 [ 255.00 MiB]
/dev/sda2 [ 2.81 MiB]
/dev/mmcblk2p2 [ 28.87 GiB]
/dev/sda3 [ 593.14 MiB]
/dev/mmcblk2boot0 [ 4.00 MiB]
/dev/mmcblk2boot1 [ 4.00 MiB]
1 disk
6 partitions
1 LVM physical volume whole disk
0 LVM physical volumes
Аткивирую lvm тома
vgchange -ay
1 logical volume(s) in volume group "vg_system" now active
Монтирую lvm и бут разделы
mount /dev/mapper/vg_system-root_lv /mnt/gentoo/
mount /dev/mmcblk2p1 /mnt/gentoo/boot/
Смотрим
lsblk /dev/mmcblk2
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk2 179:0 0 29.1G 0 disk
├─mmcblk2p1 179:1 0 255M 0 part /mnt/gentoo/boot
└─mmcblk2p2 179:2 0 28.9G 0 part
└─gentoo 253:0 0 28.9G 0 crypt
└─vg_system-root_lv 253:1 0 28.9G 0 lvm /mnt/gentoo
Отлично! Переходим в каталог куда смонтировались, монтируем ФС и чрутимся
cd /mnt/gentoo
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run/
chroot /mnt/gentoo /bin/bash
source /etc/profile
Убеждаюсь что у меня включена поддержка luks и lvm в genkernel.conf
vim /etc/genkernel.conf
# Add LVM support
LVM="yes"
# Add LUKS support
LUKS="yes"
Генерирую initramfs с поддержкой необходимого
genkernel --lvm --luks initramfs
* Gentoo Linux Genkernel; Version 4.3.16
* Using genkernel configuration from '/etc/genkernel.conf' ...
* Running with options: --lvm --luks initramfs
* Working with Linux kernel 6.6.62-gentoo-dist for x86_64
* Using kernel config file '/usr/src/linux-6.6.62-gentoo-dist/.config' ...
* Current kernel's LOCALVERSION is set to '-gentoo-dist'; Will ignore set --kernel-localversion value '-x86_64' because kernel was not built ...
* initramfs: >> Initializing ...
* >> Appending devices cpio data ...
* >> Appending base_layout cpio data ...
* >> Appending util-linux cpio data ...
* >> Appending eudev cpio data ...
* >> Appending devicemanager cpio data ...
* >> Appending auxiliary cpio data ...
* >> Appending busybox cpio data ...
* >> Appending luks cpio data ...
* >> Appending lvm cpio data ...
* >> Appending modprobed cpio data ...
* >> Appending modules cpio data ...
* >> Deduping cpio ...
* >> Pre-generating initramfs' /etc/ld.so.cache ...
* >> Compressing cpio data (.xz) ...
*
* You will find the initramfs in '/boot/initramfs-6.6.62-gentoo-dist.img'.
* WARNING... WARNING... WARNING...
* Additional kernel parameters that *may* be required to boot properly:
* - Add "dolvm" for LVM support
* - Add "crypt_root=<device>" for LUKS-encrypted root
* - Add "crypt_swap=<device>" for LUKS-encrypted swap
* Do NOT report kernel bugs as genkernel bugs unless your bug
* is about the default genkernel configuration...
*
* Make sure you have the latest ~arch genkernel before reporting bugs.
Обращаем внимание на варнинги, которые говорят включить dolvm и криптованный рут в дополнительные параметры загрузки
Идём в /etc/default/grub и добавляем
GRUB_CMDLINE_LINUX="crypt_root=/dev/mmcblk2p2 root=/dev/mapper/vg_system-root_lv rootfstype=ext4 dolvm quiet"
Проверяем что в граб включены необходимые параметры
cat /etc/portage/package.use/grub
sys-boot/grub mount device-mapper
Обновляем граб
grub-mkconfig -o /boot/grub/grub.cfg
Генерируется файл настройки grub …
Найден образ linux: /boot/vmlinuz-6.6.62-gentoo-dist
Найден образ initrd: /boot/amd-uc.img /boot/initramfs-6.6.62-gentoo-dist.img
Найден образ linux: /boot/vmlinuz-6.6.58-gentoo-dist
Найден образ initrd: /boot/amd-uc.img /boot/initramfs-6.6.58-gentoo-dist.img
Предупреждение: os-prober не будет запущен для обнаружения других загрузочных разделов.
Их системы не будут добавлены в загрузочные настройки GRUB.
Прочтите документацию на параметр GRUB_DISABLE_OS_PROBER.
Добавляется элемент загрузочного меню для настроек микропрограммы UEFI …
завершено
Смущает размер initramf
, который почему-то стал меньше, в сравнении с предыдущим ядром
ls -l boot | grep init
-rwxr-xr-x 1 root root 31886278 ноя 8 13:27 initramfs-6.6.58-gentoo-dist.img
-rwxr-xr-x 1 root root 12276100 дек 8 19:07 initramfs-6.6.62-gentoo-dist.img
-rwxr-xr-x 1 root root 12277464 дек 8 16:42 initramfs-6.6.62-gentoo-dist.img.old
Рестарюсь и загрузка вываливается -> в это <-
Я вангую что initramfs собирается без luks’а.
пАчИму…?!?