Linux文件系统恢复

昨天我为了安装新系统调整了一下分区,不过因为操作失误,把分区表弄坏了。今天终于得以恢复,高兴之余,作点记录。


问题引发的具体原因已经无从查起,首先发现/dev/sda2 不能mount成功。用磁盘实用工具查看发现文件系统是未知。

由此看来是分区引导记录损坏造成。用testdisk命令找回了分区。


可是,又一次操作失误,由于testdisk停止过早,还没扫描出后面有用分区,我就Write了。导致后面分区的丢失。

不过没有关系,用testdisk再找回来。成功找到了所有分区,Write。


此时硬盘使用中没有其他问题了,但是用GParted打开看到整个硬盘是未分配状态。

用 fdisk -l 依然能看到所有分区。

用磁盘实用工具查看,发现testdisk找回了分区,但是把分区结构搞错了,一个逻辑分区跑到了扩展分区外面。

由于用GParted不能识别和调整分区了,看来问题很严重。


经过搜索(Yahoo: GParted Unallocated Space),我找到了与我同样的问题:

http://ubuntuforums.org/showthread.php?t=1669219

解决方法是用sfdisk来调整,这是一个分区引导修复工具,这里简要提一下修复过程。


(这些命令需要su权限,做这些以前,务必先用testdisk找回所有分区,不管结构对不对)

首先 sfdisk -d /dev/sda > parts 

然后调整分区的名字(逻辑分区要用sda5、sda6...来命名)、次序(逻辑分区那行放在扩展分区这行的后面)、大小(回忆以前的分区结构,重新估算每个分区大小以及扩展分区的起始偏移)

然后检查一下所有分区有没有重叠,有没有分区扩展到磁盘容量以外(GParted不能看到分区就是这个原因),这很关键。保存这个文件。

最后用 sfdisk --force /dev/sda < parts 写分区表,并用 partprobe 刷新分区


如果上面参数设置无误,是一定能将分区拯救回来的。这其中可能需要读者一定的估算和计算,才能把分区信息写正确。


然后GParted就可以看到所有分区了,之后做更多优化调整。我现在已经恢复所有分区了!

网上搜索类似的问题,最后往往是以“格式化”结贴的。所以最后,给大家的建议是,常记得备份数据、备份分区表、备份主引导,这样灾难就不会发生了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值