Chinaunix

标题: TestDisk 找回丢失的硬盘分区表 [打印本页]

作者: zyf76123    时间: 2009-09-03 14:09
标题: TestDisk 找回丢失的硬盘分区表

分区表丢失
早晨启动笔记本,被告知未找到操作系统,有点心惊,用Linux 启动U盘引导系统,查看我的主硬盘设备:fdisk -l /dev/sda ,找不到任何分区,应该是分区表丢了,原因不知道。
从前使用Windows 软件FinalData 恢复过被快速格式化甚至重新分过区的硬盘数据,于是把硬盘拆下,装在第二块硬盘托架内,借了台thinkpad,装了FanalData,但发现它只能恢复文件,不能恢复分区表,而且对Linux 分区数据也无能为力。
恢复分区表
在尝试易我分区表医生未果之后,Google到这篇文章:
介绍一个 GPL 的分区表修复工具 TestDisk | BT的花
,找到
TestDisk
,下载了Windows 版,先读了一遍Using TestDisk 下面的文档,然后开始对故障硬盘进行Analyse ,但经过Deeper Search 之后,仅仅找前三个主分区,位于Windows 扩展分区内的两个对我而言最重要的逻辑分区未找到。记起帮助文档中介绍
Geometry
下面可以调整柱面(C)、磁道(H)、扇区(S)、扇区size(SS)等参数,目前设定为:9730、255、63、512,将Head修改为240 (柱面数没有进行修改,TestDisk会自动读取剩余的柱面,如果需要计算的话,SS 不变,应该满足:new_C=9730*255/240),再次执行Analyse,TestDisk读出了所有的分区信息!
使用p 命令可以列出每个分区上的文件,经过仔细确认,分区信息无误之后,执行写入分区表。
修复MBR grub
装回硬盘,启动,屏幕左上角出现了几个字母后停住,估计是MBR grub 损坏,从U盘引导,mount 主硬盘的/boot 分区,进入/boot/grub 目录,执行grub,重新写入主硬盘MBR:
# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

再次硬盘启动成功,进入系统,所有分区数据访问正常。
后记
如果有分区表备份,在这种情况下,可以使用Linux fdisk 按照原来的起止柱面,直接建立原类型分区,数据也同样可以找到。
看来备份分区表很重要,可以添加这样一条命令到crontab,来备份最近7天的分区表信息(还应该有机制自动将备份文件mail 出去或者同步到移动存储器,也可以scp 到本地硬盘以外的主机):
00 12 * * * fdisk -l > ~/.pt_backup_$(date '+%Y%m%d'); find ~ -name ".pt_backup_*" -mtime +7 -exec rm -f {} \;
TestDisk Windows 版本在系统安装有cygwin 的情况下,启动出错,大概是因为系统中的cygwin1.dll 版本更新,删除了TestDisk 解压目录中的cygwin1.dll 之后可正常启动TestDisk。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93831/showart_2044745.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2