我现在知道这是一个愚蠢的决定,我尝试使用 windows 安装程序双启动 Windows 和 linux,在启动到 windows 安装程序后,我选择了 2 个大小约为 500GB 的克隆硬盘驱动器中的一个来擦除,因为它们是clone 如果我选择一个而不是另一个也没关系。
这样做之后,安装程序说它更改了其中一个 500GB 硬盘的分区表,然后无法安装 Windows。在没有复制文件的情况下因错误而崩溃,或者它说,当它说它甚至无法开始安装时,我不确定我是否可以信任它。
所以我启动到我的 linux 安装以检查它覆盖了哪个驱动器并手动安装它。相反,迎接我的是我的其他驱动器之一,一个 6TB dm-luks 和 btrfs 驱动器,丢失了。不仅两个 500GB 驱动器都没有动过,而且 6TB 驱动器似乎添加了一堆乱七八糟的分区。6个分区依次为499M、99M、499M、100M、499M、100M。
由于我的驱动器很大而且很慢,运行到目前为止hexdump -C /dev/sda |grep LUKS
产生了这么多,我会在完成时更新:
8d411ce0 e1 ad 4c 55 4b 53 c0 85 22 3d de 49 dd 44 fd 08 |..LUKS.."=.I.D..|
e6449610 d5 cf 4a 86 9f cc 4c 55 4b 53 a9 a9 16 cc ba 1d |..J...LUKS......|
446ea9a70 b3 db a9 bf 8b 2e 41 4c 55 4b 53 ef f0 75 b0 18 |......ALUKS..u..|
4732c6040 e0 b3 bb ff 4c 55 4b 53 4c c2 5b 12 c6 41 fc d6 |....LUKSL.[..A..|
到目前为止,自从发生这种情况以来,唯一接触过磁盘的是 hexdump,我对运行 testdisk 犹豫不决,因为我听说它会覆盖驱动器上的数据,并且它不会将 luks 列为它可以搜索的内容。
我可以看到其他人使用 hexdump 来检查完整的标头,但是,我不知道我到底在寻找什么。
此时我能做些什么来查看是否可以恢复标头的任何位。有没有办法运行 testdisk 或其他工具来查找 luks 标头以判断它们是否已被覆盖?任何让我知道是否一切都是 FUBAR 的方式都与恢复我的数据的方式一样受欢迎。
编辑
在没有 grep 的情况下在驱动器的第一位上运行 hexdump 显示至少有一些完整的 JSON,从到00005000
显示00005310
同样多,我更不确定我现在特别寻找的是什么以了解它是否仍然完好无损。它似乎覆盖了数据直到这个确切的字符串。
00005000 7b 22 6b 65 79 73 6c 6f 74 73 22 3a 7b 22 30 22 |{"keyslots":{"0"|
00005010 3a 7b 22 74 79 70 65 22 3a 22 6c 75 6b 73 32 22 |:{"type":"luks2"|
删除中间的数据,因为它包含盐,但块结束于:
000052f0 22 2c 22 6b 65 79 73 6c 6f 74 73 5f 73 69 7a 65 |","keyslots_size|
00005300 22 3a 22 31 36 37 34 34 34 34 38 22 7d 7d 00 00 |":"16744448"}}..|
00005310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
它完好无损吗?