SSD固态硬盘的黄金原则:抱最高的希望,做最坏的打算-1

news2024/9/29 23:25:42

随着SSD固态硬盘日益普及,在个人电脑中已成为基本的配置选项。在体验SSD固态硬盘带来的性能优势的同时,你有没有想过一个问题,SSD的数据如果误删除或发生故障丢失,还有没有可能找回来呢?这也许是固态硬盘飞入寻常百姓家后需要面临最深刻的灵魂拷问!

图片

在介绍SSD数据恢复的内容前,我们需要先了解一个SSD文件删除相关的特性“TRIM”。TRIM是SSD的一个特性,目的是让固态硬盘SSD在进行内部GC垃圾回收的时候,避免搬迁已经被OS删除的数据,减少无用的数据的搬迁从而降低写放大,提升SSD固态硬盘的寿命,同时也可以提升盘的有效带宽。

比如在OS不支持TRIM的场景:

  • 第一步:OS层面写了数据文件A,B,C,D,同时SSD的逻辑地址和物理地址也都写入了对应的数据。

  • 第二步:删除了文件C,这个时候OS并没有立即告诉SSD这数据是无效的,特别这个阶段,如果发生GC,依然会搬迁文件C对应原始数据,因为对SSD盘来说,这些还是用户的有效数据

  • 第三步:OS层面写入文件E,覆盖了文件C的原始LBA逻辑地址,直到这个时候,SSD内部才恍然大悟:“啊!原来我之前搬迁的还是无效数据呀,做了无用功,SSD也是欲哭无泪呀!”

图片

作为对比,在OS支持TRIM的场景的工作机理:

  • 第一步:OS层面写了数据文件A,B,C,D,同时SSD的逻辑地址和物理地址也都写入了对应的数据。

  • 第二步:删除了文件C,这个时候OS立即发送了TRIM指令,也就是立即告诉了SSD,这些数据是无效的,不用处理了。这个阶段发生GC垃圾回收,会直接把文件C对应的物理数据直接擦除。

  • 第三步:OS层面写入文件E,覆盖了文件C的原始LBA逻辑地址,物理地址也写入了新的数据。

图片

注意,在OS支持trim的机器上,当你删除文件后,会自动向SSD发送trim,这个过程是自动发生的。

如何确定自己的电脑是否有打开Trim功能呢?以Windows系统为例:

以管理员身份运行cmd界面,并输入“fsutil behavior query DisableDeleteNotify”

  • 如果DisableDeleteNotify返回值是1,则Trim处于关闭状态或者不支持

  • 如果DisableDeleteNotify返回值是0,则Trim处于开启状态

图片

如果要关闭TRIM则执行:fsutil behavior set DisableDeleteNotify 1

图片

到这里,你是不是有所了解了,如果我们想要提升SSD的数据修复的概率,最好是把TRIM功能给关闭掉,不然文件删除后,想再找回真的是难于上青天了。

在了解了TRIM原理以后,我们再总结下固态硬盘常见的故障模式:

与机械硬盘HDD不同,固态硬盘没有机械零件,主要靠电学信号传输,不会出现机械故障。在固态硬盘给大家带来多重优势的同时,固态硬盘相对机械硬盘最大的劣势就是:数据恢复异常艰难,比机械硬盘HDD的数据修复概率低很多。所以,如果你有重要数据,切记一定要备份,最后备份一个SSD,一个HDD,双重保障。

图片

固态硬盘常见的故障模式,主要有以下几种:

  • 温度过高。在固态硬盘长时间大压力读写,或者机器散热不高的情况下,持续高温运行,固态硬盘内部的器件也会加速出现异常或者降速运行,最终导致OS访问硬盘出现异常。

  • 物理损坏。当固态硬盘有跌落或者撞击的影响的时候,也会影响固态硬盘上电子器件的可靠性,出现异常,严重的话,会出现数据丢失。

  • 使用不当。由于盘有固定的寿命期限,如果长时间大压力随机读写,也会加速SSD寿命的消耗。或者出现经常性的意外掉电,导致盘处于长时间的异常环境,也会加速盘的故障。

  • 固件异常:固态硬件的固件Firmware内部包括了SSD的FTL算法,读写逻辑,ECC纠错等算法,非常复杂,出现FWbug的概率也相当高。或者出现盘内部异常,FW出现锁死的情况,导致盘处于只读模式或者无法访问的状态。这种情况,数据的恢复几乎不可能了。

  • 数据损坏:当固态硬盘受到恶意病毒的感染,数据也会出现损坏,恶意破坏数据块的内容,导致无法恢复。

