如果指的是硬件伤害:只要是现代的硬件,一般情况下,是没有什么伤害的。
这里特别强调一下关键词“现代硬件”“一般情况”。
与“现代硬件”对应的,应该是“古代硬件”,其实也就是十年到十五年以前的硬件,那个年代,做工不够好的硬件,热插拔串口(板载RS232口)或者USB都可能导致主板烧掉,没错,就是那种支持热插拔的USB。所以在有一些做工较差的板子上,不排除有破坏硬件的风险,ACPI的规范虽然很早就出来了,但硬件能完全达标已经是后来的事情了。早年的硬盘也不像今天的硬盘一样有大电容之类的保护硬件的电路,破坏硬盘也是有可能的。
再就是“一般情况”了,别的回答里有说了,现在的硬盘大多数都有保护电路,能保证掉电情况下的设备安全,但这仅限于大厂。如果是某些小厂商的硬盘,很难保证掉电一定没问题,这个现象,在SSD上比较明显。因为组装SSD的技术门槛其实很低,生产机械硬盘需要很高标准的生产环境,小厂商很难做到,但SSD的话,很多小厂子可以拿大厂剩下的黑片来组装,所以反而是SSD的技术门槛更低一些。
低门槛的后果就是有些SSD的保护电路并不够,SSD上省一个电容,就是利润上的几分钱,所以如果电脑上装的是山寨设备的话,强行断电的事情还是尽量少做。
可能有人会有异议:强行断电并不会损坏SSD上的硬件,最多就是丢数据——确实是这样,但如果丢的数据正好是FTL/MTD的关键数据(比如记录坏块的列表),那么整个SSD可能也就报废了,只能返厂维修,这跟硬件损坏没什么差别。
---------------
如果是指软件伤害,那可能性就很大了。
虽然现在不管是Windows还是Linux上的文件系统,可靠性都已经非常高了,但仍然有概率会出现意外掉电损坏的情况,极端情况下还会出现check disk也无法恢复的情况,这取决于硬件,也取决于软件,一个设计不够好的软件在一个不太可靠的硬件上,强行关机产生的软件伤害风险会更大一些。
因为不合格的软件和硬件总是存在的,甚至大厂也会有一定概率的次品,所以如果能不这样做,是最好的。
谢邀。这个问题很老了,有很多答案,但所有的答案都没有触及一个根本的问题。那就是按住电源键强制关机和拔电源关机并不一样,这点对笔记本和台式机都是如此。
按住电源键关机,在硬件上看就是拉住PWRBTN#引脚,保持一段时间。在电源键按下后,也就是PWRBTN#被置高后,硬件会开启一个时钟Timer,超过5秒还没有抬起,也就是PWRBTN#没有被置低,会触发关机动作。这个关机动作并不是切断电源了事,而是遵循普通的关机硬件流程。大家要知道,实际上CPU和主板上有很多power rail,关机并不是简简单单切断电源就好了,有复杂的关闭各个power rail的时序,要按照一定的顺序来,大家可以看看芯片手册了解一下,这里不再详述。这时进入的ACPI模式是G2,不是拔电源的G3,主板还有部分区域是有电的。
也就是说按住电源键关机,看起来像一下关闭电源了,实际上还是要经历一个完整的关机硬件流程,和普通的正常关机在硬件流程上没有什么不同。和拔电源也有本质的不同。
硬件流程上一样,那么和普通关机在什么地方不同了呢?差别就是操作系统被跳过了。无论我们是鼠标点选关机,还是按了一下电源键关机(详见 老狼:按下电源键后发生了什么?电脑是如何关机的?),操作系统也就是Windows或者Linux都会受到通知,尝试安全关机。操作系统和固件在ACPI规范下共同工作,不同分工,一步步安全关闭计算机。包括保存文件等等操作。跳过这些动作轻则未保存文件丢失,重则操作系统文件损坏而不能启动。
所以说按住电源键关机对硬件完全没有损伤,硬盘也不会一下掉电而要用到掉电保护的功能:
和正常关机一样。真正需要担忧的是数据的安全问题。
话说回来拔电源或者家里如果停电会伤害硬件吗?实际上机械硬盘并不需要担心,真正需要担心的是SSD和主板。看过我们固态硬盘系列的读者应该都知道FTL的存在(杂谈闪存三:FTL)。FTL的逻辑块和物理块的转换表必须存储在NAND Flash上,否则会造成混乱;高端企业级硬盘上有大量的DRAM来加速,其中的内容也必须存储下来。
在正常关电的时候,和机械硬盘类似,SATA的STANDBY IMMEDIATE命令和SCSI的Stop指令是合适的存储这些信息的机会。SSD控制器可以从容的将这些信息写在合适的地方。
在意外掉电的情况下,情况就复杂不少。不知道大家注意过没有,现在M.2的SSD上面有很多很小的电容:
在Vcc没电的时候,这些电容的gate就会打开,会为主控争取1ms左右的时间。主控会立刻放弃现在所有没有存储的数据,而立刻开始存储FTL表,保证不会出大问题。
在企业级的SSD中,有的DRAM大小将近1GB,而企业SSD的数据完整性要求极高,不容有失,不但FTL表要存好,DRAM中没有存储过的,也必须全部存下来。这就需要很大的电容,来争取更多的时间,如果我们拆开企业SSD,就会发现很多大黄快:
这个Micron的SSD有3块,而Intel的部分SSD,因为DRAM很大,大电容达到8块!
有些低端SSD厂商,没有电容,或者在长时间使用后电容能力下降。在掉电后,FTL表并没有存下来。而是采取在下一次上电的时候重建FTL表,这是用户就会发现SSD反应很慢,要一会才会恢复正常。SSD固件写的不好的,SSD不能用也是可能的。
对主板的伤害主要在于掉电前后的电涌和电流波动,不好的电源+劣质主板有可能损坏主板。这样是我推荐电源一定要选个好的原因之一。
=======评论区分界==========
评论区有同学提到电源的保持时间最少有16ms(最低标准),不是够SSD保存数据了吗?这个16ms实际上是一个交流周期,它是和UPS来一起工作的。这个16ms对SSD和硬盘没有帮助,因为电源和硬盘之间是没有信号交换的,就是说电源不能把“我要马上没电了,快保存吧!”传给硬盘。对于硬盘和SSD来说还是忽然掉电。
文章颇受好评,评论区读下来发现大家对计算机/笔记本电源都有一个深深地误解,认为电源按钮没按,CPU风扇没转,整个主板和计算机系统就没电;关机按钮按下,风扇不转了,主板和计算机系统也就没电了。可你们发现没有,前面板的电源按钮连接的电源开关线恰恰就直接连接到主板上:
前面板的电源按钮并没有连接到电源上。如果主板没电,按钮按下的信号如何传递给电源呢?关机后又如何开机呢?实际上只要电源线没有被拔掉,无论电源按键按下与否,主板的部分还是有点的,包括:EC(如果有)、BMC(如果有)、CPLD、ME和围绕它们的电路。这就是G3和G2的区别。我写了篇文章专门介绍了一下:
BIOS培训云课堂:
欢迎大家关注我的专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。