1

У меня 3 диска:

  1. Основная ОС (CentOS)
  2. Жесткий диск, зашифрованный с помощью LUKS для данных (аппаратный RAID10, LSI Logical Volume)
  3. Windows 10 (недавно установлена для тестирования)

Моя проблема в том, что когда я установил Windows 10, он сломал мой диск LUKS, создав на нем загрузчик ... Теперь я не могу расшифровать свой диск, и мне действительно нужны мои данные.

Могу ли я отменить процесс с помощью Gparted или другого инструмента? Я надеюсь, что мои данные не будут уничтожены этим загрузчиком ...

Мне действительно нужна помощь, пожалуйста!

РЕДАКТИРОВАТЬ 1 Добавлена информация

fdisk -l

Disk /dev/sda: 12000.0 GB, 11999999164416 bytes, 23437498368 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x385dcf68

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000    7  HPFS/NTFS/exFAT

После ответа Xen2050 вот мой результат:

LANG=C grep -obUaP "\x4C\x55\x4B\x53\xBA\xBE" /dev/sda

164822601573:LUKS��

Тогда надежда вернулась!

Я дд мой заголовок с размером блока 1 байта с этим

dd if=/dev/sda of=luks_header bs=1 skip=164822601573 count=2097152

Теперь у меня есть заголовок luks, я могу подтвердить, что начать с LUKS с помощью vi

LUKSº¾^@squashfs^@sqsh^@hsqs^@lvm2pv^@LVM2 001^@btrfs^@

Теперь следующий шаг - переписать мой заголовок luks ...

РЕДАКТИРОВАТЬ 2 Добавлена разработка

Из этого unix.stackexchange: https://unix.stackexchange.com/questions/177831/recovering-a-luks-partition

Я нашел начало, если мой заголовок

hexdump -s 164822601573 -C /dev/sda | grep LUKS
2660314f65  4c 55 4b 53 ba be 00 73  71 75 61 73 68 66 73 00 |LUKS...squashfs.|

Настроить петлевые устройства

losetup -o 0x2660314f65 -r -f /dev/sda
losetup -a
cryptsetup luksOpen /dev/loop0 luksrecover

Но у меня есть это сообщение об ошибке:

Unsupported LUKS version 115.

Я думаю, что мой заголовок поврежден ... Вот начало моего:

|LUKS...squashfs.|
|sqsh.hsqs.lvm2pv|
|.LVM2 001.btrfs.|
|_BHRfS_M.f2fs.. |
|...<device.</dev|
|ice>.PRI.TIME.DE|
|VNO.%s-XXXXXX.w.|
| PRI="%d".>%s</d|
|evice>.. %s="%s"|
|.%s.old.1.42.9.2|
|8-Dec-2013......|
|................|
*
|...............d|
|.... n;.0.&.A.v.|
|QkkXa.M<q.P ...D|
|.........a...d..|
|...x............|
|.............T..|
|..........@.....|
|.i@<device DEVNO|
|="0x%04lx" TIME=|
|"%ld"...........|

А вот и функциональный заголовок

|LUKS....aes.....|
|................|
|........xts-plai|
|n64.............|
|........sha1....|
|................|
|............... |
|2x.l...r0....8|.|
|...'..[!D..J..tp|
|....?J...~.x"s.=|
|.?.....]981be66e|
|-a0b0-4daa-8a2c-|
|5a6e5d8ed3ae....|
|..q....ZG..}#..,|
|...w..!|..3..>.?|
|.;.&...-........|
|................|
|................|

1 ответ1

1

Действительно, резервная копия заголовка LUKS - это то, что вам нужно. Но, возможно, возможно, что это на самом деле не было перезаписано, и только таблица разделов диска была испорчена, и вы не можете найти начало устройства LUKS.

Заголовок LUKS фактически начинается с символов LUKS затем двух не-ascii символов 0xba и 0xbe, так что вы можете искать всю строку в поисках этой строки. Все в гексе, это

4C 55 4B 53 BA BE

Ищите программу

PhotoRec должен быть в состоянии найти заголовки / файлы LUKS, и он находится в исходниках Debian и Ubuntu, и также доступен для Windows, попросите его выполнить поиск по всему диску.

Или попробуйте TestDisk (от того же автора), он может попытаться найти потерянные разделы и может найти LUKS.


Поиск "себя"

Или, вы можете поискать весь тип диска "сами" побайтно, с помощью вашего любимого шестнадцатеричного редактора (Bless is good) или с помощью grep на linux (найденный из этого другого Q):

LANG=C grep -obUaP "\x4C\x55\x4B\x53\xBA\xBE" /dev/your-hard-drive-device

Без начальной настройки LANG=C она не работала для меня, мой обычный "язык" - это, по-видимому, UTF-8, и эти опции представляют собой краткую форму --only-matching --byte-offset --binary --text --perl-regexp см. man grep или info grep)

Он должен вывести байт, где начинается заголовок LUKS, если он его найдет. Затем вы можете использовать dd чтобы скопировать контейнер LUKS в безопасное место, или использовать эту информацию для создания раздела, который начинается в правильном месте, хотя создание резервной копии в первую очередь будет безопаснее, вы не хотите перезаписывать заголовок по ошибке.

  • Например:

    $ LANG=C grep -obUaP "\x4C\x55\x4B\x53\xBA\xBE" file
    5242880:LUKS��
    

    Здесь 5,242,880 байт в файл (в linux все - файл, и весь жесткий диск, например /dev/sdb).

Сейчас самое подходящее время сделать резервную копию заголовка, длиной 1M или 2M, поэтому скопируйте следующие 2M с помощью dd .

dd требуется небольшая математика, чтобы определить хороший размер блока (-bs), it tends to read extremely slow with a low block size, the default 512 bytes is probably too slow for more than a few megabytes on a hard drive, 1M (1048576 bytes, dd` знает M, G, K и т.д.) Должно быть в порядке.

  • В приведенном выше примере, это ровно 5M от начала (5242880/1048576 = 5), поэтому эта команда скопирует из 5M в конец файла / устройства, записав в файл outfile (в текущем каталоге):

    dd if=file of=outfile bs=1M skip=5
    

Для резервной копии только с заголовком, вы можете использовать count=N чтобы остановить копирование после N блоков, просто выясните, сколько блоков выбранного вами bs= в 2 мегабайтах, над ним будет только 2. Смотрите справку dd для получения информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .