首页 > 鸿萌培训

时间:2022-05-19

在上一次的神秘之旅中,鸿萌与大家一同闯进机械硬盘的秘境,近距离地观测到了文件是如何被存储在其中,又是如何被删除的。在今天即将启程的探访中,我们要深入 SSD 的神秘腹地,看看那里又在发生些什么。据说,在 SSD 的王国中,删除命令一旦下达,文件就会立即粉身碎骨,踪影皆无?!

出发!

SSD和其他支持TRIM/UNMAP命令的设备的文件恢复基础知识

(TRIM是一个SATA命令,UNMAP是其SCSI/SAS类似命令)

多年来,速度和容量一直是存储设备中最具挑战性的参数。同时,这些设备还应保持结构紧凑,不耗电,这对笔记本电脑和便携式存储设备尤为重要。这样的设备也应该是家庭和小型企业消费者能够负担得起的。电子行业已经提出了一个合理的解决方案:它提供固态硬盘(SSD)作为超快速的存储设备,以及2.5英寸SMR硬盘作为高容量但紧凑和低能耗的存储设备。分别来说,固态硬盘由于其速度快,主要用作系统设备、程序和临时存储设备,而2.5英寸SMR硬盘则用作高容量存储设备。而当这两种类型一起使用时,整个混合系统就会变得非常快,而且容量大。

除了很多优点之外,这种设备也有一些缺点,特别是在涉及到意外删除或丢失的文件恢复时。在这篇文章中,我们将解释为什么会这样,以及当你用TRIM/UNMAP命令从设备中恢复文件时,会有什么期望。

我们先从其操作的一些基本原则开始解释。

SSD设备

大多数现代计算机,甚至是非常便宜的计算机,都有一个SSD作为其系统存储设备(而且往往是唯一的一个)。与传统的硬盘驱动器相比,这种设备速度更快,运行安静,耗电更少,而且更耐物理冲击。

有两种类型的固态硬盘设备,它们的外形尺寸不同:老式的2.5英寸(与传统硬盘相同)和新式的M.2,看起来类似于内存板。

探访数据恢复的秘境——让我们去寻找那些被删除的文件!(二)

图1. SSD存储设备的两种形式:2.5英寸(左)和M.2(右)

不幸的是,这种设备也有一些严重的缺点,文件恢复就是其中之一。

固态硬盘基础知识

当一个文件从机械硬盘上被删除时,操作系统只是将该文件所占用的磁盘区域标记为空闲,但其数据却留在磁盘上未被触动,直到一些新文件将其覆盖。当一个数据恢复程序访问未被新数据覆盖的区域时,它就会得到旧的数据。这就是文件恢复的工作方式。

然而,固态硬盘必须使用新的单元,或者首先清除占用单元中的旧数据,以存储新数据。在SSD中清除旧数据是一个相当缓慢的过程。这就是在SSD中删除文件的工作方式:当用户、程序或操作系统本身删除一个文件时,操作系统会发出TRIM命令,通知 SSD 不再需要这些数据。固态硬盘将文件占用的单元放到一个特殊的池子里,以后再清除。当任何程序或操作系统要求从这些单元中获取数据时,SSD 会简单地返回垃圾或零!

此外,设备不断地在其存储单元中重新调换数据位置,以优化其读取负载,而且只有设备本身知道文件数据在任何给定的时间内存储在哪里。操作系统无法控制这个过程,此外,它也没有办法知道数据的实际物理位置。

这就是为什么在使用 TRIM 命令时,从 SSD 设备上恢复数据将变得非常困难,而且在大多数情况下是不可能成功的。

固态硬盘是固态储存装置,就像其他闪存类型(SD卡、记忆棒等),但并非所有固态储存装置都是SSD。R-Studio在 "S.M.A.R.T. "标签的 "特征 "字段中显示闪存设备是否支持TRIM命令。

探访数据恢复的秘境——让我们去寻找那些被删除的文件!(二)

图2.SSD设备中的TRIM支持

采用SMR技术的硬盘

存储密度的限制是紧凑型硬盘在提高容量时遇到的主要障碍,而SMR(Shingled Magnetic Recording)技术则可以克服这个障碍。与传统硬盘在非重叠的磁道中相互平行地写入数据不同,SMR硬盘在部分重叠的磁道中写入数据,从而使磁道密度更高。这种记录方式类似于屋顶上的瓦片,因此得名。

