Я пытаюсь использовать cryptsetup для шифрования некоторых разделов, но получаю сообщение об ошибке IO error while decrypting keyslot.
Команда и вывод:
root@rescue ~ # cryptsetup --debug --verbose --cipher aes-xts-plain64 --key-size 256 --hash sha256 --iter-time 6000 luksFormat /dev/sda3
# cryptsetup 1.6.6 processing "cryptsetup --debug --verbose --cipher aes-xts-plain64 --key-size 256 --hash sha256 --iter-time 6000 luksFormat /dev/sda3"
# Running command luksFormat.
# Locking memory.
# Installing SIGINT/SIGTERM handler.
# Unblocking interruption on signal.
WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.
Are you sure? (Type uppercase yes): YES
# Allocating crypt device /dev/sda3 context.
# Trying to open and read device /dev/sda3.
# Initialising device-mapper backend library.
# Timeout set to 0 miliseconds.
# Iteration time set to 6000 miliseconds.
# Interactive passphrase entry requested.
Enter passphrase:
Verify passphrase:
# Formatting device /dev/sda3 as type LUKS1.
# Crypto backend (gcrypt 1.6.3) initialized.
# Detected kernel Linux 4.9.85 x86_64.
# Topology: IO (512/0), offset = 0; Required alignment is 1048576 bytes.
# Checking if cipher aes-xts-plain64 is usable.
# Using userspace crypto wrapper to access keyslot area.
IO error while decrypting keyslot.
# Releasing crypt device /dev/sda3 context.
# Releasing device-mapper backend.
# Unlocking memory.
Command failed with code 5: IO error while decrypting keyslot.
Я нашел код, который вызывает эту ошибку, Вот, но это не дает мне никакого представления.
Как видно из вывода, раздел форматируется, но ключевой слот не записывается.
/ dev / sda - это raid-массив 3ware, таблица разделов была записана на устройство установщиком debian. Я обнаружил (по ошибке), что могу создать контейнер LUKS на всем устройстве, но это не жизнеспособный обходной путь для меня, потому что это единственное устройство хранения на сервере, и мне нужен незашифрованный / загрузочный раздел.
Я понял это до команды в моем вопросе, я пробовал то же самое, указывая раздел с помощью uuid, что-то вроде:
cryptsetup <options> luksFormat /dev/disk/by-uuid/<disk uuid>
во время этой операции uuid изменится. Я не понимаю мелочи, но в итоге я получил поврежденную таблицу разделов.