当前位置: 首页 > news >正文

电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇

说到“按住电源键强制关机”的操作,想必大家都不会陌生,毕竟在电脑蓝屏或者电脑死机的时候,我们总是束手无策。

而且,身边的人在遇到同样的情况时,往往都是选择长按电源键强制关机,所以当我们遇到同样的情况时,也会不自觉的使用同样的做法!

一般情况下, 我们也不会强制关机, 而是用鼠标选择关机。但又一直没去确认长按关机键是否真的对电脑有所伤害。

“按住电源键强制关机”对电脑有伤害吗?我们今天来探讨下。

  1. 电脑关机方式

参考[2]

1.1 正常关机

我们通常所说的正常关机是指,在操作系统中找到电源按钮,点击关机。此时系统接收到指令,逐个关闭系统进程 → 关闭系统 → 切断硬件电源 → 完成关机。整个过程中,电脑会把一切都妥善处理好。

1.2 按住电源键强行关机

如果我们按住电源键强行关机的话,其实与正常关机就是少了发给系统关机指令的步骤,外表看起来像直接关闭电源了,但实际上还是要经历一个完整的硬件关机流程,与正常关机在硬件流程上并没有什么不同。

看到上面的简单说了一下这个关机的方式,是不是觉得,好像长按电源键强制关机,不会对电脑造成伤害?

然而,电脑作为一个十分精细的产品,从硬件配置到操作系统的运行,都明明白白地告诉我们,事情是没有那么简单的。

这种方式也是今天讨论的焦点

1.3 拔电源

这个好理解, 直接拔掉电源插头,硬件都没电了。笔记本电脑拔掉电源, 还有锂电池, 如果把锂电池也取掉,就和拔掉电源一样了。这种情况,台式机遇到的情况多一些。当然了小元的老笔记本电脑,电池都丢掉了, 也和笔记本一样了。

以前上学的时候,用台式机追剧, 宿舍11点准时熄灯,经常追剧都忘了时间,啪,电闸一拉, 整个世界进入了黑暗, 我的电脑也跟着遭受痛苦。 那时候也隐约知道异常断电对电脑不好,就大概知道会影响电脑使用寿命之类的。

把电源这种骚操作还是比较少的, 这个对硬件对系统都有伤害。

  1. 长按电源键关机,有害吗?

参考[1]

长按住电源键关机,这个关机动作并不是切断电源了事,而是遵循普通的关机硬件流程, 硬件有复杂的关闭各个power rail的时序,要按照一定的顺序来。主板还有部分区域是有电的。

也就是说按住电源键关机,看起来像一下关闭电源了,实际上还是要经历一个完整的关机硬件流程,和普通的正常关机在硬件流程上没有什么不同,和拔电源也有本质的不同。

和正常关机有什么不同?

硬件流程上一样,那么和普通关机在什么地方不同了呢?差别就是电脑操作系统被跳过了。无论我们是鼠标点选关机,还是短按电源键关机,电脑操作系统也就是Windows或者Linux都会受到通知,尝试安全关机。电脑会给SSD 发安全断电通知,操作系统和SSD固件在共同工作,不同分工,一步步安全关闭计算机。包括保存文件等等操作。跳过这些动作轻则未保存文件丢失,重则操作系统文件损坏而不能启动。

所以说按住电源键关机对硬件完全没有损伤,硬盘也不会一下掉电而要用到掉电保护的功能:

和正常关机一样。真正需要担忧的是数据的安全问题。

话说回来拔电源或者家里如果停电会伤害硬件吗?实际上机械硬盘并不需要担心,真正需要担心的是SSD和主板。看过我们固态硬盘系列的读者应该都知道SSD FTL映射表的存在。FTL的逻辑块和物理块映射表必须存储在NAND Flash上,否则会造成混乱;高端企业级硬盘上有大量的DRAM来加速,其中的内容也必须存储下来。

  1. 强制关机对硬盘危害多大?

参考[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

相关文章:

电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇

说到“按住电源键强制关机”的操作,想必大家都不会陌生,毕竟在电脑蓝屏或者电脑死机的时候,我们总是束手无策。而且,身边的人在遇到同样的情况时,往往都是选择长按电源键强制关机,所以当我们遇到同样的情况…...

Linux:centos内核优化详解

一、系统内核部分设置在以下文件 vim /etc/sysctl.conf 1.禁用IPV6 net.ipv6.conf.all.disable_ipv6 1 # 禁用整个系统所有接口的IPv6 net.ipv6.conf.default.disable_ipv6 1 net.ipv6.conf.lo.disable_ipv6 1 # 禁用某一个指定接口的IPv6(此处为:lo) 理想情况下&#xff0c…...

链表经典OJ题合集(包含带环问题,相交问题,随机指针复制等,附动画讲解)

目录 一:前言 二:简单题目 (1)移除链表元素 (2)反转链表 (3)找链表的中间结点 (4)输入一个链表,输出该链表中倒数第k个结点 (5)合并两个有序链表 (6)相交链表 (7)判断链表是否带环 三:较难题目 (1)链表分割 (2)判断链表是否为回…...

CSS新增

系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录什么是 CSS3渐进增强和优雅降级CSS3 中的选择器CSS3 中的背景CSS3 中的边框CSS3 中的文本效果CSS3 中的字体 font-face什么是 CSS3 CSS3是CSS(层叠样式表)技术的升级版…...

奇安信_防火墙部署_透明桥模式

奇安信_防火墙部署_透明桥模式一、预备知识二、项目场景三、拓扑图四、基本部署配置1. 登录web控制台2.连通性配置3.可信主机配置4.授权导入5.特征库升级6.安全配置文件五、透明桥配置1. 创建桥2. 端口绑定桥3. 创建桥端口六、结语一、预备知识 安全设备接入网络部署方式 二、…...

C语言——字符串函数(2)和内存函数

(一)strtok函数dilimiters参数是个字符串,定义了用作分隔符的字符集合第一个参数指定一个字符串,它包含了0个或者多个由dilimiters字符串中一个或者多个分隔符分割的标记。strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回…...

第1节 线性回归模型

1. 模型概述 对于收集到的数据(xi,yi)(x_i,y_i)(xi​,yi​),建立线性回归模型yiθTxiεi(1)y_i\theta^{^T} x_i \varepsilon_i (1)yi​θTxi​εi​(1) 需要估计的参数为θT\theta^{^T}θT,我们的目的是让估计的参数θT\theta^{^T}θT和xix_ixi​…...

CodeGeeX 130亿参数大模型的调优笔记:比FasterTransformer更快的解决方案

0x0 背景 相信大家都使用或者听说过github copilot这个高效的代码生成工具。CodeGeeX类似于github copilot,是由清华大学,北京智源研究院,智谱AI等机构共同开发的一个拥有130亿参数的多编程语言代码生成预训练模型。它在vscode上也提供了插件…...

Linux驱动之并发与竞争

文章目录并发与竞争的概念原子操作原子整形操作 API 函数原子位操作 API 函数自旋锁自旋锁简介自旋锁结构体自旋锁 API 函数自旋锁的注意事项读写自旋锁读写自旋锁的API顺序锁顺序锁的APIRCU(Read-Copy-Update)RCU的API信号量信号量API互斥体互斥体的API完成量(Completion)完成…...

【密码学复习】第四讲分组密码(三)

AES算法的整体结构 AES算法的轮函数 1)字节代换(SubByte) 2)行移位(ShiftRow) 3)列混合(MixColumn) 4)密钥加(AddRoundKey)1-字节代换…...

JVM(内存划分,类加载,垃圾回收)

JVMJava程序,是一个名字为Java 的进程,这个进程就是所说的“JVM”1.内存区域划分JVM会先从操作系统这里申请一块内存空间,在这个基础上再把这个内存空间划分为几个小的区域在一个JVM进程中,堆和方法区只有一份;栈和程序…...

工作中遇到的问题 -- 你见过哪些写的特别好的代码

strPtr : uintptr((*(*stringStruct)(unsafe.Pointer(&str))).str)代码解析: 这是一段 Go 代码,它的作用是获取一个字符串变量 str 的底层指针,即字符串数据的起始地址。 这段代码涉及到了 Go 语言中的指针、类型转换和内存布局等概念&…...

基于chatGPT设计卷积神经网络

1. 简介 本文主要介绍基于chatGPT,设计一个针对骁龙855芯片设计的友好型神经网络。 提问->跑通总共花了5min左右,最终得到的网络在Cifar100数据集上与ResNet18的精度对比如下。 模型flopsparamstrain acc1/5test acc1/5ResNet18(timm)1.8211.18~98…...

java.sql.Date和java.util.Date的区别

参考答案 java.sql.Date 是 java.util.Date 的子类java.util.Date 是 JDK 中的日期类,精确到时、分、秒、毫秒java.sql.Date 与数据库 Date 相对应的一个类型,只有日期部分,时分秒都会设置为 0,如:2019-10-23 00:00:0…...

动态规划---线性dp和区间dp

动态规划(三) 目录动态规划(三)一:线性DP1.数字三角形1.1数字三角形题目1.2代码思路1.3代码实现(正序and倒序)2.最长上升子序列2.1最长上升子序列题目2.2代码思路2.3代码实现3.最长公共子序列3.1最长公共子序列题目3.2代码思路3.3代码实现4.石子合并4.1题目如下4.2代…...

常见的2D与3D碰撞检测算法

分离轴分离轴定理(Separating Axis Theorem)是用于解决2D或3D物体碰撞检测问题的一种方法。其基本思想是,如果两个物体未发生碰撞,那么可以找到一条分离轴(即一条直线或平面),两个物体在该轴上的…...

STM32 10个工程篇:1.IAP远程升级(二)

一直提醒自己要更新CSDN博客,但是确实这段时间到了一个项目的关键节点,杂七杂八的事情突然就一涌而至。STM32、FPGA下位机代码和对应Labview的IAP升级助手、波形设置助手上位机代码笔者已经调试通过,因为不想去水博客、凑数量,复制…...

Unity+ChatGpt的联动 AICommand

果然爱是会消失的,对吗 chatGpt没出现之前起码还看人家的文章,现在都是随便你。 本着师夷长技以制夷的思路,既然打不过,那么我就加入 github地址:https://github.com/keijiro/AICommand 文档用chatGpt翻译如下&#…...

STM-32:按键控制LED灯 程序详解

目录一、基本原理二、接线图三、程序思路3.1库函数3.2程序代码注:一、基本原理 左边是STM322里电路每一个端口均可以配置的电路部分,右边部分是外接设备 电路图。 配置为 上拉输入模式的意思就是,VDD开关闭合,VSS开关断开。 浮空…...

北邮22信通:(8)实验1 题目五:大整数加减法(搬运官方代码)

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 上一篇文章: 北邮22信通:(7)实验1 题目四:一元多项式(节省内存版)_青山如…...

Fiddler抓取https史上最强教程

有任何疑问建议观看下面视频 2023最新Fiddler抓包工具实战,2小时精通十年技术!!!对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler。 但是初学时,大家对于fiddler如何抓取HTTPS难免走歪路&#xff…...

STM32开发基础知识入门

C语言基础 位操作 对基本类型变量可以在位级别进行操作。 1) 不改变其他位的值的状况下,对某几个位进行设值。 先对需要设置的位用&操作符进行清零操作,然后用|操作符设值。 2) 移位操作提高代码的可读性。 3) ~取反操作使用技巧 可用于对某…...

学习操作系统的必备教科书《操作系统:原理与实现》| 文末赠书4本

使用了6年的实时操作系统,是时候梳理一下它的知识点了 摘要: 本文简单介绍了博主学习操作系统的心路历程,同时还给大家总结了一下当下流行的几种实时操作系统,以及在工程中OSAL应该如何设计。希望对大家有所启发和帮助。 文章目录…...

