Проблема одного зашифрованного диска в разных дистрибутивах Linux

При шифровании дисков с помощью dm-crypt (утилита cryptsetup), можно столкнуться с проблемой того, что диск, созданный и нормально использующийся в одном дистрибутиве Linux не получается использовать в другом дистрибутиве. Например, после апгрейда системы или при использовании экспортированного по iscsi диска на разных машиных.

При этом cryptsetup create на проблемной ОС выполняется нормально, и только при монтировании файловой системы происходит ошибка и сообщения такого вида:

[21922.459126] EXT4-fs (dm-0): ext4_check_descriptors: Block bitmap for group 0 not in group (block 425460162)!
[21922.459144] EXT4-fs (dm-0): group descriptors corrupted!

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

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

# cryptsetup status sdc_secure
/dev/mapper/sdc_secure is active:
cipher:  aes-cbc-essiv:sha256
...

После этого для подключения диска на второй системе этот шифр нужно указать в параметрах cryptsetup:

cryptsetup -c 'aes-cbc-essiv:sha256' create sdc_secure /dev/sdc

Comments are closed.