查看: 48644|回复: 157

[Win10测试反馈] 9879开启PUIS导致机械硬盘丢失现象与修复汇总(12.10 KB3021937补丁,彻底修复,完结)

  [复制链接]
z75h 发表于 2014-11-16 11:15 | 显示全部楼层 |阅读模式
快御云安全
本帖最后由 z75h 于 2014-12-12 03:16 编辑

索引:硬盘丢失彻底修复流程

已放弃win10 9879并替换引导系统为旧版本的用户:
使用“五、硬盘修复方案”修复;

win10 9879或即将升级到win10 9879用户:
  • 使用“三、临时找回硬盘方案”或“五、硬盘修复方案”找回硬盘;
  • 重启进入win10,更新KB3021937补丁,使系统不再无脑开启PUIS;
  • 重启,再次使用“五、硬盘修复方案”关闭PUIS一次。



----------------------------------------------


以下仅基于论坛上的截至2014.11.27的硬盘丢失反馈案例汇总。
请注意逻辑关系:A推出B不等于B推出A,例如“近期反馈硬盘丢失的大部分是升级或安装9879的用户”与“升级或安装9879的用户会发生硬盘丢失”是不等价的两个不同命题。

一、表现:

故障硬盘丢失表现为任意电脑的BIOS、UEFI均不认故障硬盘或不通电,特定版本PE、Linux、Clove、第三方引导工具、热插拔、正确的Intel RST驱动有助于识别故障硬盘。
通过特定版本PE、Linux、Clove、第三方引导工具、热插拔、Intel RST驱动只能临时识别故障硬盘,重启后仍可识别,关机后失效。故障硬盘换到另一台电脑上不通过这些方法亦可能无法识别。

注:
1、正常硬盘能被BIOS、UEFI直接识别。

2、有升级到9879的用户,其硬盘可见,但分区表损坏或容量变为128GB,不在本帖汇总范围。但问题原因可能跟硬盘丢失是一致的,也可能是因为无响应的磁盘清理。


二、分布:
发生硬盘丢失的几乎都是机械硬盘,SSD未确认有丢失。
品牌无差异:截至目前,反馈的故障品牌有日立、西数、希捷,型号有稳定型号也有故障门型号。
BIOS+MBR、EFI+GPT均有出现。
最近一年反馈硬盘丢失的大部分是升级或安装Windows Technical Preview build 9879的用户。


三、临时找回硬盘方案:
任意电脑,关机后失效:
A、特定版本PE,找到故障硬盘后热重启;
B、Linux磁盘修复工具,运行一遍后热重启;(推荐)
C、正常硬盘进入操作系统后,再插入故障硬盘(通过移动硬盘盒的请注意电流是否足够);

双硬盘的任意电脑,可以直接开机:
D、在正常硬盘上安装NTLDR或BOOTMGR以外的引导工具,如Clove,故障硬盘作为从盘;

双硬盘的Intel主板:
E、活动分区与操作系统安装在正常硬盘上,故障硬盘作为从盘,安装相符的Intel RST驱动。

注:楼主测试过的方案有A、B、C,A方案在RS780M主板上基于2003、XP的PE可用,基于7、8、10的PE不可用,在nForce4主板上均不可用,C方案在nForce4主板上不可用

目前反馈有效的永久找回硬盘的方案有:
临时找回硬盘,进入win10,关闭快速启动。提供方案的cui5853002,其电脑为单硬盘,通过Linux磁盘修复后,安装RST驱动,关闭快速启动,完全解决故障。注:楼主不能装RST驱动,只做前后两步,关机还是不行。
cui5853002补充反馈:关机还是失败

无效的尝试:
删除活动分区、重建MBR、PBR,重建分区表。有用户反馈有效,楼主测试无效。楼主的硬盘现在只有0扇区有数据,已重建,1-2048扇区以及100MB的保留分区已清零,故障未消失。不建议新手尝试。
关闭快速启动、关闭休眠、关闭混合睡眠、替换bootmgr。

