缺少主 GPT,并且 FileVault 卷也丢失

缺少主 GPT,并且 FileVault 卷也丢失

有一台 iMac 配备了单硬盘,并启用了全盘 FileVault 加密。一些技术水平可疑的“系统管理员”在没有 FileVault 密码或必要知识的情况下尝试访问数据,导致磁盘无效。

从他给出的稀少且零散的解释来看,可能他使用一些十六进制编辑器弄乱了磁盘结构,然而众所周知,使用此类工具会弄乱 CRC32 校验和,甚至维基百科明确指出. 据说这就是发生的事情。

所以我们现在得到的是一个没有任何分区的磁盘:

imac:/ a$ sudo gpt -r show /dev/disk1
       start        size  index  contents
           0  1953525135
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header

所以只剩下的是次要的 GPT 表和标题。

gdisk明确指出主 GPT 已损坏并建议从备份中恢复,但恢复的分区结构看起来很奇怪:

imac:/ a$ sudo gdisk /dev/disk1
GPT fdisk (gdisk) version 1.0.1

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: damaged

Found invalid MBR and corrupt GPT. What do you want to do? (Using the
GPT MAY permit recovery of GPT data.)
 1 - Use current GPT
 2 - Create blank GPT

Your answer: 1

Command (? for help): p
Disk /dev/disk1: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): D5FB3C42-0E3D-4DC5-B4A9-7C97E8704CF5
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 8-sector boundaries
Total free space is 1953262957 sectors (931.4 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34          262177   128.0 MiB   0C01  Microsoft reserved ... 

Command (? for help):

输出如下fdisk

imac:/ a$ fdisk /dev/disk1
Disk: /dev/disk1        geometry: 121601/255/63 [1953525168 sectors]
Signature: 0x2A74
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: ED  813 202  27 -  321 220  54 [ 783900958 - 3581756343] <Unknown ID>
 2: 7C  724 235  26 -  550 178  18 [1238663544 - 3274878647] <Unknown ID>
 3: F6  189 250  53 -  993 151  48 [2185613635 -  893877749] <Unknown ID>
 4: 2E  201 236  53 -  683  56  37 [  23839636 - 1903113077] <Unknown ID>

通过快速搜索testdisk发现了两个主分区,第一个分区是 类型MS Data,之前也被 检测到gdisk,但似乎是第二个,这可能很有趣,因为它是 类型Mac HFS,并且其大小约为 650 MB,表明它缺少 Recovery HD。所以现在我需要找到受 FileVault 保护的主要数据分区的边界:

  Partition Start   End Size in sectors 
P MS Data   1699755823  1702272435  2516613 [ M-:?->M-'` P^C ]
P Mac HFS   1952255592  1953525127  1269536 

testdisk的更深层次的搜索,不幸的是没有发现任何大的分区:

在此处输入图片描述

问题是甚至可以从辅助 GPT 表/头恢复分区结构?我认为如果这些存在,它们可能会有一些用处。我还能尝试什么检索主数据分区的位置

答案1

好吧,从标题来看,我自己的原始问题的直接答案非常简单,它实际上在问题正文中已经回答了:是的,可以从辅助 GPT 表/头数据恢复驱动器分区,它完成后会gdisk自动建议在启动后执行恢复过程,但就我而言,恢复的卷结构是垃圾。

我还可以回答有关主数据分区位置的下一个问题。是的,在了解 OS X 在安装过程中创建卷的方式后,可以计算出它的位置。因此,可以恢复丢失的卷,前提是它是使用默认设置创建的(默认 OS X 安装,没有额外的数据分区)。这就是我所做的。

为了了解 OS X 准备启动盘的模式,我将 Yosemite(幸好 El Capitan 没有对此进行任何更改)安装到某个备用的 320 GB 驱动器上。有了这些信息,我设法使用以下简单命令恢复了有问题的磁盘上的 FileVault 分区:

sudo gpt destroy /dev/disk2
sudo gpt create -f /dev/disk2
sudo gpt add -b 409640 -i 2 -s 1951845952 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk2

第一个命令毁掉了我那有缺陷的、无用的 GPT。第二个命令创建了一个新的。第三个命令标记了一个卷。不是重新创建,而只是标记有一个给定类型的卷恰好跨越这些扇区。顺便说一下,在这种情况下,一个扇区是 512 字节。

我怎么知道409640 -b开始和1951845952 -s大小?好吧,扇区 409640 是数据分区 2 的标准开始,它跨越EFI分区之后,OS X 始终在磁盘的开头创建分区,因此可以肯定。EFI始终以 409640 扇区结束。并且1,951,845,952扇区大小就是我的磁盘扇区总大小(1,953,525,168)减去Recovery HD大小(1,269,536) 减40磁盘末尾的扇区阈值减去409,640第二个数据分区之前的扇区。结果正是1,951,845,952。能被 8 整除,这意味着我是对的。

神秘的53746F72-6167-11AA-AA11-00306543ECACGPT 分区类型 GUID,这会将此卷标记为 FileVault 分区。不是常规的 HFS+。我用-我ndex 为 2,因此它是第二个,但我认为这个参数并不重要,因为我不会恢复其他两个分区(EFIRecovery HD)。老实说,在我调查期间,我曾尝试恢复Recovery HD,只是为了检查它是否存在,并且它确实存在,可安装,安全无虞。这次我忽略了它,因为EFIRecovery HD对我都没有任何用处,我不打算从这个驱动器启动,我只想挽救一些数据。

恢复 FileVault 卷的边界后,我立即收到了 FileVault 密码请求,我很乐意提供。这意味着我计算的边界是正确的。为了证明这一点,我甚至尝试了不同的边界,但这次没有任何密码请求。

然而,在 FileVault 卷成功解锁后,我得到了一个著名的

在此处输入图片描述

消息框,这意味着,即使我找回了 FileVault 分区,也并不意味着它是完整的。它是可以解锁的,但不知何故损坏了。

因此,现在我要看看我是否有机会修复这个 FileVault 卷或挽救数据。后续问题是这里

相关内容