我有一个有 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
它不是魔术字节。
寻找正确的数据;这应该给你正确的位置。