最后:
可以确定,硬盘丢失的故障绝对不是因为用户操作不当。
此轮故障并未波及硬盘数据,可以通过前述临时方案找回数据,也可以等待微软出修复工具。
找到硬盘后只要不关机,随便重启硬盘都还在,这一点放在过去显得很扯淡,但现在确实发生了。


2014.11.26更新:

四、故障原因:
本次故障门是因为9879无视或没有正确识别电脑是否支持,直接开启了机械硬盘的PUIS (Power-up in standby, 待机上电) 功能。PUIS需要BIOS与硬盘同时支持。 如果硬盘启用PUIS,但系统的BIOS不支持PUIS,那么硬盘驱动器将会因为不通电而无法被系统检测,或者是检测到的容量大小为0。(来源:Michal Kozal)

SSD没有机械旋转部分,不存在PUIS功能,所以未被波及。

待机上电 (PUIS, Power-up in standby) 或 电源管理模式 2 (PM2,Power Management 2 Mode,西部数据特有)是一种SATA或PATA硬盘功能,其可以阻止硬盘驱动器自动旋转,并且允许其稍后在一个ATA标准的命令下启动。通常,只有硬盘驱动器需要省电的时候,才会启动这项功能。

PUIS需要BIOS的支持。 如果 PM2 在驱动器上启动,但是系统的BIOS不支持这种功能,那么硬盘驱动器可能不会被系统检测,或者是检测到的容量大小为0。PUIS被大多数的RAID芯片支持。

PM2通常是通过硬盘上的驱动器跳线来设定的,不过也可以尝试用其他的方式启动(比如向特定存储器写入数据或者使用特定工具)
来源:http://zh.wikipedia.org/wiki/%E6%8C%89%E9%9C%80%E5%90%AF%E5%8A%A8

五、硬盘修复方案:
目前可以通过Linux、Windows下的hdparm或DOS环境下的HDAT2关闭硬盘的PUIS。Linux hdparm由于不用切换IDE/AHCI/SATA模式,不用关闭secure boot,兼容性更好。

故障盘可以接到其他电脑上修复。

9879在开机和关机时各开启一次PUIS,造成故障盘再次丢失。所以在修复故障盘后,如果不想再次被失踪,在微软有动作之前,目前的唯一通用办法只有放弃9879。(KB3021937补丁已修复此问题,2014.12.10。)


Linux hdparm方案(推荐):
  • 准备一张Linux启动盘,如Ubuntu、Fedora、Lubuntu,用UltraISO写入U盘
    教程:http://www.ultraiso.net/review/uplus.htm,第二节,启动U盘制作
  • 开机从U盘引导
  • 选择不安装直接运行(“Try Linux/Ubuntu/xxx without installation”之类)
  • 启动进入Linux之后,打开终端模拟器(Terminal,或者含有Term字样的图标)
  • 输入以下命令关闭PUIS:
    1. sudo hdparm -s0 /dev/sd?
    复制代码

    注:-s后面是零,不是字母O。
    它会尝试关闭所有硬盘的PUIS,消息如下:
    /dev/sda:
    spin-up: setting power-up in standby to 0 (off)

    /dev/sdb:
    spin-up: setting power-up in standby to 0 (off)
    HDIO_DRIVE_CMD(powerup_in_standby) failed: Input/output error

    上述消息中,/dev/sda成功关闭;/dev/sdb关闭失败,因为该硬盘不支持PUIS。每台电脑的硬盘序号不一样。
    如果没有上述消息,将命令改为下面一条:
    1. sudo hdparm -s0 /dev/hd?
    复制代码

  • (可选)如果要检查是否关闭成功,输入:
    1. sudo hdparm -iI /dev/sd?
    复制代码

    将会列出当前所有磁盘的信息,格式如
    /dev/sda:
    ……
    ATA device, with non-removable media
            Model Number:       Hitachi HTS545050B9A300                 
    ……
    Commands/features:
            Enabled        Supported:
    ……
               *        Advanced Power Management feature set
                        Power-Up In Standby feature set
               *        SET_FEATURES required to spinup after power up
    ……

    “Power-Up In Standby feature set”前有*表示开启了PUIS,无*表示关闭。
  • 重启reboot

