感谢您选择查看并提供帮助。
问题是这样的:
我有一个 1TB 的外部硬盘,其中有一个加密分区(约 286 GB)-luks(我将其称为 EP)一个未加密分区(约 580 GB)。-ntfs(我将其称为 UEP)
其余分区都是空的,所以它们无关紧要。我在 Windows 中使用 将 UEP 更改为“只读” "diskpart attributes volume set readonly"
。它似乎运行良好,没有问题,但过了一会儿出现了一些错误,我的分区表丢失了,分区管理器说整个驱动器未分配。gparted 和 fdisk 也是如此。
我尝试使用 testdisk它找到了所有丢失的分区,当我将恢复的分区写入磁盘时,UEP 返回正常,但加密分区现在莫名其妙地缩小到 2MB。
幸运的是,当我尝试将其从 GUID 转换为 MBR 时,我之前做了一些分区数据备份,并且在此之前有一些可能有助于恢复的扇区数据。
分区向导创建的崩溃前数据是这里(第 37/39 行是我所说的分区)。
碰撞后数据是这里(明显地,37 的开始和 39 的结束与崩溃前数据的 luks 分区相匹配)
LUKS 分区是这样的:
letter: * PartID: 7 Start: 137117696 End: 737118207 Size: 600000512 FsId: 255 Label: ClusterSize: -1 FreeSectors: 0 Primary: 1 Bootable: 0 BootVolume: 0 SystemVolume: 0
有没有办法可以恢复 LUKS 分区,同时保留 580 GB NTFS 驱动器?
我只需要恢复这里讨论过的两个驱动器。
这个你能帮我吗。
-丹麦
答案1
要重新创建原始分区方案,您需要运行分区工具并使用备份数据的起始和结束扇区创建每个分区。这应该会将 MBR 恢复到原样。尝试 sfdisk:
sfdisk /dev/sdb -uM << EOF
2,114828,52
114830,19074,0
133904,585938,255
719842,1187896,7
您应该自己检查一下。每行都是起始、大小、id,大小以兆字节为单位(-uM
),基于您的旧分区数据:
Start: 2048 End: 117585919 Size: 117583872 FsId: 52 Label: ClusterSize: 8 FreeSectors: 109144672 Primary: 1 Bootable: 0 BootVolume: 0 SystemVolume: 0
Start: 117585920 End: 137117695 Size: 19531776 FsId: 0 Label: ClusterSize: 1 FreeSectors: 19531776 Primary: 0 Bootable: 0 BootVolume: 0 SystemVolume: 0
Start: 137117696 End: 737118207 Size: 600000512 FsId: 255 Label: ClusterSize: -1 FreeSectors: 0 Primary: 1 Bootable: 0 BootVolume: 0 SystemVolume: 0
Start: 737118208 End: 1953523711 Size: 1216405504 FsId: 7 Label: Data-Drive ClusterSize: 8 FreeSectors: 1002478672 Primary: 1 Bootable: 0 BootVolume: 0 SystemVolume: 0
如果无法重新创建分区表,请查看此恢复 LUKS 分区的线程。
答案2
oldfred 的回答对我有用:)
谢谢 oldfred!
发布此文本文件和备份文件:将分区表结构备份到文本文件并保存到外部设备。 sudo sfdisk -d /dev/sda > PTsda.txt 如果现在是 MBR,您可以使用 sfdisk 将分区恢复到分区表。但如果是加密的 LVM,这是否可行则是另一个问题。 – oldfred 7 小时前
sfdisk -d /dev/sdc > PTsda.txt
在文本文件中编辑扇区大小,然后:
sfdisk /dev/sdc < PTsda.txt