Разблокируйте два устройства LUKS перед загрузкой с помощью clevis/initramfs.

Вопрос или проблема

Как на Debian мне указать clevis/initramfs разблокировать два устройства LUKS перед загрузкой?

В настоящее время оба устройства настроены на разблокировку через TPM2, что правильно настроено, так как я могу восстановить привязки, не вводя пароль объема.

~# clevis luks regen -d /dev/nvme0n1 -s 1
Восстанавливаю привязку (устройство /dev/nvme0n1, слот 1):
Pin: tpm2, Конфигурация: '{"hash":"sha256","key":"ecc","pcr_bank":"sha256","pcr_ids":"REDACTED"}'
Хотите продолжить? [ynYN] y
Привязка успешно восстановлена
~# clevis luks regen -d /dev/nvme1n1p3 -s 0
Восстанавливаю привязку (устройство /dev/nvme1n1p3, слот 0):
Pin: tpm2, Конфигурация: '{"hash":"sha256","key":"ecc","pcr_bank":"sha256","pcr_ids":"REDACTED"}'
Хотите продолжить? [ynYN] y
Привязка успешно восстановлена

В /etc/crypttab оба устройства перечислены и UUID соответствует устройствам crypto_LUKS в blkid. Использование update-initramfs -u не вызывает жалоб о недостающих ссылках.

nvme0n1_crypt UUID=REDACTED none luks,discard
nvme1n1p3_crypt UUID=REDACTED  none luks,discard

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

Пожалуйста, разблокируйте диск nvme1n1p3_crypt:
cryptsetup: nvme1n1p3_crypt: успешно настроено
Сдаюсь, ждал устройство приостановки/возобновления
Сдаюсь, ждал устройство корневой файловой системы. Общие проблемы:
   ...

(initramfs)

С этого момента я должен вручную открыть второе устройство перед тем, как продолжить.

(initramfs) cryuptsetup luksOpen /dev/nvme0n1 nvme0n1_crypt
Введите пароль для /dev/nvme0n1: # Введенный пароль
(initramfs) выход
/dev/mapper/lab--vg-root: чист, REDACTED файлов, REDACTED блоков

Устройства настроены следующим образом:

~# lsblk
ИМЯ                                MAJ:MIN RM  РАЗМЕР RO ТИП  ТОЧКИ МОНТАЖА
nvme0n1                             259:0    0 -----  0 диск  
└─nvme0n1_crypt                     252:1    0 -----  0 крипт 
  ├─lab--vg-data_tmeta              252:4    0 -----  0 lvm   
  │ └─lab--vg-data-tpool            252:6    0 -----  0 lvm   
  │   ├─lab--vg-data                252:7    0 -----  1 lvm    
  │   └─...                         252:22   0 -----  0 lvm   
  └─lab--vg-data_tdata              252:5    0 -----  0 lvm   
    └─lab--vg-data-tpool            252:6    0 -----  0 lvm   
      ├─lab--vg-data                252:7    0 -----  1 lvm   
      └─...                         252:22   0 -----  0 lvm   
nvme1n1                             259:1    0 -----  0 диск  
├─nvme1n1p1                         259:2    0 -----  0 часть  /boot/efi
├─nvme1n1p2                         259:3    0 -----  0 часть  /boot
└─nvme1n1p3                         259:4    0 -----  0 часть  
  └─nvme1n1p3_crypt                 252:0    0 -----  0 крипт 
    ├─lab--vg-root                  252:2    0 -----  0 lvm   /
    ├─lab--vg-swap_1                252:3    0 -----  0 lvm   [SWAP]
    ├─lab--vg-data_tmeta            252:4    0 -----  0 lvm   
    │ └─lab--vg-data-tpool          252:6    0 -----  0 lvm   
    │   ├─lab--vg-data              252:7    0 -----  1 lvm   
    │   └─...                       252:22   0 -----  0 lvm   
    └─lab--vg-data_tdata            252:5    0 -----  0 lvm   
      └─lab--vg-data-tpool          252:6    0 -----  0 lvm   
        ├─lab--vg-data              252:7    0 -----  1 lvm  
        └─...                       252:22   0 -----  0 lvm
~# uname -a
Linux lab 6.8.12-4-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-4 (2024-11-06T15:04Z) x86_64 GNU/Linux

Ответ или решение

Как разблокировать два устройства LUKS перед загрузкой с помощью Clevis и Initramfs на Debian

Если вы находитесь в процессе настройки с использованием Clevis и LUKS для автоматической разблокировки устройств на основе TPM2, и у вас возникают проблемы с тем, что только одно устройство разблокируется при загрузке, вы находитесь в правильном месте. Эта статья предоставит вам исчерпывающее руководство по этой теме.

1. Убедитесь в правильной конфигурации /etc/crypttab

Ваш файл /etc/crypttab содержит правильные записи для обоих LUKS-устройств. Конфигурация, приведенная ниже, имеет правильный вид:

nvme0n1_crypt UUID=REDACTED none luks,discard
nvme1n1p3_crypt UUID=REDACTED none luks,discard

Убедитесь, что UUID для каждого устройства соответствует его значению, полученному через blkid. Это гарантирует, что система сможет правильно идентифицировать и разблокировать устройства.

2. Изменения в initramfs

Проверьте, настроены ли ваши устройства в initramfs. Вам нужно убедиться, что оба LUKS-устройства загружаются на уровне initramfs перед загрузкой операционной системы. Для этого выполните следующие шаги:

  1. Проверьте файл конфигурации:
    Убедитесь, что в файле /etc/initramfs-tools/cryptroot содержатся соответствующие LUKS-устройства. Вам может потребоваться внести изменения, чтобы указать, что оба устройства должны быть разблокированы.

  2. Настройка Clevis:
    Убедитесь, что оба устройства имеют активные привязки к TPM2. Используйте следующую команду для проверки:

    clevis luks policy /dev/nvme0n1
    clevis luks policy /dev/nvme1n1p3
  3. Обновите initramfs:
    После изменения конфигурации выполните команду:

    sudo update-initramfs -u

3. Отладка проблем с загрузкой

Если после выполнения всех вышеуказанных шагов вы все еще сталкиваетесь с проблемой, что одно из LUKS-устройств не разблокируется, проверьте следующие моменты:

  • Логи загрузки: Используйте команду dmesg во время загрузки initramfs, чтобы просмотреть сообщение об ошибке или дополнительную отладочную информацию. Это может дать подсказки о том, почему устройство не разблокируется.
  • Привязка на правильные слоты: Убедитесь, что привязка к TPM2 правильно настроена в слоте для обоих устройств (slot). Вы можете проверить это, используя команду:

    clevis luks show /dev/nvme0n1
    clevis luks show /dev/nvme1n1p3

Если одна из привязок отсутствует или неверна, выполните переконфигурацию, используя команду clevis luks bind.

4. Протестируйте загрузку

Сделав все необходимые изменения и обновления, перезагрузите систему и протестируйте, разблокируются ли оба устройства LUKS автоматически. Если система все еще запрашивает разблокировку, вам может потребоваться повторить некоторые шаги или проверить на наличие обновлений системы и пакетов, поскольку несовместимость версий может также влиять на поведение.

Заключение

Следуя приведенным выше шагам, вы сможете настроить автоматическую разблокировку двух LUKS-устройств через Clevis и initramfs на Debian. Процесс может потребовать некоторой отладки, но с правильной конфигурацией и вниманием к деталям вы сможете успешно разблокировать оба устройства без необходимости ввода пароля вручную.

Оцените материал
Добавить комментарий

Капча загружается...