(方案来源: http://answers.microsoft.com/en-us/windows/forum/windows_tp-windows_install/build-9879-hard-drive-disaster-read-this/7da0cd97-3ebc-4eb3-ae23-9873672e4e6d Michal Kozal 发现:bx5fU7DUcH62dbX )


Windows hdparm方案:
基本与Linux hdparm相同,不过windows版不支持?与*通配符,/dev/sd?需要改成/dev/sda、/dev/sdb、/dev/sdc……a、b、c分别指第一、二、三个磁盘驱动器,不是指分区。

  • 下载附件 hdparm-win.zip (969.3 KB, 下载次数: 1215) ,解压
  • 以管理员身份运行命令提示符cmd,导航到hdparm解压的位置
  • (可选)输入以下命令查询硬盘型号:
    第一块硬盘
    1. hdparm -iI /dev/sda
    复制代码

    第二块硬盘
    1. hdparm -iI /dev/sdb
    复制代码

    第三块……依次类推
    1. hdparm -iI /dev/sdc
    复制代码

  • 输入以下命令关闭PUIS:
    第一块硬盘
    1. hdparm -s0 /dev/sda
    复制代码

    第二块硬盘
    1. hdparm -s0 /dev/sdb
    复制代码

    第三块……依次类推
    1. hdparm -s0 /dev/sdc
    复制代码

    注:-s后面是零,不是字母O。
    回显消息如下:
    /dev/sda:
    spin-up: setting power-up in standby to 0 (off)

    /dev/sdb:
    spin-up: setting power-up in standby to 0 (off)
    HDIO_DRIVE_CMD(powerup_in_standby) failed: Input/output error

    上述消息中,/dev/sda成功关闭;/dev/sdb关闭失败,因为该硬盘不支持PUIS。每台电脑的硬盘序号不一样。
    如果没有上述消息,将命令中的/dev/sd?改为/dev/hd?,即:
    1. do hdparm -s0 /dev/hda
    复制代码
    1. do hdparm -s0 /dev/hdb
    复制代码

  • 退出。
    另,直接以管理员身份运行“关闭硬盘PUIS(以管理员身份运行).cmd”亦可,批处理写得粗糙,嘿嘿


HDAT2方案:
  • 下载hdat2,下载地址:
    http://www.hdat2.com/download.html
    有dos环境的下载HDAT2_50.EXE,放进你的dos环境支持的U盘里。
    没有dos环境或者不知道怎么弄的,下载HDAT2ISO_50_LITE.EXE,运行后解压出hdat2_v50_lite.iso,用UltraISO将解压后的hdat2_v50_lite.iso写入U盘。
  • 关机,从U盘启动
    对于预装系统为win8的电脑,可能需要从“高级启动(Advance Starup)”里关机、关闭secure boot才能从U盘启动。
  • 输入
    1. HDAT2_50 /w
    复制代码

    1. HDAT2 /w
    复制代码

    解释:/W参数是Wake Up 唤醒的意思,即关闭PUIS。
  • 修复完成后,将会列出当前的硬盘列表,按Esc退出,然后按电源键关机。
  • 开机正常,修复结束。如开机仍不正常,请参考 手动关闭PUIS切换到IDE模式


(方案来源:Michal Kozal 发现:jjjian

2014.12.10更新:
六、win10 禁用PUIS补丁:
通过系统更新安装kb3021937补丁,9879不会再无脑开启PUIS,彻底终结硬盘丢失故障。
更新补丁后,需要用hdparm/hdat2手动关闭PUIS一次。
9888无法安装此补丁(来源:小叉子)。

完结。

评分

16

查看全部评分

czlzd 发表于 2014-11-16 11:25 来自手机 | 显示全部楼层
严谨专业!
回复

使用道具 举报

cui5853002 发表于 2014-11-16 11:28 来自手机 | 显示全部楼层
我的方法还是不完美,关机硬盘就挂掉了,重启没事,看来跟硬盘断电也有关。(T_T)/~~

备份数据中,准备等待微软修复了。
回复

使用道具 举报

cui5853002 发表于 2014-11-16 11:30 来自手机 | 显示全部楼层
另外,修复后,删掉win10,换回Win8.1也还是不行,跟系统文件无关,还是硬件出问题了。我是双系统。
回复

使用道具 举报

jjjian 发表于 2014-11-16 11:34 | 显示全部楼层
等待微软的方法。现在苦恼的是即便回到Win7,每次开机会等很久并提示从盘错误,需按F1。
回复

使用道具 举报

abc880 发表于 2014-11-16 11:38 | 显示全部楼层
反复安装系统,反复崩溃,反复格盘,还是不行,准备换硬盘了,哎。。。
回复

使用道具 举报

pcdhacker 发表于 2014-11-16 11:48 | 显示全部楼层
太恐怖了吧 。。。
回复

使用道具 举报

gemacun 发表于 2014-11-16 12:14 | 显示全部楼层
谢谢分享
回复

使用道具 举报

loveak47 发表于 2014-11-16 12:16 | 显示全部楼层
保护硬盘,保护数据,停止测试不当小白薯才是王道!
回复

使用道具 举报

rubycon 发表于 2014-11-16 12:24 | 显示全部楼层
多谢,学习了。。。。。。。。。。
回复

使用道具 举报

chengxuan125 发表于 2014-11-16 12:30 | 显示全部楼层
    我的丢失后,回到Win8.1后,已认回所有分区,但每次BIOS仍然提示错误,需用ESC忽略!后据论坛坛友所说,再次回到9879启动,安装intel RST驱动后,再重新启动,BIOS不再提示错误!至此正常。
    据此怀疑,9879将故障磁盘信息写入了BIOS内和磁盘内,导致一直出错,看见RST驱动里有个链条式电源管理,或与此有关!
回复

使用道具 举报

mlhan 发表于 2014-11-16 12:32 | 显示全部楼层
这次害人不浅啊
回复

使用道具 举报

头像被屏蔽
西日光 发表于 2014-11-16 12:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

吃猫的耗子 发表于 2014-11-16 12:46 | 显示全部楼层
还好这回没冲动
回复

使用道具 举报

kho1972 发表于 2014-11-16 12:49 | 显示全部楼层
装了3次,重启了无数次,还没出现过问题。
回复

使用道具 举报

cui5853002 发表于 2014-11-16 13:02 来自手机 | 显示全部楼层
西日光 发表于 2014-11-16 12:45
也就是说,LINUX仅限于用于挽救硬盘数据,对彻底拯救硬盘并无效果?

断电之后,硬盘依旧故障。唉。。。在想办法。
回复

使用道具 举报

木头科学二百五 发表于 2014-11-16 13:13 | 显示全部楼层
我是EFi+GPT四系统,好好的!!!
只能说我人品太好了!!!
回复

使用道具 举报

taes 发表于 2014-11-16 13:24 | 显示全部楼层
在统计学上有很大意义。能够因为很多事A,所以是B造成问题的可能性大
回复

使用道具 举报

taes 发表于 2014-11-16 13:27 | 显示全部楼层
你们最近出这些事才发现是系统造成的。我前几天装了20多次系统,后来实在不行就换了新硬盘,可是换新之后还是有问题。最后退货卖了一块西数。我一直奇怪硬盘为啥质量这么差,原来如此!
回复

使用道具 举报

z75h  楼主| 发表于 2014-11-16 13:29 来自手机 | 显示全部楼层
taes 发表于 2014-11-16 13:24
在统计学上有很大意义。能够因为很多事A,所以是B造成问题的可能性大

为了避免被喷,解释不了的再怎么解释也没用~
回复

使用道具 举报

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

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2025 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2025-4-18 13:13

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