大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)

在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学…...

【数据结构】详解二叉树与堆与堆排序的关系

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 🚀数据结构专栏&#xff…...

【Pandas】数据分析入门

文章目录前言一、Pandas简介1.1 什么是Pandas1.2 Pandas应用二、Series结构2.1 Series简介2.2 基本使用三、DataFrame结构3.1 DataFrame简介3.2 基本使用四、Pandas-CSV4.1 CSV简介4.2 读取CSV文件4.3 数据处理五、数据清洗5.1 数据清洗的方法5.2 清洗案例总结前言 大家好&…...

【c++】:list模拟实现“任意位置插入删除我最强ƪ(˘⌣˘)ʃ“

文章目录 前言一.list的基本功能的使用二.list的模拟实现总结前言 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中&#xff0…...

QT表格控件实例(Table Widget 、Table View)

欢迎小伙伴的点评✨✨,相互学习🚀🚀🚀 博主🧑🧑 本着开源的精神交流Qt开发的经验、将持续更新续章,为社区贡献博主自身的开源精神👩‍🚀 文章目录前言一、图示实例二、列…...

第二章Vue组件化编程

文章目录模块与组件、模块化与组件化模块组件模块化组件化Vue中的组件含义非单文件组件基本使用组件注意事项使用 kebab-case使用 PascalCase组件的嵌套模板templateVueComponent一个重要的内置功能单文件组件Vue脚手架使用Vue CLI脚手架先配置环境初始化脚手架分析脚手架结构实…...

面试官:vue2和vue3的区别有哪些

目录 多根节点,fragment(碎片) Composition API reactive 函数是用来创建响应式对象 Ref toRef toRefs 去除了管道 v-model的prop 和 event 默认名称会更改 vue2写法 Vue 3写法 vue3组件需要使用v-model时的写法 其他语法 1. 创…...

WordPress多站點支付插件/中国优化网

26 内积 给定长度为NNN的AAA数组,长度为KKK的BBB数组 你可以从AAA数组里取KKK个数 规则如下: 每个AiA_iA​i​​只能被取出一次 i1oriNi1 \quad or \quad iNi1oriN 可以直接取出AiA_i\quadA​i​​ 2≤i≤N−12 \leq i \leq N-1\quad2≤i≤N…...

wordpress 登录美化/网络营销怎么做

随便挑了一张看起来比较高端的图片有些朋友可能玩过按键精灵,一个用来操作键盘鼠标完成一些自动化工作的软件。其实如果你学了Python的话,完全用不着按键精灵这种东西了。因为广泛的Python类库里,就有PyAutoGUI这样可以变成控制键盘鼠标的类库…...

互联网设计是什么/seo关键词优化要多少钱

岁月如梭,时光荏茬, 一个暑假的结束.成了一个轮回的开始 想停下来回想一下暑假中学校的风景,却发现自己什么也想不起来了,或许从未留意身边的风景,也或许从未想到为身边的风景而驻足.每天见到的最多的是行色匆匆的你,我和他 . 这个暑假很忙碌,却觉得很知足,因为过的不再空虚,每…...

移动端 pc网站开发/b2b免费发布信息平台

为什么需要封装echarts 每个开发者在制作图表时都需要从头到尾书写一遍完整的option配置,十分冗余在同一个项目中,各类图表设计十分相似,甚至是相同,没必要一直做重复工作可能有一些开发者忘记考虑echarts更新数据的特性&#xf…...

网站空间试用/网站建设哪家公司好

Oracle 提供了强大的审计功能,可以针对用户级,系统级范围,以及标准审计,细粒度审计等多种方式来审计各种数据库层面上的操作。然很多中小型数据库需要记录用户的登陆登出信息,而又不希望牺牲太多的性能。基于这种情形&…...

广州做网站(信科网络)/百度小说排行榜2021

1. 题目 原题链接 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈 的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹…...