移动硬盘用得好好的,突然就从电脑掉线了,还以为是usb接口没插好掉了,重新插上,结果移动硬盘显示已识别硬件,但就是没有图标,打开磁盘管理,发现变成2048GB的状态良好(GPT保护分区)剩余的未分配分区
尝试换电脑、重启等方法解决都无效,下载了几个数据恢复软件,有的根本就不识别移动硬盘,有的能识别,但要恢复数据要注册版,且要数据另存的空间,成T的数据要恢复,相当于得再买块硬盘来另存。就差找数据恢复公司了
后来一咬牙,自己研究一下GPT分区看能不能解决
最后还真解决了,用的是winhex,简单描述一下:
GPT分区表,大家可以找网上的资料看看,一开始觉得很神秘,多看看后基本结构也就清楚了
扇区0是传统的MBR分区表,适用于2T(正好是2048GB)以下的硬盘,在GPT引导盘里只是个摆设,告诉电脑这个硬盘是正常硬盘,如果GPT分区表坏了,就会尝试用这个MBR分区,但因为它是个摆设所以肯定不能获取到正确的磁盘分区信息,所以电脑也就报错(GPT保护分区)
扇区1是GPT头,里面的信息是这块硬盘分区的基本结构,哪里是分区哪里是分区备份等的
扇区2-33就是硬盘具体的分区划分,也就是E:盘 、F:盘 、 G:盘等等这块硬盘上分区的具体划分标志,一共占用32个扇区,用winhex看每个扇区有32行,每8行是一个分区信息,这样每个扇区记录4个分区信息,一共可以记录32扇区*4=128个分区,也就是在windows中一个硬盘可以给它总共分128个分区,当然一般大家最多也就是分3到4个,再加上一些系统默认的隐藏小分区总共也不会超过8个,所以按每扇区4个计算,最多用1到2个扇区就能记录分区信息了,也就是第2扇区和第3扇区这两个扇区,其余直到33扇区都是空的没有记录。
34扇区以后就是硬盘数据记录区,有兴趣可以自行研究,略过
最后一个扇区,也就是倒数第1扇区,是扇区1GPT头的备份,
倒数34-倒数2扇区,就是上面2-33扇区的备份。
以上就是GPT分区表的简单结构。
然后是我硬盘问题的解决:用winhex查看,发现基本数据都正常,但是多了几个不能识别的分区,查看扇区2,信息显示有16行数据,也就是这块硬盘被分了2个区,前8行解读为microsoft reserved partition,是系统隐藏分区,后8行解读为basic data partition,这就是我真正的分区了,因为这个硬盘我就没给分区所以实际就一个分区,但加上查出来的隐藏分区总共就2个,这就是我硬盘的正确分区,而winhex显示的几个多出来的不能识别的分区及未分配分区显然与扇区2记录的总分区为2对应不上。于是又查看了扇区3-33的内容,果然发现,3扇区以后的内容都是0,但在扇区30、31、32都出现了几行数据,用分区格式解读发现没有意义。既然它们在2-33扇区范围内,那系统会认为它们是分区信息,但解读又不符合格式,那就是解读失败,只能显示为不能识别的分区,所以导致GPT分区表读取异常,也就出现了不能识别硬盘的情况。
既然知道问题就是GPT分区表错误导致的,那就要修复分区表,但实在不明白那几个扇区的错误值是怎么产生的,找了很多帖子也没个正常的处理办法
最后一咬牙一狠心,既然分区表结构就是这样的,那就按正确结构来,试着把30,31,32这几个不能解读的扇区信息都给清0了。顺便说一下,我的备份扇区里的信息也都是同样错的,也给同步清0了,做完保存,然后在windows磁盘管理器刷新磁盘管理,然后然后,硬盘就起死回生回来了。。右键点打开,里面的数据全都在。
最后还有说一下,winhex自己找个破解版,试用版除了看啥也干不了。
希望碰到同样问题的人参考,网上的资料实在太少了(本文知乎同步,是因为找资料时发现遇到同样的问题,悬而未决)