下面先说了一下我遇到问题的过程与解决的过程,比较详细和啰嗦,如果您比较急的话直接看最后面的总结。

 

(问题出现)

应我妈的强烈要求,前两个星期在京东上买了些配件装了个新机器,把家里用了快10年的旧台式机正式淘汰掉了,妈妈表示现在玩QQ梦幻海底都不卡了。

邻居看到了,也想把他家的机器更新了,我就基本原样又下了个单(应邻居要求加了个光驱,我家的机器是没配光驱的),周末赶回家把机器装起来。装机一切顺利,但是安装OS的时候出现了一个非常奇怪的问题。

听我慢慢道来。

硬盘用的是希捷1TB (ST1000DM003)的盘,主板用的技嘉GA-A75M-D2H,起先还搜到一些这些型号产品的问题,不过我研究清楚了才发现这和硬盘型号没有关系。

首先我自己安装系统的时候一切正常。

在给邻居装的时候,我使用我事先刻好的雨林木风Win7 Ghost盘,先使用一键分4区的方式,分了4 个区。(实际上这个功能的实现方法是做一个全盘分4区的镜像,disk to disk,ghost会自动按比例调整分区大小)。然后用一键将win7 ghost到c盘的方式安装,但是ghost的时候总是失败,一般走不到50%就卡死不动了,过一会光驱读盘也停止了。

然后如果从硬盘启动,有时候失败了会提示检测不到OS,有时候失败了会提示“A Disk Read Error Occurred. Press Ctrl+Alt+del to restart”。

 

(从盘装系统)

无奈只能把硬盘拔下来,挂到我家机器上作为从盘,将系统安装进去。

既然都要挂成从盘了,我就用disk genius把从盘分区重新规划一下。

(关于主分区,扩展分区,逻辑分区的知识在手动分区的时候很重要,也不复杂,一个图加三两句话就能说明白,不懂的同学请先自己百度一下)

具体方法:

1,将win7的ghost从光盘镜像中拷贝到硬盘(或将镜像挂载到虚拟光驱上)

2,若使用ghost32,可以直接ghost-> to partition  -> from image,注意选择目标硬盘的时候别选择了自己的硬盘否则就悲剧了

2‘,(由于已经用了disk genius,我第一次就是这么做的)若使用光盘镜像自带小工具,需要先用disk genius一类的软件把从盘的主分区转换成逻辑分区,并且分配一个驱动器号。

3,ghost之,注意从盘各个分区的驱动器号很可能不是有序的,需要注意观察一下谁是第一个分区(disk genius,win7自带的磁盘管理工具都可以)。

4,将从盘的第一个分区再转换为主分区,并且设置为Active。

 

(新问题)

重启,用从盘启动,发现还是“A Disk Read Error Occurred. Press Ctrl+Alt+del to restart”。刚开始以为是我把硬盘搞坏了,吓了一跳(刚刚不小心摔了一下)。但是用主盘启动进入系统后发现从盘各个分区工作正常,文件均可以正常读写。

怀疑是新主板问题,将我的硬盘拔掉,把邻居的盘插到我的主板上重新启动一遍,依然无效。

把我硬盘挂在邻居机器上,一切正常。不是主板问题。

事情陷入僵局。

 

(真正的解决)

郁闷的时候用disk gunius观察两个硬盘的分区参数。由于我以前练汇编的时候写过操作分区表的程序,对磁盘结构和各个参数还是比较熟悉的,无聊地想算一下分区容量和它算的一样不一样。突然发现从盘的第一个分区的起始磁头和扇区不是1,1,而是31,1。这很不正常啊!

而正常的应该是类似这样的(这个图是我发帖的时候为了说明问题,用实验室的机器重新截的):

testdisk arm版本 testdisk read error_扩展

这意味着bios读取了boot sector之后,应该是boot分区的这个主分区的起始位置不正常,它前面莫名其妙地空出了一块。bios加载操作系统的时候校验严格就以为自己读错了,于是就disk read error了。

这样就解释了为什么在bios加载os的时候会不正常,而挂为从盘的时候就可以正常读取(按照boot sector里的起止参数直接操作,而不考虑加载os的事情)。

我分析认为:这可能是我转换主分区为逻辑分区,再转为主分区的时候导致的。因为这个逻辑分区之前需要一个扩展分区头记录它下属的各个逻辑分区的起止位置,自然而然的它的实际可用空间就被后移了,而再转成主分区的时候没有前移回去。

知道了这以后就容易了,我在软件里面手动修改分区参数,将起始磁头和扇区改为1,1,这样分区里的东西自然没有了,用重新ghost进去一个系统。挂载启动,一切OK!

 

 

配合网上其他一些信息总结如下:

出现:“A Disk Read Error Occurred. Press Ctrl+Alt+del to restart”,一般有一下几种可能:

1,硬件故障:数据线老化、接口松动、主板老化(电容)

表现:使用正常,突然出现此问题,时好时坏。

解决:清灰,重插。检查电容。另外网上有人说在bios里面取消UDMA支持,我查到原帖,原作者说发现电容鼓起,而这个电容是UDMA电路方面的,所以这个方法不通用,还是修主板/换主板吧。

2,硬盘故障:

表现:使用正常,突然出现此问题,然后一直这样,并且回忆机箱(硬盘)近期有没有收到过大的撞击。

解决:硬盘低格。

3,硬盘设置问题:

表现:新装系统后出现,并且在别的机器上挂为从盘很可能可以正常访问。

解决:检查硬盘分区参数,将安装操作系统的分区设置为主分区,Active,非隐藏,起始柱面:0,起始磁头:1,起始扇区:1。