恢复 LUKS 分区

恢复 LUKS 分区

我有一个有 2 个分区的驱动器

  • 第一个是纯 ext4
  • 第二个是加密的 LUKS。

分区表已被覆盖。我找到了第二个分区的开头,我需要恢复它,因此:

# hexdump -s 400000m -C /dev/sdc | grep LUKS
61d3dec850 79 c8 81 6d e5 4c 55 4b 53 40 49 aa 29 df de d7 |y..m.LUKS@I.)...|

还:

# losetup -o 0x61d3dec850 -r -f /dev/sdc
# losetup -a
/dev/loop0: [0005]:477209 (/dev/sdc), offset 420166420560

至此,出现了这个问题:

# cryptsetup luksOpen /dev/loop0 luksrecover
Device /dev/loop0 is not a valid LUKS device.

是不是偏移量错了?我应该寻找神奇的数字吗0xEF53识别 ext4 的神奇数字吗正如这里所建议的

这是一个 1TB 驱动器,所以拜托,我需要一个建议,不要强制再次扫描整个驱动器(例如,testdisk似乎没有选择从指定的偏移量开始以节省扫描时间)。

聚苯乙烯这个问题看似密切相关,但不匹配

答案1

dd if=/dev/mapper/storage2-crypto bs=16 count=1 2>/dev/null | 
  od -t c -t x1
0000000   L   U   K   S 272 276  \0 001   a   e   s  \0  \0  \0  \0  \0
         4c  55  4b  53  ba  be  00  01  61  65  73  00  00  00  00  00

这就是我的系统上的样子。看https://gitlab.com/cryptsetup/cryptsetup/wikis/LUKS-standard/on-disk-format.pdf(第 6 页)

前 6 个字节必须相同,很可能是前 8 个字节,也可能是前 16 个字节以上。您找到了一个字符串,LUKS但显然是错误的,因为LUKS@I它不是魔术字节。

寻找正确的数据;这应该给你正确的位置。

相关内容