После обновления до 20.04: luks не открывает мой диск при загрузке; cryptroot / crypttab пуст, cryptsetup не распознает запись crypttab

после обновления до 20.04 мой зашифрованный диск не расшифровывается при загрузке. У меня не спрашивают пароль, поэтому он, очевидно, не может найти ни одного раздела и загружается в приглашение initrd.

В чем может быть причина: / cryptroot / crypttab в образе initrd полностью пуст .

Я могу открыть luks вручную и войти в систему с помощью chroot. Это содержимое моего / etc / crypttab в реальном корневом каталоге:

nvme0n1p3_crypt UUID = none luks

(Все UUID верны, везде)

Когда Я запускаю update-initramfs -c -k all , на выходе получается:

cryptsetup: ВНИМАНИЕ: цель 'nvme0n1p3_crypt' не найдена в / etc / crypttab

Это немного странно, потому что это в точности целевое имя единственной записи в этом файле. Это' s также указаны в / dev / mapper как ссылка на ../ dm-0 , что тоже кажется правильным.

Я попытался переименовать устройство в crypt только с использованием dmsetup переименовать ... но это, конечно, не помогло.

Я предполагаю, что это основная причина моей проблемы.

0
задан 21 August 2020 в 14:13

2 ответа

Уф, я исправил. Это было так странно, я бы никогда не узнал, если бы мне кто-то не сказал.

Проблема в файле / etc / crypttab : ему нужен EOF в конце!

Ого! Как это может быть? Это первый раз за последние 25 лет, когда некоторым Linux требуется EOF в текстовом файле. Гоша!

В любом случае, теперь это исправлено после более чем одной недели тестирования.

0
ответ дан 24 August 2020 в 08:20

Вот процедура генерации: https://salsa.debian.org/gpiccoli/cryptsetup/-/blob/master/debian/functions#L526

Еще одна ошибка (другие могут сказать, что так и было задумано) заключается в том, что ваш /etc/crypttab ЦЕЛЬ (= имя) должен быть тем, который в настоящее время используется для корня, для которого вы собираетесь создать initramfs.

Например: Если вы:

отлично открываете foo
монтируете /dev/mapper/foo
chroot
update-initramfs

то foo etc/ crypttab TARGET должен быть foo иначе вы увидите:

cryptsetup: ПРЕДУПРЕЖДЕНИЕ: цель 'foo' не найдена в /etc/crypttab

Хотя это едва заметен с помощью update-initramfs -v.

1
ответ дан 1 November 2020 в 00:26

Другие вопросы по тегам:

Похожие вопросы: