Initramfs + Luks - только одна подсказка пароля

Чего я хочу добиться:

  • Запрашивается пароль, только один раз во время загрузки;
  • Другие (некорневые) разделы для использования ключевого файла внутри /root/ каталог.

Чего я добился до сих пор:

  • (A) Система загружается, но запрашивает пароль дважды (один раз для /и один раз для /usr).
  • Или: (B) система не загружается, запрашивает пароль один раз, но затем отказывается от монтирования /usr говоря, что не может найти группу / том LVM. Меня бросают в раковину, и я вижу, что /root/.keyfile недоступен. / еще не был установлен

конфигурация

Файл: /etc/crypttab

Случай А

sdc3_crypt /dev/sdc3 none luks md0_crypt /dev/md0 none luks

Дело Б

sdc3_crypt /dev/sdc3 none luks md0_crypt /dev/md0 /root/.keyfile luks

Что полностью не сработало

  • Создание файлов скриптов для luks вручную Откройте нужный диск: те, что в /etc/initramfs-tools/scripts/local-premount называются раньше / доступно, но те в /etc/initramfs-tools/scripts/local-bottom называются после того, как он хочет открыть /usr (и поэтому уже поздно).

1 ответ

На этой вики-странице (на немецком языке, к сожалению, я не нашел аналога на английском) предлагается использовать скрипт /lib/cryptsetup/scripts/decrypt_derived сгенерировать ключ из открытого корневого устройства. Я постараюсь перевести важные части, но я НЕ пробовал эту процедуру.

Чтобы добавить ключ, вам нужно выполнить (как root)

mkdir /mnt/ram && mount -t ramfs -o size=1m ramfs /mnt/ram && chmod 600 /mnt/ram
/lib/cryptsetup/scripts/decrypt_derived <root_dev> > /mnt/ram/tmp.key && cryptsetup luksAddKey <usr_dev> /mnt/ram/tmp.key && rm /mnt/ram/tmp.key
umount /mnt/ram && rmdir /mnt/ram 

где <root_name> имя вашего корневого устройства, отображаемое в /dev/mapper (наверное sdc3_crypt), а также <usr_dev> устройство где /usr включен (возможно /dev/md0).

Строка для crypttab

  <usr_name>         UUID=<UUID>          <root_name>           luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

не забудьте бежать

update-initramfs -u -k all 

после изменения crypttab.

Вам следует сохранить "нормальный" пароль для вашего устройства usr, иначе вы не сможете открыть его в случае повреждения корневого устройства.

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