LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1952|回复: 14

[解决了]cfdisk和磁盘分区的问题,恢复分区

[复制链接]
发表于 2009-8-1 11:07:38 | 显示全部楼层 |阅读模式
一个不小心,用window下的盗版工具修复了一下mbr。现在在linux下,出问题了。表现为cfdisk出错。显示:FATAL ERROR: Bad logical partition 1: enlarged logical partitions overlap。
前3个primary分区都出错了。fdisk -l也是显示这个问题。但是gparted,不显示分区出错。目前,看起来正常。但是这个可不是个好现象。搜索了一下,好像是因为windows和linux磁盘工具对磁盘的处理不同,造成的。
有什么工具可以让修复这个问题,在不重新安装系统的前提下,让cfdisk不在出错。谢谢了。
用了testdisk,有问题,因为这个分区是ext4的,testdisk好像不认识这个分区格式。
[color="Red"]
昨天修复过程中,误删除分区了。把有最新数据的分区给删除了,误以为是老的备份分区。现在知道分区大小,从什么地方开始,就是不知道怎么恢复回来?
谢谢了。
[color="blue"]谢谢zhou3345和druggo,分区和数据都完全恢复了。因为终端的历史记录里边有分区表的信息,尽管是用柱面表示的,但是因为自己记得其中一个swap分区的大小,所以很容易重新建立了这两个分区。这个时候建立起来的分区,可以直接mount,无需其它的工作,安全的做法,是fsck一下这个分区。 当然如果你知道这个分区确切的开始byte,你可以直接mount,用offset这个parameter,后边的帖子里边有例子。
遗留问题,一个是testdisk不能够发现这两个给删除的分区(swap和ext4分区)。如何在知道一个分区的大概的范围情况下,用mount可以把这个删除的分区给mount起来?
发表于 2009-8-1 11:33:10 | 显示全部楼层
fdisk可以修复分区表错误的。
另外如果想要恢复原来的分区表,可以用testdisk,很强大的,也有windows版。(不知为什么有一次磁盘出问题,用Linux版的testdisk解决不了,但用windows版的解决了。当时怀疑是linux版对ntfs文件系统的支持不好,没有深究。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-1 21:12:41 | 显示全部楼层
Post by zhou3345;2011431
fdisk可以修复分区表错误的。
另外如果想要恢复原来的分区表,可以用testdisk,很强大的,也有windows版。(不知为什么有一次磁盘出问题,用Linux版的testdisk解决不了,但用windows版的解决了。当时怀疑是linux版对ntfs文件系统的支持不好,没有深究。)

昨天修复过程中,误删除分区了。把有最新数据的分区给删除了,误以为是老的备份分区。现在知道分区大小,从什么地方开始,就是不知道怎么恢复回来?
回复 支持 反对

使用道具 举报

发表于 2009-8-2 00:03:46 | 显示全部楼层
这正是我推荐你用testdisk的原因,它能帮助你恢复到以前的分区状态。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-2 00:17:02 | 显示全部楼层
Post by zhou3345;2011639
这正是我推荐你用testdisk的原因,它能帮助你恢复到以前的分区状态。

非常谢谢。2个多月的工作都在上面。非常需要恢复这部分数据。
现在的问题是testdisk根本发现不了硬盘上这个给删除的这个分区。
是不是因为这个分区是ext4的?它发现不了superblock?
如果我按照我知道的分区表,重新新建这个分区,可以把文件找回来吗?
我先买个硬盘回来,把这个硬盘给备份了先。
回复 支持 反对

使用道具 举报

发表于 2009-8-2 00:28:32 | 显示全部楼层
它不识别ext4,但确定分区范围还是可以的呀。这个东东界面不是太好看懂,我开始用它恢复分区的时候也研究了好一阵子。

要不你用李大海的磁盘精灵试试?这也是个很不错的分区表恢复软件。windows only的。

其实也不用识别此分区,只需要将这个分区的范围确定下来,然后以ext4格式挂载应该就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-2 00:57:06 | 显示全部楼层
Post by zhou3345;2011653
它不识别ext4,但确定分区范围还是可以的呀。这个东东界面不是太好看懂,我开始用它恢复分区的时候也研究了好一阵子。

要不你用李大海的磁盘精灵试试?这也是个很不错的分区表恢复软件。windows only的。

其实也不用识别此分区,只需要将这个分区的范围确定下来,然后以ext4格式挂载应该就可以了。

谢谢你的帮助。我试验了模拟分区一下,分区范围和section都一致。现在磁盘还没有备份,不敢尝试。
回复 支持 反对

使用道具 举报

发表于 2009-8-2 02:25:55 | 显示全部楼层
知道分区表?那重新分区就可以了啊,然后挂载就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-2 04:23:22 | 显示全部楼层
Post by druggo;2011675
知道分区表?那重新分区就可以了啊,然后挂载就可以了

是的。因为在之前,用fdisk -l 列出过分区表。运气好在,终端历史里边,可以看到。
就这么简单?那我也得小心翼翼。免得再出差错了。现在在备份整个硬盘。免得自己再犯低级错误。速度好慢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-2 07:36:02 | 显示全部楼层
Post by zhou3345;2011653

其实也不用识别此分区,只需要将这个分区的范围确定下来,然后以ext4格式挂载应该就可以了。

我用
mount -oro,offset=100045368722 /dev/sda /mnt/windows

但问题是这个xxx (这个单位是Byte),太难确定了。好像差一点点,就挂载不成功。
如果就知道一个范围(100G-160G),怎么样才可以挂载成功?如果有什么技巧,请提供,太谢谢你的指导了。:thank
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表