这么多故障的可能,那么固态硬盘SSD的数据修复,到底是否有办法呢?我们这里介绍两种尝试修复的方式,不能保证一定会成功。在你误删除一些文件的时候,可以尝试下,市场也有也有很多的修复软件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1363292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++_命令行操作

命令行操作 介绍第一步编译 源码第二部 找到exe 可执行文件第三步看图操作代码测试源码测试结果 介绍 本文介绍命令行操作 1.argc 表示当前输入 参数个数 2.argv 表示当前输入 字符串内容 第一步编译 源码 #include<iostream> #include<string>using namespace st…

构建网络信息安全的中国方案 - 国密SSL协议介绍以及国密Nginx服务器部署

国密SSL协议 国密SSL协议指的是采用国密算法&#xff0c;符合国密标准的安全传输协议。简而言之&#xff0c;国密SSL就是SSL/TLS协议的国密版本。TLS协议定义有三个版本号&#xff0c;为0x0301、0x0302、0x0303&#xff0c;分别对应TLS 1.0、1.1、1.2。国密SSL为了避免冲突&am…

Go (一) 基础部分5 -- 单元测试,协程(goroutine),管道(channel)

一、单元测试 Go自带一个轻量级的"测试框架testing"和自带的"go test"命令来实现单元测试和性能测试。 1.确保每个函数时可运行&#xff0c;并且运行结果是正确的。 2.确保写出来的代码性能是好的。 3.单元测试能及时的发现程序设计或实现的逻辑错误&#…

Nginx 常用变量 与 防盗链

目录 1.常用变量 2. $http_referer 配置防盗链 2.1 referer 2.2 配置防盗链 1.常用变量 变量说明 $args 请求中的参数&#xff0c;也叫查询参数 $content_length HTTP响应信息里的"Content-Length" $document_root nginx虚拟主机配置文件中的root站点根目录…

八大算法排序@归并排序(C语言版本)

目录 归并排序概念算法思想第一步第二步第三步 算法步骤代码实现代码1代码优化 时间复杂度空间复杂度特性总结 归并排序 概念 归并排序&#xff08;Merge Sort&#xff09;是一种基于分治策略的经典排序算法。它的基本思想是将待排序的数组划分成两个子数组&#xff0c;分别对…

vue-springboot基于java的社区志愿者活动信息管理系统 e2y4d

社区志愿者信息管理系统的主要开发目标如下&#xff1a; &#xff08;1&#xff09;对零碎化、分布散的数据信息进行收纳、整理&#xff0c;通过网络服务平台使这些信息内容更加调理&#xff0c;更加方便化和清晰化&#xff0c;让访问该系统的每个用户享受浏览的过程。 &#x…

简单 Web Server 程序的设计与实现 (2024)

1.题目描述 Web 服务是 Internet 最方便与受用户欢迎的服务类型&#xff0c;它的影响力也远远超出了专业技术范畴&#xff0c; 已广泛应用于电子商务、远程教育、远程医疗与信息服务等领域&#xff0c;并且有继续扩大的趋势。目前很多 的 Internet 应用都是基于 Web 技术的&…

MySQL之数据类型建表以及约束

SELECT(查询) 查询操作用于从数据库中检索数据 查询可以基于不同的条件&#xff0c;如字段值、范围、排序等 查询结果可以返回单个记录或多个记录 查询指定列 select 列名 from 表名 列名&#xff1a;代表从指定的列名中查找 , 如果是查找对应的多列&#xff0c;则用英文…

word 常用功能记录

word手册 多行文字对齐标题调整文字间距打钩方框插入三线表插入参考文献自动生成目录插入页码&#xff08;罗马格式和阿拉伯数字格式&#xff09; 多行文字对齐 标题调整文字间距 打钩方框 插入三线表 插入一个最基本的表格把整个表格设置为无框线设置上框线【实线1.5磅】设置…

基于Springboot的Timo商城

​ 目录 ​前言 开发环境和工具 项目功能 基础模块 商城功能 手机端 设计详情 后台登录页面 后台 手机端页面 小程序端页面 视频展示 源码获取 前言 本项目是一个基于IDEA和Java语言开基于Springboot的Timo商城。应用包含网页管理端&#xff0c;手机端&#xff0…

