恢复闪存驱动器的 LUKS 分区(应该)仍然有标头

恢复闪存驱动器的 LUKS 分区(应该)仍然有标头

在具有 7.1 GB 可用存储空间的闪存驱动器上,我有一个大约 3.1GB 的 LUKS 分区(第二个分区),IIRC。使用 balena 刷新的 Linux FS 删除了它,并且第一个分区(带有刷新的 OS 分区)为 2.2GB。(文章末尾似乎说明了这种情况是如何发生的,我对此感到困惑——尽管没有直接关系。)

如果上述内容不是严重错误(值得怀疑),则第二个分区(包括其标题)应该是可恢复的。……我开始进行一些互联网查询,但停止了——当谈到 Linux 时,我几乎从不发“请帮忙做什么??”帖子,一般来说,但在这种情况下,该分区对我来说非常有价值。不值得冒险犯错,因为做某事是根据与我的情况不完全一致的资源做出的。请注意,虽然我确实有最近的备份,但它还不够新,不足以抵消删除原始文件的影响。

指导请求: 我将使用基于 Arch 的实时发行版尝试恢复(可以使用不同的操作系统,但我认为这不是必需的)。我想请读者指导如何确认 LUKS 分区完好无损,然后尝试以高度规避风险的方式恢复它。当前分区表是 DOS,具有 2.2G FS 和 4M 启动分区;原始分区表是 GPT。任何输入都将不胜感激。

[对以上请求不重要] 附件 1-balenaEtcher 乱搞? ~TL;DR 2 次尝试刷新不同的驱动器,插入“Luks”驱动器,结果显示失败,关闭了 Win,稍后启动时可能保存了 balena 会话,并且只插入了 Luks 驱动器,而不是原始目标。发现:两个驱动器都以某种方式成功刷新 我已经用 rufus/balena 刷过几十次磁盘。在这种情况下,我试图刷一个不同的 exFAT 28gb 闪存驱动器。我上面只有一个小文件,在使用磁盘部分清理驱动器并继续尝试刷写之前删除了它。它完成了大部分/全部的刷写,然后验证,然后说失败了。我不得不去做点什么。AFK 了一段时间,所以就像 ¯_(ツ)_/¯ 经典的 diskpart/低于标准的 Windows 磁盘功能(fdisk 从未让我因擦除驱动器重新格式化而失败,而 Windows 却失败了好几次)所以 IIRC 我开始第二次刷写尝试。

现在,从第一次尝试开始,删除了 LUKS 分区的闪存驱动器就一直处于挂载状态。但是,我几乎可以肯定我没有错误地将其挂载到目标驱动器上。

现在,事情变得模糊了。我相信我回来后发现它又失败了,于是暂时搁置了这件事,关闭了 Windows,从那时到下次启动 Windows 期间,能够毫无问题地访问 LUKS 分区。当我稍后重新启动 Windows 时——“Luks”驱动器仍插着,但我认为不会闪烁的驱动器已经不存在了——我认为 balenaEtcher 会话已保存,因为我记得看到它仍然显示“刷新尝试失败”,之后我当时或稍后关闭了该窗口。

然后今天早上,我发现“Luks”驱动器已(成功)刷新,并且还测试了据称尚未刷新的另一个驱动器,事实上它也已使用相同的操作系统成功刷新。……我同意 Luks 驱动器被刷新的可能原因是由于在 balena 中错误地选择了它。

不过,我非常确定我没有选择它。对于第二次尝试,我通过读取其标签的开头来确认正确的磁盘,因为它是通过单击“重试”预先选择的。... 这两个驱动器的开头有不同的、容易区分的标签,并且大小也不同,所以我几乎可以肯定我在这里没有脑子发热,但我想你永远不知道。也许它决定在第二次尝试时选择两个磁盘?我 99.99% 确定我只选择了预期的驱动器进行第一次尝试。除了人为错误之外,还有什么可能的解释吗?更是为了满足我永不满足的怀疑。

答案1

在具有 7.1 GB 可用存储空间的闪存驱动器上,我有一个大约 3.1GB 的 LUKS 分区(第二个分区),IIRC。使用 balena 刷新 Linux FS 删除了该分区

说得具体点。“那个”是第二个分区吗?

第一个分区,其中操作系统分区已刷新,大小为 2.2GB。(文章末尾似乎说明了这种情况是如何发生的,对此我感到很困惑——尽管这没有直接关系。)

如果上述内容不是严重错误(值得怀疑),则包括其标题在内的第二个分区应该可以恢复。...

如果覆盖了第二个分区,情况会怎样?

也许我遗漏了一些东西,但你的帖子缺少了如果你想挂载加密的 LUKS 分区时系统如何运作。

之后的整篇文章对于恢复目的没有提供任何帮助。

由于 LUKS 格式定义明确,并且您不确定自己的操作,您可以尝试验证 LUKS 标头是否仍然存在。

https://gitlab.com/cryptsetup/cryptsetup/-/wikis/LUKS-standard/on-disk-format.pdf

只需搜索指纹“LUKS”。它必须位于相关分区的开头,后跟十六进制值 0xBA、0xBE。

[... LUKS_MAGIC {'L','U','K','S', 0xBA,0xBE} 分区头以 magic 开头 ...]

如果指纹不见了,你可能删除了分区头。你需要备份分区头来恢复分区。

相关内容