内置硬盘上的 LUKS

内置硬盘上的 LUKS

我有一个使用 LUKS 加密的硬盘。它最初是一个外部硬盘驱动器。最近我拆掉了外壳并直接连接(通过SATA)。但是,当我直接连接时,无法查看分区,也不会提示输入密码。在 4 TB 中,它显示了 500 GB 的未知分区和 3.5 TB 的可用空间。

我将其从系统中删除,然后再次将其作为外部硬盘连接,ubuntu 会检测到分区,并提示输入密码。

另外,分区显示为 MBR,而实际上是 GPT

答案1

这可能是扇区大小的问题。某些 USB 外壳声称其驱动器具有 4KiB 扇区,而驱动器将自身表示为 512 字节扇区,反之亦然。不幸的是,分区表(msdos 和 gpt)取决于扇区大小。如果扇区大小发生变化,分区表就会失效。

现在,这是一个可以通过软件解决的问题 - Linux 可以变得足够智能,能够正确解释 GPT 分区表,而不管驱动器声称拥有的物理扇区大小。但它并没有这样做,而且它可能不是标准的一部分,所以......

您需要做的是在 USB 关闭中获取分区的准确字节偏移量

parted /dev/usbdrive unit b print free

然后看看这些分区偏移是否适用于内部驱动器

losetup --find --show --read-only --offset 1048576 /dev/internaldrive
file -s /dev/loopX

如果效果良好,请为内部磁盘重新创建具有相同(字节)偏移量的分区表(首先备份磁盘的前几兆字节/最后几兆字节)

parted /dev/internaldisk unit b mklabel gpt mkpart 1048576 42424242 ...

我不知道是否有一个分区程序足够聪明,可以自动“修复”这种错误扇区大小的分区表。它会击败手动方法,但是......

相关内容