说到“按住电源键强制关机”的操作,想必大家都不会陌生,毕竟在电脑蓝屏或者电脑死机的时候,我们总是束手无策。
而且,身边的人在遇到同样的情况时,往往都是选择长按电源键强制关机,所以当我们遇到同样的情况时,也会不自觉的使用同样的做法!
一般情况下, 我们也不会强制关机, 而是用鼠标选择关机。但又一直没去确认长按关机键是否真的对电脑有所伤害。
“按住电源键强制关机”对电脑有伤害吗?我们今天来探讨下。
电脑关机方式
参考[2]
1.1 正常关机
我们通常所说的正常关机是指,在操作系统中找到电源按钮,点击关机。此时系统接收到指令,逐个关闭系统进程 → 关闭系统 → 切断硬件电源 → 完成关机。整个过程中,电脑会把一切都妥善处理好。
1.2 按住电源键强行关机
如果我们按住电源键强行关机的话,其实与正常关机就是少了发给系统关机指令的步骤,外表看起来像直接关闭电源了,但实际上还是要经历一个完整的硬件关机流程,与正常关机在硬件流程上并没有什么不同。
看到上面的简单说了一下这个关机的方式,是不是觉得,好像长按电源键强制关机,不会对电脑造成伤害?
然而,电脑作为一个十分精细的产品,从硬件配置到操作系统的运行,都明明白白地告诉我们,事情是没有那么简单的。
这种方式也是今天讨论的焦点。
1.3 拔电源
这个好理解, 直接拔掉电源插头,硬件都没电了。笔记本电脑拔掉电源, 还有锂电池, 如果把锂电池也取掉,就和拔掉电源一样了。这种情况,台式机遇到的情况多一些。当然了小元的老笔记本电脑,电池都丢掉了, 也和笔记本一样了。
以前上学的时候,用台式机追剧, 宿舍11点准时熄灯,经常追剧都忘了时间,啪,电闸一拉, 整个世界进入了黑暗, 我的电脑也跟着遭受痛苦。 那时候也隐约知道异常断电对电脑不好,就大概知道会影响电脑使用寿命之类的。
把电源这种骚操作还是比较少的, 这个对硬件对系统都有伤害。
长按电源键关机,有害吗?
参考[1]
长按住电源键关机,这个关机动作并不是切断电源了事,而是遵循普通的关机硬件流程, 硬件有复杂的关闭各个power rail的时序,要按照一定的顺序来。主板还有部分区域是有电的。
也就是说按住电源键关机,看起来像一下关闭电源了,实际上还是要经历一个完整的关机硬件流程,和普通的正常关机在硬件流程上没有什么不同,和拔电源也有本质的不同。
和正常关机有什么不同?
硬件流程上一样,那么和普通关机在什么地方不同了呢?差别就是电脑操作系统被跳过了。无论我们是鼠标点选关机,还是短按电源键关机,电脑操作系统也就是Windows或者Linux都会受到通知,尝试安全关机。电脑会给SSD 发安全断电通知,操作系统和SSD固件在共同工作,不同分工,一步步安全关闭计算机。包括保存文件等等操作。跳过这些动作轻则未保存文件丢失,重则操作系统文件损坏而不能启动。
所以说按住电源键关机对硬件完全没有损伤,硬盘也不会一下掉电而要用到掉电保护的功能:
和正常关机一样。真正需要担忧的是数据的安全问题。
话说回来拔电源或者家里如果停电会伤害硬件吗?实际上机械硬盘并不需要担心,真正需要担心的是SSD和主板。看过我们固态硬盘系列的读者应该都知道SSD FTL映射表的存在。FTL的逻辑块和物理块映射表必须存储在NAND Flash上,否则会造成混乱;高端企业级硬盘上有大量的DRAM来加速,其中的内容也必须存储下来。
强制关机对硬盘危害多大?
参考[3]
在正常关电的时候,和机械硬盘类似,SATA的STANDBY IMMEDIATE命令和SCSI的Stop指令是合适的存储这些信息的机会。SSD控制器可以从容的将这些信息写在合适的地方。强行断电或者强制关机结果就是电脑操作系统没有这个机会去下这种命令。
1、强行断电或者强制关机对SSD硬盘的硬件是没有影响的,但是对数据的完整性会产生影响。一般来说,硬盘为增强写入性能而会默认开启写入缓存设置,异常断电后硬盘的写入会终止,缓存数据也遗失,数据完整性可能受影响。这也是为啥有些小伙伴强制断电之后再开机后不认盘的主要原因。不过有个带电静置三十分钟大法(SSD固态硬盘:掉盘不识别自检修复,30分钟大法)可救。还有一点需要注意的是写入时断电,很大概率导致坏块数增加,不过好在固态硬盘规划时基本都有冗余块用来替换。
2、闪存颗粒在Program过程中断电,可能造成一些page damage而不能再继续运用了;这些损伤会通过内部控制器的算法来绕过,从而避免SSD变砖,但是不可避免的SSD寿命会受到一些影响。
所以,接下来我们需要先了解机械硬盘预防断电数据遗失的原理,在这里小编给大家举例子:Toshiba在最新的10TB企业级机械硬盘上增加了一颗原本固态硬盘上才会运用的闪存芯片。在断电时借助盘片旋转的惯性发电,供主控将DRAM缓存内数据转移到磁盘钟安全保存,完美实现了断电数据不遗失,规划非常巧妙。
对于企业级固态硬盘一般会增加断电保护电容供电来对缓存内数据的紧急写入。但这个操作使得电容寿命限制较多,部分可能存在闪存之前破坏以至于造成不可估量的问题,所以在家用固态硬盘中没有设置这个功能。而固态硬盘的DRAM缓存内主要存放FTL闪存映射表,只支持最多16MB容量用来短时缓存用户读写的数据,随着 NVME FUA Flush指令的下达,这部分数据就会写入到NAND闪存中永久保存下来。
Flush指令是由Win系统自动定时发送的,会强制固态硬盘缓存区内数据实际写入到闪存永久保存。下面以ToshibaQ200 240G固态硬盘来进行测验。Q200是Toshiba原厂8通道MLC闪存SSD,当前性价比最高的原厂固态硬盘之一。
运用名为sync的手动Flush软件来检验一下Flush指令的作用:
图片来源头条号 快启动
文件复制完成后立刻断电,重新开机后文件MD5会出错,因为还有部分数据留在缓存中没有实际写入闪存:
图片来源头条号 快启动
如果文件复制后执行Flush命令,然后立刻断电,再次校验MD5是正确的,说明文件被完整写入到了固态硬盘内。
图片来源头条号 快启动
Win系统自动向固态硬盘发送Flush指令的频率是很快的,所以偶尔强制关机并不一定出现问题。此外家用电脑的断电保护和有无DRAM缓存关系不大:即便你能保护住硬盘缓存数据,主机没有UPS不间断供电的话,主内存数据依然会丢,断电瞬间发送到SATA接口上的指令也有可能是错误的。
在意外掉电的情况下,情况就复杂不少。不知道大家注意过没有,现在M.2的SSD上面有很多很小的电容:
在VCC没电的时候,这些电容的gate就会打开,会为SSD主控争取1ms ~ 10几ms左右的时间, 外部电容越大,电容时间越长。SSD主控会立刻放弃现在所有没有存储的数据,而立刻开始存储FTL表,保证不会出大问题。
在企业级的SSD中,1TB 容量的 SSD, 它的DRAM大小将近1GB(SSD 容量和 DRAM 容量比例标配是 1024 :1),而企业SSD对数据完整性要求极高,不容有失,不但FTL表要存好,DRAM中没有存储过的,也必须全部存下来。这就需要很大的电容,来争取更多的时间,如果我们拆开企业SSD,就会发现很多大黄快:
这个Micron的SSD有3块,而Intel的部分SSD,因为DRAM很大,大电容达到8块!
有些低端SSD厂商,没有电容,或者在长时间使用后电容能力下降。在掉电后,FTL表并没有存下来。而是采取在下一次上电的时候重建FTL表,这是用户就会发现SSD反应很慢,要一会才会恢复正常。即便这样, 之前的断电丢失的数据也是丢失的, 只是把SSD里存的数据的映射表建立起来。SSD固件写的不好的,SSD不能用也是可能的。
所以来看, 为了防止断电导致SSD异常,厂家费心费钱增加了电容, 但这只是给SSD保命的,并不能保数据的。即便有电容, 也只是尽力而为的行为,毕竟电容争取的时间也非常有限。SSD设计者也很无奈,增加电容意味着成本增加,产品在消费市场(个人用户购买)失去价格优势,真是情况是消费市场的SSD基本都没有足够的电容的。所以我们我们才要弥足需要避免对SSD电脑强行关机,也不要拔电源。
总结
以上的种种经验以及理论都清楚的说明了强制关机到底对SSD危害多大,所以小伙伴们在运用SSD的时候最好不要经常的对SSD电脑强行关机,也不要拔电源,这可能有意想不到的事情发生,偶尔的强行断电不用太担心,SSD都是可以正常工作的。如果有什么不懂的问题欢迎留言咨询哦!
参考
[1] 笔记本电脑按住电源键强行关机,对电脑有伤害吗? - 知乎 (zhihu.com)
[2] http://www.360doc.com/content/22/0121/16/16534268_1014319401.shtml
[3] 强制关机到底对固态硬盘的危害多大? https://www.chinafix.com/article-19446-1.html