这种技术确实增加了硬盘的容量,但当数据被覆盖或删除时,这种操作也会影响到其他重叠磁道的一部分相应的数据。为了保存重叠轨道上的数据,应该将其写入其他地方,这使得这一操作非常缓慢。为了加速这一过程,使用了与SSD设备相同的原理和相同的TRIM命令。对数据恢复的影响是相同的:当任何程序或操作系统要求从已删除的文件中获取数据时,硬盘会返回零或垃圾,使数据恢复变得非常困难或不可能。

通常SMR磁盘的外壳上都有一个特殊的标记:

探访数据恢复的秘境——让我们去寻找那些被删除的文件!(二)

图3.采用SMR技术的硬盘驱动器

R-Studio在 "S.M.A.R.T "标签的 "特性 "字段中显示硬盘是否支持TRIM命令。

探访数据恢复的秘境——让我们去寻找那些被删除的文件!(二)

图4.采用SMR技术的硬盘中的TRIM支持

支持TRIM命令的存储设备、操作系统和文件系统

当所有三个组件都支持TRIM时,TRIM才会发挥作用:存储设备、操作系统和支持TRIM的设备上的文件系统。几乎所有现代的SSD设备和大于1TB的2.5英寸硬盘都支持TRIM命令。至于由SSD和SMR硬盘组成的复杂卷,则取决于。Linux LVM2和Windows软件RAID支持TRIM,而macOS的软件RAID和大多数硬件RAID控制器不支持。

虚拟机的虚拟磁盘就比较麻烦了。一个虚拟磁盘存储在支持TRIM的设备上并不意味着什么。对于主机操作系统来说,这个磁盘是一个有效的文件,其虚拟机的所有磁盘操作都是对该文件的读写操作。在虚拟机内有一个支持TRIM的虚拟磁盘,这完全取决于虚拟化软件。有些只是模拟TRIM命令,并返回垃圾,而不对SSD文件进行任何实际改变,而有些则改变文件数据。

支持TRIM命令的主要操作系统和文件系统:

探访数据恢复的秘境——让我们去寻找那些被删除的文件!(二)

TRIM命令如何影响数据恢复

被删除的文件和被格式化的磁盘:

Windows和Mac:几乎总是不可能。即使是原始文件恢复也无济于事。

Linux:如果在发出TRIM命令之前完成,则有可能。

在轻微损坏的文件系统中丢失的文件(由其本地操作系统识别):

每个操作系统都在逐步修复这样的文件系统,使用TRIM命令来删除垃圾、无效的文件记录和不必要的文件。如果做得快,并且在禁用TRIM命令的系统上,数据恢复是可能的。

严重损坏的文件系统(不被其本地操作系统识别):

数据恢复是可能的,因为操作系统不能修复它们,也不会删除任何数据。

如何尽量减少TRIM命令的负面影响

在可以进行数据恢复的情况下,可以采取一些措施来减少TRIM命令的负面影响。

在恢复数据时禁用TRIM命令。一旦文件恢复完成,不要忘记启用它:

Windows:

按Win+X组合键。

Windows PowerShell会弹出:

输入 "fsutil behavior set DisableDeleteNotify 0/1"

(1表示禁用,0表示启用)

macOS:

在终端,输入 "sudo trimforce disable"

输入管理密码,并对几个问题回答 "Y"。

计算机将在禁用TRIM的情况下自动重新启动。

要重新启用TRIM,输入 "sudo trimforce enable"。

Linux:

取决于发行版和设置。请查阅特定安装的文档。

结论

在主要的现代操作系统上运行的支持TRIM的设备,对于被删除的文件和被格式化的设备来说,数据恢复大多是不可能的,而在其他情况下则非常困难,至少在只使用软件解决方案的情况下。例外的情况是有极少数的高级数据恢复公司,在某些情况下可以恢复从启用TRIM命令的SSD设备上删除的数据。然而,这样的过程需要对设备的内部组件进行物理访问,并需要大量的人工检测。

这就是为什么适当和定期的数据备份对于使用SSD存储设备的电脑来说特别重要。

SSD 的世界是不是有另外一番风格?我们要带着满满的收获和充实的回味结束今天的旅程了!