我有 16GB 加密的 LUKS 闪存驱动器,其分区表已损坏。以下是 fdisk 输出:
fdisk -l /dev/sdf
Disk /dev/sdf: 16.2 GB, 16236150784 bytes
64 heads, 32 sectors/track, 15484 cylinders, total 31711232 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdf doesn't contain a valid partition table
这可以恢复吗?
答案1
首先,您是否加密了整个硬盘/dev/sdf
或分区/dev/sdf1
?尝试cryptsetup luksOpen /dev/sdf test
从根终端查看您是否加密了整个卷而不是其中的第一个分区。这没关系,您只需要在每次安装时记住这一点并忽略分区警告。(您可能无法通过磁盘实用程序 GUI 安装它 - 每次都需要使用命令行。)
如果您确实覆盖了分区表,则可能需要使用工具来重新创建。如果您只有一个分区,则应该不会太难,并且诸如这样的实用程序cfdisk
可能会有所帮助。显然,不要在之后格式化分区。
如果您确实覆盖了分区表,那么比在其上放置新分区表更安全的方法可能是cryptsetup
查看加密卷的起始扇区而不是该卷的 0 扇区。我确信这在某种程度上是可行的,但想不出有什么工具可以做到这一点(您可以使用“回送”文件轻松做到这一点,但我不确定它是否losetup
适用于原始设备/dev/sdf
)。
您可以dd if=/dev/sdf | hexdump -C | less
滚动浏览直到找到文本LUKS
- 然后将其除以 512 以获取 LUKS 分区的起始块。