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

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

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

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

Чего я добился на данный момент:

  • (А)Система загружается, но дважды запрашивает пароль (один раз для /и один раз для /usr).
  • Или:(Б)система не загружается, запрашивает пароль один раз, но затем отказывается от монтирования, /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

Что совершенно не сработало

  • Создание файлов скриптов для ручного открытия нужного диска: те, которые в /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, иначе вы не сможете открыть его в случае повреждения вашего корневого устройства.

Связанный контент