本帖最后由 羊羔助手 于 2020-5-14 10:36 编辑
最近,电脑上出现了一个灵异的现象,那就是把移动硬盘分别在多个系统上使用时,会莫名其妙的出现硬盘数据自动还原、丢失、文件路径位置改变等问题。甚至一个被重命名几次的文件,切换到另一个系统上后还能恢复它数月前的文件名。就连文件属性中的“修改时间”和“访问时间”也都恢复到了它上次使用的时间。详情内容如下文。
本人在两块机械硬盘上各有一个系统,分别是一块儿老旧硬盘上的“Windows XP”系统和“Windows 7”系统;以及另一块儿新硬盘上的“Windows 10”系统。本人平时都在“Windows XP”或“Windows 7”系统上工作,只有休闲娱乐时才通过“BIOS”切换到“Windows 10”系统。除此之外,本人还有一块儿移动硬盘,一直连接USB线插在主机上通着电,并被这三个系统共同使用。
但是最近出现了一个诡异的现象,当我今天(5月12日)从“Windows 7”系统上工作完后,切换到“Windows 10”系统时,移动硬盘上的数据居然全部都自动恢复到了我上一次(5月8日)在“Windows 10”系统上使用的状态,包括我这几天来重命名的文件、新写入的数据等等……也都统统恢复到我5月8日之前的状态了。例如我打开一个“TXT”文档后,里面的内容全部都是5月8日之前的内容,而我在5月9日到5月12日之间新编辑的内容全都没有了,而且我在这几日内新建的文档也全部都丢失了,但是移动硬盘的容量并没有因此而减少。
首先,我没有开启系统还原,也没有安装冰点还原或影子系统这类还原软件。而且我这个移动硬盘很古老,是一个老旧的叠瓦式机械硬盘,自身也没有自动备份功能,但是为什么会出现类似“Ghost”这样的情况呢?
当我再次切换回“Windows XP”或“Windows 7”系统时,打开这个移动硬盘会弹出“磁盘未被格式化”的提示,并且磁盘格式会变成原始的“RAW”格式(未经加工格式)。使用“CHKDSK /F”对其修复后会显示“主控文件表(MFT)位图属性的错误”和“正在修复卷位图的错误”等分区表错误,修复完成后可以正常打开这个移动硬盘了,但是我这几天(5月9日到5月12日)在“Windows 7”系统上工作的数据大多都丢失了,部分新建的文件或文档被“CHKDSK”磁盘修复后也都变成了碎片文件“file0000.chk”,在隐藏的“found.000”文件夹目录下可以找到它们,但大多数“CHK”碎片文件即便通过某些“CHK文件恢复工具”恢复了扩展名后也无法正常使用。在磁盘上能够正常访问的数据只有5月8日在“Windows 10”系统上保存的文件。
仅仅切换了一下操作系统,被移动到别的位置的文件,居然还能回到它原来的位置;被重命名的文件,居然还能恢复它原来的文件名;甚至是被删除到回收站中的文件,它居然还能原封不动的自己恢复出来!这种问题已经不是一次、两次了,这到底是怎么回事?
已知本人拥有三个系统,“Windows XP”系统、“Windows 7”系统、“Windows 10”系统。无论是任何系统,如果将移动硬盘一直保持在一个系统上使用,不会出现此问题。如果把移动硬盘进行三个系统轮换使用,则会出现此问题。
经过反复测试,如果只把移动硬盘在“Windows 7”系统和“Windows XP”系统之间进行切换,不会出现此问题。随后硬盘坏道检测后也无任何问题。因此,排除了硬盘本身的问题。如果把移动硬盘在“Windows 10”系统和“Windows 7”系统或“Windows XP”系统之间进行切换,则会出现此问题。因此,经过排除法,基本可以确定问题根源出现在了“Windows 10”系统上。
在网上查询后,发现不少网友也都出现了跟我类似的问题,而且他们使用系统也都是“Windows 10”系统。
案例一:
案例二:
案例三:
案例四:
案例五:
通过在“百度贴吧”的求助,一个名为“月下松321”的网友对此问题作出了解答。
“Windows 10”系统默认开启的“快速启动”是什么?它又是什么原理?经过吧友“月下松321”的指点迷津,我咨询了一下微软,官方给出的解释是这样的:
【win10的快速启动是怎么实现的呢?说到底层细节,其实win10快速启动原理和休眠类似,但是所有用户进程(比如你开的记事本,浏览器之类的)都会被结束掉。结束后,内存里就剩下内核及系统相关的模块(诸如ntoskrnl,kernel32,ntdll……)还有一部分驱动了,这时候,把它们写到硬盘里的一个文件里,下次开机直接把它们读进来就好了,所以你就会觉得开机速度很快。
快速启动将一些本该关闭的内核对话全部保存到一个名为hiberfil.sys的磁盘文件中,下次开机时直接将这里的内容写回内存,从而提高系统启动速度。
快速启动会关闭用户会话,但不再关闭内核会话,而是将其休眠。完全休眠包含大量正在由应用程序使用的内存页,相比之下内核会话休眠数据要小得多,这将大大降低写入磁盘所需的时间。
快速启动开机速度之快的奥秘,就在于关机,直接的说就是关机的彻底程度,但是这样的话,我们会发现快速启动关机会比较慢,屏幕暗了之后,要过了好久电源才彻底关掉。这是由于系统在把下次开机需要的文件写入到硬盘中导致。】
参考了一下这个“Windows 10”系统“快速启动”的原理,说白了它就是一个类似于数据还原的功能。在开启“快速启动”功能的情况下,当“Windows 10”系统第二次启动后便会把上次保存在磁盘特定空间“hiberfil.sys”中的数据释放到系统内存中,并将这些数据依据它们先前的路径和位置覆盖、替换到磁盘对应的簇中,以达到不用读盘就能快速访问各个磁盘数据的效果。然而这个行为也就等于对磁盘的数据进行了还原,会使移动硬盘在其它系统上改动的数据全部被覆盖和替换,从而间接性导致这些数据丢失!所以当我把从别的电脑上改动多次的移动硬盘插入到第二次启动的“Windows 10”系统上时,它所显示出来的信息只是“Windows 10”系统从上一次保存的内存数据(hiberfil.sys)中提取出来的信息,而并非是当前移动硬盘中的数据信息;因为本次“Windows10”系统启动后根本就没有对这个移动硬盘中当前的数据进行扫描和读取,所以就造成了切换“Windows 10”系统后移动硬盘出现了“数据还原”的假象,甚至数月前的数据都能被恢复读取出来!由于“Windows 10”系统的“快速启动”功能在恢复这些旧文件数据也改变了移动硬盘的主控文件表(MFT),因此当我再次切换回“Windows 7”系统或更老版本的系统上后,这些远古系统就会误认为这个被“Windows 10”系统“快速启动”功能恢复的移动硬盘在磁盘格式上出现了错误,或是被误判定为硬盘分区表遭到了破坏,便会提示我使用“CHKDSK”工具对磁盘进行修复。而当我使用“CHKDSK”命令进行修复之后,也就等于再次破坏了移动硬盘上的数据,随之这些被破坏的数据就会被当作失去目录结构的“孤立文件”被恢复到名为“found.000”的磁盘碎片文件夹里。
也就是说,“Windows 10”系统的“快速启动”功能只是根据休眠文件“hiberfil.sys”中所保存记录的内容恢复还原了移动硬盘上的部分文件索引、文件标识和文件数据;而真正对硬盘数据造成破坏的是切换回“Windows 7”系统等远古系统后的磁盘修复工具“CHKDSK”。因为“CHKDSK”在修复文件系统的过程中必然会损坏数据。
不得不说,“Windows 10”系统的“快速启动”,这真是一个坑人又装B的功能!第二次开机启动后不经检查移动硬盘上的文件有没有变动就直接把休眠文件“hiberfil.sys”中的数据对移动硬盘上的数据进行覆盖和替换,这绝对是“Windows10”系统“快速启动”功能上的一个BUG!而且“Windows10”系统对这个功能还是默认开启的。看来微软为了面向大众化,也开始跟风学着为用户提供一些逗B功能。可能对电脑小白来说,开启“快速启动”功能提高电脑开机速度是他们相互攀慕追求的。但是对于电脑工作者来说,这样的功能没有任何意义,反而还有负面影响!
预防方法:
使用移动硬盘要养成即插即拔的好习惯,可以大大的避免此类问题的发生。在插入开启“快速启动”功能且曾经插入过的“Windows 10”系统时,如果第一次显示移动硬盘的数据被“还原”了,千万不要对移动硬盘上的数据做任何改动和访问,更不要使用“CHKDSK”等磁盘修复工具对移动硬盘进行修复,否则这些数据就有可能真正的被还原了。解决方法是拔掉移动硬盘再插入一次;因为第二次插入移动硬盘后“Windows 10”系统会重新扫描硬盘上的数据,而不会再像之前第一次那样从休眠文件“hiberfil.sys”中读取数据信息了。
解决方法:
打开“Windows 10”系统的“控制面板”——“电源选项”——“选择电源按钮的功能”,点击一下“更改当前不可用的设置”,然后在“关机设置”中把“启用快速启动(推荐)”的“√”去掉,保存修改。
还有一种方法就是删掉C盘(“Windows 10”系统所在磁盘)目录下的“hiberfil.sys”文件。方法是在以管理员身份运行“命令提示符”,在其中输入:“POWERCFG-H OFF”(双引号去掉),届时C盘目录下的“hiberfil.sys”也会被删除。由于该文件还有可能会被“Windows 10”系统反复创建,所以将其删除后可以在其同目录下创建一个与“hiberfil.sys”同名的文件夹,利用“Windows”系统同目录下同名文件不能共存的原理使其无法再次生成。单纯的创建“hiberfil.sys”文件夹可能会被“Windows 10”系统在下次启动时删除,所以可以利用“DOS”命令在其目录下再创建一个文件名中存在非法字符的文件夹使“Windows”系统无法对其进行读取和删除,例如:“MD C:\hiberfil.sys\BUG..\”(双引号去掉)。这个方法会彻底废除“Windows 10”系统的“快速启动”功能,但同时“Windows 10”系统以后的“睡眠”功能或“休眠”功能也会受到影响。
目前发现“Windows 10”系统“快速启动”功能导致移动硬盘数据还原、丢失的BUG版本号为:Windows 10 1809
上文就是对【开启“Windows 10”系统“快速启动”功能可能导致移动硬盘数据还原或丢失!】的原因和分析。
计算机反病毒专家 —— 羊羔助手(LambAssistant) |