[Share Experiences] Linux 下固态硬盘恢复误删除文件
Tofloor
poster avatar
littlebat
deepin
2022-10-30 05:53
Author

首发地址:学习日记 https://www.learndiary.com/2022/10/linux-ssd-recovery/

上次分享了一则Linux下恢复误删除文件的视频,有朋友在视频下方询问是否机械硬盘,由此引出今天这则Linux下固态硬盘恢复误删除文件的视频。
总的来说,在 Linux 下,在合理配置的情况下,多半还是可以恢复一些文件的。视频演示地址:https://www.bilibili.com/video/BV1ZG411L7xt/?share_source=copy_web&vd_source=d1925b070926f23b2b6676137251e9ea

提示:本演示视频分为“不执行 trim 可以恢复误删除文件”和“手动或实时执行 trim 不能恢复误删除文件”如下两部分:

一、固态硬盘的 trim 功能

固态硬盘不能恢复误删除文件的原因,主要是因为固态硬盘启用了trim功能。固态硬盘执行了 trim 指令后,误删除文件本来还存在于硬盘上的具体数据就会被清空,以便为后面的磁盘写操作省去这一步骤,从而改善磁盘性能。机械硬盘是没有 trim 功能的,所以不会产生这个问题。trim功能具体情况我就不展开讲了。

二、Linux 下固态硬盘文件恢复

现在,主流的 Linux 操作系统和其下的文件系统,以及主流的固态硬盘基本上都支持 trim 功能的,可以用“lsblk --discard”命令简单查询一下。Linux 下固态硬盘 trim 功能的使用大致有三种情况。下面分别讲一下每种情况下恢复误删除文件的可能性。

1、不使用 trim 功能

这种情况,恢复误删除文件与机械硬盘差不多。这种情况也是不少系统的默认状态,如 Deepin 20.7 Linux、CentOS 7 Linux,等等。但这种情况下,据说磁盘性能在空间紧张时会严重下降。

2、使用定时任务执行 trim 功能

这种情况下,恢复误删除文件的可能性会下降一些,但不会太多。只有当你误删除了文件后,碰巧定时 trim 任务执行了,这个任务执行过后,误删除文件就恢复不了了。在使用 systemd 的 Linux 发行版中,如在 Deepin 20.7 Linux 和 CentOS 7 里面都有一个 fstrim.timer 的定时器和相应 fstrim.service 服务,开启后是每周执行一次挂载分区的 trim 任务。

3、在挂载磁盘选项中设置 discard 选项

这种情况,就是在 /etc/fstab 或手动挂载磁盘的挂载选项中加上 discard 选项。这样,一个文件被删除了,随即会被自动 trim 回收空间。这种情况删除文件后就应该不能恢复了。这种配置方式据说是会降低磁盘性能的且不能恢复误删文件。所以,不推荐。

三、小结

所以。从以上的分析来看,只要不选择在挂载磁盘选项中设置 discard 的做法。在 Linux 下面固态硬盘恢复误删除文件的概率跟机械硬盘是相差不大的。

朋友们有什么不同看法或批评指正,敬请留言。

四、参考链接

1、How to properly activate TRIM for your SSD on Linux: fstrim, lvm and dm-crypt http://blog.neutrino.es/2013/howto-properly-activate-trim-for-your-ssd-on-linux-fstrim-lvm-and-dmcrypt/
2、SSD的TRIM原理及实践 https://blog.csdn.net/wylfengyujiancheng/article/details/120435464
3、手机、固态硬盘数据删除,格式化后为啥没办法恢复,你知道吗? https://www.bilibili.com/video/BV11g411774v/
4、Linux 下恢复误删文件 https://www.learndiary.com/2022/09/linux-file-recovery/

Reply Favorite View the author
All Replies
华芯
deepin
2022-10-30 06:50
#1

学习中。

Reply View the author
辉夜
deepin
2022-10-30 17:11
#2

学习了like

Reply View the author