卷头对于HFS+文件系统来说是至关重要的,卷头中存储着大量的文件系统结构参数。Mac OS X系统在挂载文件系统时会读取卷头,如果卷头损坏,系统会拒绝挂载文件系统。
在系统运行时,由于软件或临时性的硬件信号干扰,可能会导致卷头损坏,从而使文件系统运行出错,并且无法再一次挂载,最终导致宗卷内的数据无法访问。
HFS+文件系统在设计时,对卷头做了备份,放在宗卷的倒数第二个扇区,该位置一般不会遭受破坏,所以当卷头损坏后,可以考虑用备份卷头恢复被破坏的卷头。
由于卷头在文件系统运行时随时会发生一些参数的改变,而备份卷头并不跟随这个变化,所以在用备份卷头恢复破坏的卷头后,为了文件系统能够正常运行,还需要做一下文件系统一致性检查,不过这个检查是有一定风险的,做之前一定要对整个磁盘镜像。
下面具体分析一个实例。
一块用于Apple电脑的eSATA接口的移动硬盘,某天连接到Apple电脑时文件系统无法挂载,数据不能访问。
将该移动硬盘从Apple的eSATA接口上拔下,准备连接到数据恢复工作机上进行分析,但因为现在大多PC还没有eSATA接口,所以只能把移动硬盘盒拆开,把里面的硬盘拿出来连接到PC上。
连接好后用WinHex访问这块硬盘,分析发现Apple分区映射表没有问题,但卷头部分是空的,没有数据,问题就出在卷头上了。
根据分区映射表内的参数算出分区的结束扇区号,然后再返回一个扇区,就是卷头的备份扇区了,定位到这个扇区,其内容如图6-66所示。
图6-66 卷头的备份扇区
在恢复卷头之前,为了保险起见,我们将该盘做了一个完整的磁盘镜像,然后将备份卷头复制到被破坏的卷头处,存盘退出,再将硬盘从PC取下,重新装入移动硬盘盒,连接到Apple电脑上。
然后在Mac OS X系统下首先对该硬盘的文件系统运行了一致性检查,在很短的时间内就完成了检查,系统自动修复了卷头中“文件数”、“目录数”、“空闲块数”、“下一分配块号”、“下一目录ID”等参数,文件系统就能正常使用了,所有数据完好无损。