Linux数据恢复专题(1)——恢复丢失的分区
背景
遇到“/dev/hda: device not found”这样的消息,说明你的硬盘肯定出问题了(废话-_-)!而这种消息可能是由于不同情况引起的,在这里介绍属于磁盘分区表受损时的对策。这种情况下,磁盘数据都还在,只不过暂时无法访问。
方法
鉴于仅凭记忆手工恢复分区表是不现实的,这里介绍通过软件恢复分区表:使用gpart程序扫描指定的磁盘驱动器,标识看似分区签名的表项。gpart默认只是显示像是分区的表项,但它也能将表项写入磁盘,从而重建分区表。注意,这个过程是危险的。不过总比丢失全部数据要强 :)
------------------------------------------------------------------------------------------
在你的硬盘还正常的时候,可以尝试备份分区表并存放到安全的地方,以供灾难恢复:
dd if=/dev/xxx of=filename bs=512 count=1
用于恢复的命令:
dd if=filename of=/dev/xxx bs=1 count=64 skip=446 seek=446
上面的两条命令中,xxx代表你的磁盘符号,比如hda、sda等;filename为备份文件的文件名。
注:上面的命令同时也备份了MBR和Boot Record ID,但恢复时只恢复了其中的64字节(分区表)。
------------------------------------------------------------------------------------------
gpart默认能识别下面的文件系统:beos,bsddl,ext2&ext3,fat,hpfs,hmlvm,lswap,minix,ntfs,4,rfs,s86dl和xfs。
工作
下面以/dev/hda为例:
gpart /dev/hda
上面的命令会列出gpart猜出来的分区构成,大多数情况下是和实际相符的。确认无误后,可以使用下面命令重建分区表:
gpart -W /dev/hda /dev/hda
如果不放心,可以在写前备份现有的MBR:
gpart -b filename -W /dev/hda /dev/hda
其中,filename为备份文件。
总结
磁盘主分区表损坏造成的驱动器无法识别错误,一般是比较容易解决的,gpart能够出色地猜出和重写磁盘分区表。如果是磁盘因为严重损坏而不能挂接,则可以参考本专题第二篇文章——从严重损坏的磁盘恢复数据
阅读(1088) | 评论(0) | 转发(0) |