Можно ли исправить поврежденный заголовок LUKS?
Я просто случайно переписал метаданные LUKS моего тома новым заголовком LVM. У меня есть копия оригинального заголовка LUKS, но я не могу ее найти. На всякий случай я сделал дд-образ первых 10 МБ теперь испорченного тома на флэш-накопителе.
Мой вопрос: возможно ли восстановить заголовок LUKS? В частности, если я запущу 'cryptsetup luksFormat' с той же парольной фразой, длиной ключа и т. Д., Увижу ли я старые данные? Есть ли какое-либо засоление, и можно ли указать соль?
Я полагаю, что если sizeof(заголовок lvm2) Я полностью укусил это, или есть какой-то небольшой шанс...?
2 ответа
У LUKS2 есть резервный заголовок, но у LUKS1 (который вы, вероятно, используете, поскольку LUKS2 является довольно новым и пока еще немногие дистрибутивы поддерживают его) нет.
Если вы не сделали резервную копию заголовка самостоятельно, вы облажались. Перейти к своим резервным копиям.
Если вы сделали резервную копию заголовка, восстановите первые 2 МБ блочного устройства, так как это длина заголовка LUKS1, и у вас может быть такая возможность.
dd bs=2M count=1 if=/home/zonko/backup_luks_header.bin of=/dev/block_device
Как отметил Свен в комментарии, вы также можете использовать cryptsetup luksHeaderRestore
, который эффективно делает то же самое.
Для будущих охваченных паникой людей, которых натолкнула сюда поисковая система: вы не первый и не последний человек, забивший гол в свои ворота. Будьте добры к себе.
Кроме того, если что-то подобное произойдет с вами и у вас нет резервной копии или резервной копии заголовка, сначала убедитесь, что вы действительно перезаписали заголовок LUKS, а не просто думаете, что у вас есть.
В частности, если вы используете зашифрованный раздел, заголовок LUKS (как вы могли догадаться) расположен в начале раздела, а не в начале устройства. Итак, если вы только что перезаписали начало своего блочного устройства и удалили таблицу разделов (возможно, из-за ошибки dd? спросите меня, откуда я знаю...), ваш раздел может не отображаться, но он все еще там, пока вы не записали в раздел (первый раздел обычно имеет размер 1 МБ =1024 КБ). В этом случае достаточно воссоздать таблицу разделов.
Как всегда, когда случается беда, сначала создайте образ своего диска и поэкспериментируйте с ним, чтобы в конечном итоге не усугубить плохую ситуацию.
Чтобы проверить, существует ли заголовок, откройте блочное устройство в шестнадцатеричном редакторе и найдите первичный и/или вторичный заголовки LUKS.
#define MAGIC_1ST "LUKS\xba\xbe"
#define MAGIC_2ND "SKUL\xba\xbe"
Если что-то есть, вам просто очень повезло.
Чтобы восстановить таблицу разделов, некоторые люди предлагаютtestdisk
, но в моем случаеcfdisk
этого было достаточно, чтобы воссоздать таблицу разделов и устранить повреждения. К счастью, я перезаписал только первые 30 КБ диска, а LUKS был установлен на первый (и единственный) раздел. Что также позволило легко воссоздать таблицу разделов.
Кроме того, если вы читаете это, сделайте резервную копию заголовка LUKS с помощью
sudo cryptsetup luksHeaderBackup --header-backup-file BACKUP_FILENAME DEVICE