EXT4中恢复使用rm命令误删除的文件

来源:互联网 发布:技术导航网源码 编辑:程序博客网 时间:2024/04/28 17:59

有时使用 rm -rf 命令将文件误删,可以使用extundelete软件进行恢复。一般安装Ubuntu时使用的是默认的分区,也就是 /dev/sda1, 因为恢复这个设备上的数据时首先需要将此设备umount。

1. 使用U盘进入Ubuntu系统

将U盘制作成Ubuntu启动盘之后启动电脑,选择 试用Ubuntu  而不是安装Ubuntu,这样就进入Ubuntu系统。输入命令

#sudo fdisk -l

可以看到有多个设备,如果只有一个系统的话,对应设备一般为 /dev/sda1 (以此为例),记下这个设备。

2. 安装软件extundelete

extundelete 主页:http://extundelete.sourceforge.net/
下载地址:http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.0/extundelete-0.2.0.tar.bz2
ubuntu用户可直接安装: apt-get install extundelete

下载软件包之后,阅读README文档,即可知道如何安装。

[root@www ~]# wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.0/extundelete-0.2.0.tar.bz2
[root@www ~]# tar xf extundelete-0.2.0.tar.bz2
[root@www ~]# cd extundelete-0.2.0
[root@www extundelete-0.2.0]# ./configure && make && make install    # 如果提示找不到ext2fs库,使用 yum -y install e2fsprogs* 安装

不能安装的话,对于Ubuntu直接下载对应的 deb 格式软件包。

下载地址:http://packages.debian.org/unstable/main/extundelete

然后  #sudo dpkg -i <package.deb> 即可进行安装

3. 使用extundelete命令进行文件的恢复

首先需要确保恢复数据的分区处于umounted状态,一般默认不管它就ok。

#sudo extundelete --help

可以查看具体的使用方法。

[root@www ~]# extundelete --inode 2 /dev/sda1    # --inode 为查找某i节点中的内容,使用2则说明为搜索当前目录,如果需要进入目录搜索,只须要指定目录I节点即可

一般恢复出来的文件如果很大的话,建议在新的U盘中执行相应的操作。因为你的Ubuntu系统是运行在内存中的。

首先mount 你的新的U盘(和启动U盘不一样),进入U盘目录,恢复全部文件

➜  Ubuntu 12.0  pwd
/media/cherry/Ubuntu 12.0
➜  Ubuntu 12.0 sudo  extundelete --restore-all /dev/sda1      #此命令表示恢复出设备 /dev/sda1 上所有可以恢复的文件

注意恢复出来的文件全部位于执行命令的当前目录下的 RECOVERED_FILES 目录下。

➜  RECOVERED_FILES  pwd
/media/cherry/Ubuntu 12.0/RECOVERED_FILES
➜  RECOVERED_FILES  ls
bin  etc  home
➜  RECOVERED_FILES  

现在想要恢复的数据就位于你的U盘中了,接着重启电脑。OK~


原创粉丝点击