加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux中误删文件的恢复方法

发布时间:2022-12-17 15:02:22 所属栏目:Linux 来源:转载
导读:
做为Linux的从业者大家对"rm -rf"这个命令肯定又爱又恨。
他简洁霸气,势不可挡,可谓"十步杀一人,千里不留行",
他干净彻底,不留痕迹,狠狠按下回车键后,"事了拂衣去,深藏功与名"。

linux恢复被删除的文件_linux如何恢复删除的文件_linux数据恢复

做为Linux的从业者大家对"rm -rf"这个命令肯定又爱又恨。

他简洁霸气,势不可挡,可谓"十步杀一人,千里不留行",

他干净彻底,不留痕迹,狠狠按下回车键后,"事了拂衣去,深藏功与名"。

但是linux数据恢复,这个世界总是遗憾常有,而后悔药不常有,删错后呆呆地盯着屏幕,莫名奇妙地会"哀吾生之须臾,羡长江之无穷"。

今天小编就给大家介绍的就是一款好用的"后悔药"——extundelete

准备工作

下载安装包:

环境准备:

  1. [root@lh 1]# yum -y install e2fsprogs-libs e2fsprogs e2fsprogs-devel

  2. [root@lh 1]# rpm -q e2fsprogs-libs e2fsprogs e2fsprogs-devel

安装extundelete:

  1. [root@lh 1]# tar jxvf extundelete-0.2.4.tar.bz2

  2. [root@lh 1]# cd extundelete-0.2.4

  3. [root@lh extundelete-0.2.4]# ./configure && make && make install

制造车祸现场

注:如果您已经误删了文件,请跳过此章

格式化一个分区

  1. [root@lh 1]# mkfs.ext4 /dev/sdc1

挂载并制造一些文件

  1. [root@lh 1]# mkdir /diskc

  2. [root@lh 1]# mount /dev/sdc1 /diskc

  3. [root@lh 1]# cd /diskc

  4. [root@lh diskc]# cp /etc/passwd ./

  5. [root@lh diskc]# cp /bin/ls ./

  6. [root@lh diskc]# mkdir mlryj

  7. [root@lh diskc]# echo "Welcome to 麻辣软硬件" > mlryj/1.txt

查看制造文件的md5值

  1. [root@lh diskc]# md5sum passwd ls mlryj/1.txt

  2. 4b2c3e7fb5baf6f98307068d9c337620 passwd

  3. c75a745aeabe3449655f2e7d3b081791 ls

  4. dd69abb0cab322377ac06f6648f9ec8a mlryj/1.txt

查看文件详情

  1. [root@lh diskc]# ls -l

  2. 总用量 140

  3. drwx------ 2 root root 16384 3 14 17:40 lost+found

  4. -rwxr-xr-x 1 root root 117024 3 14 17:43 ls

  5. drwxr-xr-x 2 root root 4096 3 14 17:43 mlryj

  6. -rw-r--r-- 1 root root 1935 3 14 17:43 passwd

删除所有文件

  1. [root@lh diskc]# rm -rf *

找回被删除的文件取消挂载

  1. [root@lh 1]# umount /diskc

可用的命令

此时常用的有如下四个命令:

1.查看可以恢复哪些文件:

  1. extundelete /dev/sdc1 --inode 2

2.恢复某文件:

  1. extundelete /dev/sdc1 --restore-file somefile

3.恢复某目录:

  1. extundelete /dev/sdc1 --restore-directory /somedir

4.恢复所有文件:

  1. extundelete /dev/sdc1 --restore-all

命令执行后恢复后的文件存储在当前文件夹下的RECOVERED_FILES目录中

文件恢复及验证

恢复单个文件和目录就不再赘述了,我们直接恢复所有文件

  1. [root@lh 1]# extundelete /dev/sdc1 --restore-all

  2. NOTICE: Extended attributes are not restored.

  3. Loading filesystem metadata ... 64 groups loaded.

  4. Loading journal descriptors ... 55 descriptors loaded.

  5. Searching for recoverable inodes in directory / ...

  6. 5 recoverable inodes found.

  7. Looking through the directory structure for deleted files ...

  8. 0 recoverable inodes still lost.

  9. [root@lh 1]# ls

  10. RECOVERED_FILES

查看文件是否成功找回

  1. [root@lh 1]# cd RECOVERED_FILES/

  2. [root@lh RECOVERED_FILES]# ls -l

  3. 总用量 124

  4. -rw-r--r-- 1 root root 117024 3 14 17:49 ls

  5. drwxr-xr-x 2 root root 4096 3 14 17:49 mlryj

  6. -rw-r--r-- 1 root root 1935 3 14 17:49 passwd

  7. [root@lh RECOVERED_FILES]# md5sum passwd ls mlryj/1.txt

  8. 4b2c3e7fb5baf6f98307068d9c337620 passwd

  9. c75a745aeabe3449655f2e7d3b081791 ls

  10. dd69abb0cab322377ac06f6648f9ec8a mlryj/1.txt

  11. [root@lh RECOVERED_FILES]# cat mlryj/1.txt

  12. Welcome to 麻辣软硬件

我们可以看到,文件的md5值和内容都没有变化,可见恢复成功了。

结语

虽然有此利器,但只是应对意外。我们使用"rm -rf"时,还是要谨慎一些,不要冒无谓的风险。至少从示例看extundelete也不是万能的,在本示例中可以看出,目录的"总用量"和文件权限都发生了变化。

而且工具本身不能保证兼容所有Linux系统和所有类型的磁盘。同样的操作小编在Centos7升级内核到7.4之后挂载SSD硬盘的环境下尝试,查看可恢复的节点没有问题,恢复文件和目录时,extundelete就发生了coredump。

关注"麻辣软硬件",获取更多有料的软硬件知识

linux如何恢复删除的文件_linux恢复被删除的文件_linux数据恢复

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!