记一次奇特的分区修复(用 testdisk 重建分区表)

因为事情已经过去一个星期了,我已经记不清细节了,更无法截图。

Short Version: 能看到分区但是分区表不认?清空分区表,让 testdisk 帮你重建分区表。前提:备份好旧分区表,知道硬盘里有哪些分区。

神舟笔记本,物美价廉,性价比超高,思密达!神舟 K480A i7GD2
我本来是想在上面装 VMware ESXi 的,无奈网卡不认,可咱升级到 16G 内存就是为了玩虚拟化啊,于是装了 Windows 2008 R2。
为了用 Windows 部署服务我还开了域控制器,DHCP、DNS 等一大坨服务。

上个月底我要给国内服务器装 openSUSE 跑虚拟化啊,就打算在这个笔记本上试验一下。懒得配置 AutoYaST,就下载了 DVD 镜像刻录安装。
到了分区这一步,告诉我——这个分区表呢,我不认识,所以我不能写入。但是明明你能读取分区表啊!当时只有一个字,摔!

fdisk -l 跟我说你这是个 GPT 分区表的硬盘,我处理不了,您得用 parted
parted 又说呜呜呜你这个 GPT 有问题我找不到 GPT signature

那这个硬盘到底是不是 GPT 的呢?我用 Windows 2008 R2 安装盘启动,开命令提示符,diskpart 一看没问题啊,后来又用 BootRec.exe /fixmbr,没影响。。。
进了深山红叶的 DOS 环境,fdisk,4,看到的也挺正常的。
进了系统的“磁盘管理”,也不是动态磁盘。

这个时候我想到了 testdisk,但是哪里有呢。我翻遍了光盘桶,找到了 BackTrack 5 R3,testdisk 竟然不在系统 PATH 里,又用了一下 find 才找到 testdisk。
尝试各种修复无效后,想到 testdisk 可以根据硬盘上实际分区的状态重建分区表。遂删除硬盘上所有分区,让 testdisk 查找分区,很顺利找到了 Windows 的两个分区,重建了分区表。

重启进入 openSUSE 安装,分区顺利进行。

听起来好复杂的样子 :joy:

分区修复神马的最蛋疼了,一个不小心数据就挂了!

所以先备份分区表。我是考虑我的数据没有那么重要,所以就没备份,大家不要学我。

重点是:

testdisk 可以根据硬盘上实际分区的状态重建分区表。

删除硬盘上所有分区,让 testdisk 查找分区,重建分区表就好了。。。。