Matlab三维绘图

绘制三维图plot3 t0:pi/50:10*pi; xsin(t); ycos(t); zt; plot3(x,y,z); 产生栅格数据点meshgrid 这个接口在绘制三维图像里面相当重要&#xff0c;很多时候要将向量变成矩阵才能绘制三维图。 x0:0.5:5; y0:1:10; [X,Y]meshgrid(x,y); plot(X,Y,o); x和y是向量&#xff0c;…

JavaWeb——后端案例

五、案例 1. 开发规范—Restful REST&#xff08;Representational State Transfer&#xff09;&#xff0c;表述性状态转换&#xff0c;是一种软件架构风格 注&#xff1a; REST是风格&#xff0c;是约定方式&#xff0c;不是规定&#xff0c;可以打破描述模块的功能通常使…

uniappVue3版本中组件生命周期和页面生命周期的详细介绍

一、什么是生命周期&#xff1f; 生命周期有多重叫法&#xff0c;有叫生命周期函数的&#xff0c;也有叫生命周期钩子的&#xff0c;还有钩子函数的&#xff0c;其实都是代表&#xff0c;在 Vue 实例创建、更新和销毁的不同阶段触发的一组钩子函数&#xff0c;这些生命周期函数…

每日一博 - 多租户技术及其三种数据存储策略

文章目录 概述应用程序隔离数据隔离小结 概述 多租户技术&#xff08;Multi-Tenant Technology&#xff09;是软件即服务&#xff08;SaaS&#xff09;架构中的一项核心技术&#xff0c;允许单一软件应用或服务同时服务于多个客户&#xff08;即“租户”&#xff09;&#xff…

STM32F4xx之库函数

一、库函数介绍 库函数与寄存器的区别 库函数&#xff1a;不需要自己写很多代码&#xff0c;可以利用软件生成代码。使用的时候必须添加库文件。库文件是芯片厂商写好了。占用空间大。 寄存器&#xff1a;自己写的代码量大&#xff0c;没有软件生成代码。使用的时候不需要库文件…

目标检测数据集大全「包含VOC+COCO+YOLO三种格式+划分脚本+训练脚本」(持续原地更新)

一、作者介绍&#xff1a;五年算法开发经验、AI 算法经理、阿里云开发社区专家博主、稀土掘金人工智能内容评审委员会成员。擅长&#xff1a;检测、分割、理解、AIGC 等算法训练与部署。 二、数据集介绍&#xff1a; 质量高&#xff1a;高质量图片、高质量标注数据&#xff0c;…

【LMM 011】MiniGPT-5:通过 Generative Vokens 进行交错视觉语言生成的多模态大模型

论文标题&#xff1a;MiniGPT-5: Interleaved Vision-and-Language Generation via Generative Vokens 论文作者&#xff1a;Kaizhi Zheng* , Xuehai He* , Xin Eric Wang 作者单位&#xff1a;University of California, Santa Cruz 论文原文&#xff1a;https://arxiv.org/ab…

[技术杂谈]使用VLC将视频转成一个可循环rtsp流

通过vlc播放器&#xff0c;将一个视频转成rtsp流&#xff0c;搭建一个rtsp服务器。rtsp客户端可访问这个视频的rtsp流。 1. 打开vlc播放器&#xff0c;使用的版本如下 2. 菜单&#xff1a;媒体 ---> 流 3. 添加视频文件&#xff0c;点击添加一个mp4 文件 4. 选择串流&…

从零开始C++精讲:第一篇——C++入门

文章目录 前言一、C关键字二、命名空间2.1引子2.2命名空间定义2.3命名空间的使用 三、C输入和输出3.1输出3.2输入 四、缺省参数4.1全缺省4.2半缺省 五、函数重载5.1重载概念 六、引用6.1定义6.2引用的使用示例6.2.1引用作参数6.2.1引用作返回值 6.3传值、传引用效率比较6.4常引…

JVM:字节码

JVM&#xff1a;字节码 前言1. JVM概述1.1 JVM vs JDK vs JRE1.1.1 JVM1.1.2 JDK1.1.2.1 常用的JDK8是Oracle JDK 还是 OpenJDK 1.1.3 JRE1.1.4 三者之间的关系与区别 1.2 什么是字节码?采用字节码的好处是什么?1.3 Java 程序从源代码到运行的过程1.4 JVM的生命周期1.5 JVM架…