linuxrm-rf删除的文件怎么恢复

linuxrm-rf删除的文件怎么恢复,第1张

第一种 误删文件进程还在

这种方法就比较简单,能还原的文件限制也比较多。如果被删除的文件的进程还是存在,即能找到进程PID。通过命令 lsof | grep (deletefile) 查找到进程id。然后就是进入进程目录 cd /proc/PID/fd 。然后可以通过 ll 命令查看具体文件信息,将有软连接到被删除文件的文件复制就可还原了。

第二种 使用extundelete之类基于inode的工具

针对 Linux 下的 ext 文件系统来说,常用的 Linux 文件删除恢复工具有 debugfs、ext3grep、extundelete 等。extundelete 是一个开源的数据恢复工具,支持 ext3、ext4 文件系统,其官方站点位于http://extundelete.sourceforce.net/,目前最新稳定版本为 0.2.0。

这个工具和还有一些其他类似的恢复工具,都是基于inode,还原文件的,也就是说,需要被删除文件的inode还在,没有被覆盖,即在文件删除之后,没有读写输入。所以第一件事就是挂起文件所在分区。但是这个 *** 作有个问题就是,如果系统只有一个挂载盘,而且还是线上服务的话,挂起是不现实的。并且就算读写不多,但是系统本身没有安装这些恢复工具,在你安装编译这些恢复工具时的读写,也很可能把删除的文件inode覆盖了。

但是如果,系统拥有多个挂载盘,且被删除文件分区所在的文件盘挂起并不印象,你还是可以尝试这个方法的。或者系统本身就有安装这个工具,距离文件删除不是很久,也可以试一下,也许inode还在呢。

具体使用方法这里就不说了,网上很多教程,随便搜一下都是。

第三种 testdisk工具

testdisk 是分区表恢复、raid 恢复、分区恢复的开源免费工具(testdisk 支持如下文件系统: FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4)。testdisk 支持的功能: 修复分区表, 恢复已删除分区,用 FAT32 备份表恢复启动扇区,重建 FAT12/FAT16/FAT32 启动扇区,修复 FAT 表,重建 NTFS 启动扇区,用备份表恢复 NTFS 启动扇区,用 mft 镜像表(mft mirror)修复 mft 表,查找 ext2/ext3 备份的 superblock,从 FAT,NTFS 及 ext2 文件系统恢复删除文件,从已删除的 FAT,NTFS 及 ext2/ext3 分区复制文件。

所以,这个工具是不基于inode的,即时文件后,没有挂起分区,读写 *** 作一直在进行,或者过去很久了,都是可以有机会恢复文件的。

但也不是百分百能成功,举个栗子,被删除的是 /usr/local/mytest 这个文件夹。然后你这个文件夹下部分文件的备份,为了及时先恢复部分线上业务,然后你mkdir /usr/local/mytest 然后将部分备份复制了进去。那么testdisk也无法拯救恢复了。还有就是testdisk恢复文件时,还需要注意看一下文件大小。如果文件大小显示为0,那么就算选择恢复这个文件,也是会得到一个0kb的文件。

所以这个适用于,一些inode已经被覆盖,但是文件物理存储块还未被覆盖的文件,可以尝试一下这个方法,也许可以找回部分丢失文件。

在使用rm -rf这个命令时一定要小心再小心,不然造成的后果是很严重的,因此提醒大家再使用这个命令时一定要保持头脑清醒。

你还记得住以前的分区设置么?需要精确的容量,硬盘分区要精确到块(好像是

4k

左右吧?。

如果记得住,可以这样:

使用

diskgenuis

(其实别的也行,但有的分区软件不能精确分区,这软件也不是能特别准确,但他能修改分区类型,有用)添加一个新的分区,把那个

/

分区分出来,一定要和以前一样,分区的类型我记得是

83,错了容易导致

Linux

不能挂在这个分区。之后重新启动。使用

Linux

Live

CD

启动(ubuntu

就有

liveCD

)。用命令行尝试挂载那个分区,命令如下:

首先新建一个用来挂载的目录。

mkdir

linux

之后挂载:(非

root

用户需要sudo,用

root

用户的话不需要sudo)

sudo

mount

-t

ext3

/dev/XXX

linux

-o

ro

解释:

-t

后面的

ext3

根据需要修改,他是你的

Linux

所使用的分区类型,不知道的话可以试试

auto。/dev/XXX

要针对你的

Linux

所在的分区设备名。详细的命名方法请搜索。-o

ro

是让他只读挂载,防止损坏数据。

如果分区正确,你就可以看到里面的文件,并且可以把所有的数据拷贝出来。

建议用

tar

压缩到一个

FAT32

分区里。压缩的命令:

CD

到硬盘的

linux

分区:

cd

linux

(就是你刚才

mkdir

明且

mount

到的地方)

tar

cfj

/mnt/fat32

*

就行了。fat32

就是你挂载的那个

FAT32

分区,注意你的

Linux如果太大,压缩文件超过

2G

就不行了。你可以尝试找一个用

ntfs-3g

LiveCD挂载一个

NTFS

分区。(找个大

U

盘或者移动硬盘,格式化为

ext3

分区更好)

如果压缩成功,就意味着这个分区里面的数据没有丢失。

可以适当把分区分的比以前大一点。从而保证数据都没事。

SWAP

没有重要数据。不用恢复他,把剩下的空间重新分给他就行了。

如果数据压缩出来了,你就可以考虑是不是把这个分区格式化一下,之后再把

linux

文件解压缩回去。

再恢复

GRUB

就行了。

我没有说很多需要的命令,你要是不知道的话,可以搜索一下,都有用法能找到的。

Linux

下,输入

df

-T

命令,看看是否全部磁盘都被格式化成了linux的

ext3

格式,如果不是的话,那就容易了。简单的方法是把你这块硬盘拆下,接到另一台装有

windows

的主机上,然后把那些

windows

分区里的数据拷贝出来--这是最为稳妥的一种做法。

假如整块磁盘都被格式化成

ext3

,那可能比较麻烦,或许无法恢复了。

但是,还是可以把这快磁盘拆下,然后装到一台装有

windows

的主机上,然后再在这台计算机上安装

EasyRecovery

这个软件,尝试恢复。(因为

快速格式化

加入数据没被覆盖,理论上是可以恢复的)

祝好运。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8389453.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存