Bug 44073

Summary: Не работает поддержка /etc/crypttab в luks
Product: Sisyphus Reporter: jqt4 <jqt4>
Component: make-initrdAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: glebfm, ldv, legion, placeholder, shaba
Version: unstable   
Hardware: x86_64   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=43056

Description jqt4@altlinux.org 2022-10-18 15:15:42 MSK
В системе имеется раздел luks и файл /etc/crypttab.
Файл /etc/luks.keys отсутствует.

При создании образа initrd.img в него не копируется /etc/crypttab.
В результате поддержка /etc/crypttab в luks не работает.
Comment 1 jqt4@altlinux.org 2022-10-18 15:38:03 MSK
Проблема существует только в Сизифе, в p10 поддержка /etc/crypttab в luks работает.
Проблема появляется после обновления на make-initrd 2.27.2-alt1 из архива Сизифа и пересоздания образа initrd.img.

Одно из внесённых в 2.27.2-alt1 исправлений:
https://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=make-initrd/features/luks/config.mk;h=2c811ba795ef8ad5b8e1b48cf3aa51dc8fa857be;hb=63f9ad1395fc22ec96746fb01023fec83d18c6ea#l14
выглядит странно - после проверки, что переменная LUKS_CRYPTTAB не пуста она перезаписывается.
Я предположил что это опечатка и исправил:

ifeq "$(LUKS_CRYPTTAB)" ""

После этого проблема пропала.

В текущей версии 2.31.0-alt1 ситуация аналогична:
https://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=make-initrd/features/luks/config.mk;h=2c811ba795ef8ad5b8e1b48cf3aa51dc8fa857be;hb=46eae8ef7f2f6d4148453517ac88e855412ac514#l14
Comment 2 Alexey Gladkov 2022-10-18 15:49:43 MSK
Да, это опечатка.
Comment 3 Alexey Gladkov 2022-10-18 17:00:13 MSK
А вы указываете LUKS_CRYPTTAB или у вас crypttab в другом месте ?
Comment 4 jqt4@altlinux.org 2022-10-18 17:25:57 MSK
(Ответ для Alexey Gladkov на комментарий #3)
> А вы указываете LUKS_CRYPTTAB или у вас crypttab в другом месте ?

LUKS_CRYPTTAB явно не указываю, crypttab в находится по пути /etc/crypttab
Возможно, я не понял вопроса.

Для воспроизведения проблемы делал следующее:
1. При установке alt-server (сборка с make-initrd-2.27.1-alt1 из p10) выбрал для rootfs шифрованный раздел.
2. Убедился, что при загрузке скрипт 085-luks находит /etc/crypttab и выдаёт сообщение об этом.
3. Обновил make-initrd - пробовал версии 2.30.0-alt2 из задачи 307486 и 2.27.2-alt1 из 
http://ftp.altlinux.org/pub/distributions/archive/sisyphus/date/2022/07/12 
4. Подал команду make-initrd
5. Перезагрузил систему.

При загрузке не выдаётся сообщение о том, что в initrd.img найден /etc/crypttab и systemd-cryptsetup спрашивает пароль от шифрованного раздела (в 3-й раз), поскольку имя этого раздела отличается от указанного в crypttab.
Comment 5 Repository Robot 2022-10-20 13:24:52 MSK
make-initrd-2.31.0-alt2 -> sisyphus:

 Thu Oct 20 2022 Alexey Gladkov <legion@altlinux.ru> 2.31.0-alt2
 - Feature luks: Do not overwrite LUKS_CRYPTTAB (ALT#44073).