我的加密硬盘西部数据WD5000BPVT运行 Ubuntu 14.04 时崩溃了,负责数据恢复的人询问加密密钥存储在硬盘的哪个位置,以便他可以集中精力修复该区域。他还询问了加密类型和其他信息,但我想我可以在其他问题中找到这些信息。
他还告诉我,我应该尝试找到原始设备,因为它可能用那台笔记本电脑的序列号加密。对我来说,非常重要的是,这家伙不会发现这个硬盘上有什么,因为这是一个加密货币钱包,他可以不留痕迹地窃取它。
我让他制作磁盘映像是否不合理?我应该找一个新的恢复人员吗?
答案1
在 LUKS 分区中,标题是最多前 2 兆字节 ( 2MiB
)。如果您无法恢复标头,则您无法恢复数据,因为标头包含解密分区其余部分的密钥。
要获取该密钥,您需要一个有效的密码或密钥文件来匹配八个密钥槽之一。
我建议你不要把密码告诉别人,尤其是当你似乎不信任数据恢复技术人员的时候。他似乎也不知道加密是什么:它不是用笔记本电脑的序列号加密的;你使用密码解密。
备份 LUKS 头文件和分区
您应该对磁盘进行映像处理,并保留 LUKS 标头的额外副本。您可以使用以下命令轻松备份 LUKS 标头:
cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /media/sda2.luksHeaderBackup
… /dev/sda2
LUKS 分区在哪里,以及/media/sda2.luksHeaderBackup
您想要保存头备份的地方。
要恢复 LUKS 分区,你可以使用gddrescue
:
ddrescue -Svv /dev/sda2 /somewhere/else/rescue.img /somewhere/else/ddrescue.log
…/somewhere/else
到具有比 大小更多的可用空间的挂载的路径在哪里/dev/sda2
。
gddrescue
的地图文件/somewhere/else/ddrescue.log
还可以帮助您识别硬盘中哪些区域无法读取。
读取复制的图像
要解锁/somewhere/else/rescue.img
,请使用以下命令:
cryptsetup luksOpen /somewhere/else/rescue.img rescue
输入您的密码,cryptsetup
将会把解锁的分区映射到/dev/mapper/rescue
。
您现在可以安装/dev/mapper/rescue
:
mount /dev/mapper/rescue /mnt
并且您的文件将会在 中/mnt
。
需要考虑的极端情况:完整磁盘映像而不是分区映像
如果您决定制作完整磁盘而不是仅制作分区的映像,则需要映射完整磁盘映像内的分区。
您可以使用以下选项之一来执行此操作(尽管还存在其他选项):
# Option 1
kpartx -av /somewhere/else/rescue.img
# Option 2
LODEVICE="$(losetup -f)"
losetup -P "$LODEVICE" /somewhere/else/rescue.img
然后您可以使用以下命令找到您的 LUKS 分区:
blkid /dev/loop* | grep crypto_LUKS
如果/dev/loop0p2
是您的 LUKS 分区,您应该解锁/dev/loop0p2
而不是/somewhere/else/rescue.img
。