LINUX.ORG.RU

Gentoo на btrfs over luks

 , ,


1

2

Доброго времени суток.

Пользуюсь Arch-ем на ssd>dm-crypt(luks)>btrfs>subvol (смонтировано /, включая boot). Грузит все это безобразие Grub2 с GRUB_ENABLE_CRYPTODISK=«y». Появилась необходимость поставить Gentoo. Развернут stage3-systemd на btrfs subvol gentoo. Ядро скомпилировано с нативной (не модульной) поддержкой зависимостей systemd, crypto api, FS и прочими прелестями (Gentoo Handbook + ЛОР). initramfs сгенерирован с помощью genkernel (--luks --btrfs --bootloader=grub2 --udev --kernel-config=/usr/src/linux/.config initramfs), и (ввиду полученной ошибки) Dracut. Ну и резервное ядро с genkernel.

В Grub2 добавлены:

menuentry
...
linux   /gentoo/boot/vmlinuz-4.12.4-gentoo rd.luks.uuid=UUID rd.luks.allow-discards rd.luks.crypttab=1 root=UUID=UUID init=/usr/lib/systemd/systemd rootflags=subvol=gentoo
initrd  /gentoo/boot/initramfs-4.12.4-dracut.img
...
menuentry
...
linux   /gentoo/boot/kernel-genkernel-x86_64-4.12.4-gentoo keymap=ru splash=silent quiet crypt_root=UUID=UUID dobtrfs rootflags=subvol=gentoo init=/usr/lib/systemd/systemd
initrd  /gentoo/boot/initramfs-genkernel-x86_64-4.12.4-gentoo

Суть в чем: ядро грузится. Запрашивает пароль раздела. Если ввести неверный - просит заново. Ввести верный = фриз.

ЧЯДНТ?

P.S. Параметры загрузки пробовал разные.

P.P.S. При переносе системы на нешифрованный раздел, все грузится и работает.


Войти в initrd shell и руками смонтировать ФС пробовал и запустить что-то с корневой ФС - пробовал?

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

На Dracut-овском initramfs (когда оно вывалилось в shell из-за отсутствия ключа разблокировки, который я намеренно не указал). ФС монтируется через dm-crypt, файлы есть.

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

Уверен на все 50%. Если бы не поддерживал, то (логично предположить) dm-crypt не запросил бы пароль? Вообще, симптомы как здесь, но все флаги и параметры у меня установлены.

VVL-
() автор топика

Если у тебя UEFI, выкинь этот костыль GRUB. EFI Stub уже давно можно использовать.

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

С радостью. Если подскажешь, каким образом EFI Stub увидит ядро на шифрованном разделе. :) И это не решит проблему (ИМХО) - ибо grub грузит ядро.

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

Если подскажешь, каким образом EFI Stub увидит ядро на шифрованном разделе. :)

EFI stub kernel - тут все описано. Build in the initramfs CPIO archive и Built-in kernel command line.

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

Мы говорим об абсолютно разных вещах. В моей конфигурации само ядро находится в LUKS-разделе. Stub такого не умеет.

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

Мы говорим об абсолютно разных вещах. В моей конфигурации само ядро находится в LUKS-разделе. Stub такого не умеет.

А зачем? Засунь initramfs в ядро, подпиши своим ключом и используй SecureBoot. Зачем лишние прослойки.

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

i7-6800hq (lenovo) - ключи в UEFI поменять невозможно.

Но суть не в этом - попробовал вынести ядро и загрузить через EFI - исход тот же.

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

Но суть не в этом - попробовал вынести ядро и загрузить через EFI - исход тот же.

Глупый вопрос, но все же... А btrfs в ядро вкомпилено или как модуль?

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

В первом сообщении на этом сделал акцент. Все зависимости, разумеется, вкомпилированы. И эта же система при переносе на btrfs без luks - грузится и работает. Не открывается (в точнее открывается вечно) LUKS.

VVL-
() автор топика

Проблема решена - busybox был собран без флага static.

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

И GRUB2 - тоже выкинь. Собери кернел с таким mkinitcpio.conf

blitz@inode /etc % cat mkinitcpio.conf 
#     MODULES="piix ide_disk reiserfs"
MODULES="crc32 libcrc32c crc32c_generic crc32c-intel crc32-pclmul"

# HOOKS
HOOKS="base systemd autodetect modconf block filesystems keyboard sd-vconsole fsck sd-shutdown"

В данном случае, тебе должна быть интересна вот эта строка
HOOKS=«base systemd autodetect modconf block filesystems keyboard sd-vconsole fsck sd-shutdown»

Это во-первых, и самое главное - продемонстрируй, пожалуйста, вывод
# cat /ets/crypttab

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

Меня порой удивляет попытка людей обращать в свою веру :)

1. Проблема давно решена. Более того, в свободное время собрал свой initramfs. Вес 3мб, быстрый :)

2. Это gentoo, а не arch. Или ты предлагаешь mkinitcpio ставить?)

3. Причем тут вообще crypttab? Его нет, и не должно быть. Открытие контейнера и его монтирование происходит еще до этапа systemd/openrc.

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