Ubuntu 16.04使用rm -rf误删文件恢复方法收集

说明:不一定有效,需要不断尝试

一、lsof

文件刚刚被删除,想要恢复,先尝试lsof.

lsof |grep data.file1
cp /proc/xxx/xxx/xx  /dir/data.file1

如果lsof不能看到文件,那么就需要使用恢复软件进行恢复。

要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区。

umount  /dev/part
或
mount -o remount,ro /dev/part

删除一个文件,就是将文件inode(inode 是操作系统寻找文件的目录,起到索引作用),节点中的扇区指针清除,同时,释放这些数据对应的数据块,而真实的文件还存留在磁盘分区中。但是这些被删除的文件不一定会一直存留在磁盘中,当这些释放的数据块被操作系统重新分配时,这些被删除的数据就会被覆盖。因此要立刻卸载分区。

二、ext3grep

sudo apt-get install ext3grep  

参考资料[4]中对这个工具的使用有比较详细的说明过程。然而,正如参考资料[5]所言,这个工具只适合于ext3文件系统的,而新版本的Ubuntu系统一般都使用ext4文件系统,因此需要使用其它工具,如extundelete

三、extundelete

sudo apt-get install extundelete  

使用这个工具,我成功的恢复了使用rm命令误删的文件。关于这个工具的使用方法,可见参考资料[7]。下面简单记录一下回复过程。

sudo extundelete /dev/sda1 --restore-all  

说明:/dev/sda1是误删文件所在的分区。我的误删的文件原来在/home/liyihai里面的子目录中,而这个目录挂载于/dev/sda1分区(使用df -h命令查看)。

执行上面命令后,会在当前目录中生成一个名为RECOVERED_FILES目录,并且将恢复的文件放到这个目录中。

根据参考资料[7]的说明,所恢复的文件会被改名,因此需要根据文件的内容,使用grep命令找出您想要的文件。

四、/casper/filesystem.squashfs

这个是Ubuntu光盘特有的文件,将解压缩的光盘文件夹下面/casper/filesystem.squashfs文件拷贝出来到一个单独的文件夹

cd到刚拷贝出来filesystem.squashfs所在文件夹,然后打开终端输入

unsquashfs filesystem.squashfs

回车执行

上一步执行完会生成一个squash-boot文件夹,然后在里面寻找你所误删的系统文件即可,在哪个目录下删除的就在对应目录下找

参考

[1]linux下如何恢复rm命令删除的文件

[2]linux rm文件恢复总结
[3]Linux使用笔记: 实用ext3grep恢复目录及文件指南(ext3文件系统)

[4]ubuntu中用ext3grep恢复ext3文件系统中误删的文件

[5]问题:如何在 ext4 分区下恢复删除的文件

[6]Linux下数据误删除不再是恐怖的事情,ext3grep帮你恢复

[7]ext4分区中恢复被删除的文件

[8]恢复Linux ext4分区上误删除的文件

[9]【Linux】Linux系统 ext4格式 删除文件恢复:extundelete

https://www.cnblogs.com/jikexianfeng/p/7349275.html(以上内容部分转自此篇文章)

http://blog.csdn.net/weiguang1017/article/details/52239685(以上内容部分转自此篇文章)

https://www.jianshu.com/p/f5558050acb1(以上内容转自此篇文章)

原文地址:https://www.cnblogs.com/EasonJim/p/8274113.html

时间: 2024-08-09 16:23:21

Ubuntu 16.04使用rm -rf误删文件恢复方法收集的相关文章

手机误删文件恢复方法,简单恢复

手机误删文件恢复方法,简单恢复.我们很多的时候都会因为自己的手机一些细小的原因,而将我们的手机文件给误删了,其实有的时候,我们误删了也是无所谓的,我们是可以选择借助我们的手机备份去恢复的. 那么若是我们没有手机备份的情况下,我们是不是可以通过一些方法找回我们的手机误删文件呢?我们该怎么恢复我们的手机误删文件呢?若是你不会的话,你也可以选择试试下面的方法去找回你的手机误删文件. 1.首先可以在准备恢复的时候打开电脑,之后在电脑上浏览器上下载安装"互盾安卓恢复大师",之后用数据线将电脑和丢

树莓派Ubuntu 16.04 MATA系统 修改用户文件夹名后,提示configure it with blueman-service

自从修改了树莓派的Ubuntu 16.04 MATA 系统的 /home/ 下的用户文件夹名后,使用vncserver远程操作,看到桌面每次都提示 Configured directory for incoming files does not exist Please make sure that directory "/home/修改前用户文件名/Downloads" exists or configure it with blueman-service, 于是找了下问题所在,因为

rm -rf误删文件的恢复(extundelete工具的使用)

实战:extundelete恢复数据的过程 在数据被误删除后,第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区,如果是系统根分区的数据遭到误删除,就需要将系统进入单用户,并且将根分区以只读模式挂载.这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天.所以,以只读模式挂载磁盘可以尽量降低数据块

rm -rf 删除文件恢复

一.extundelete安装 1.安装依赖包 # yum install e2fsprogs* -y 2.下载并安装extundelete # wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 # tar -jxvf extundelete-0.2.4.tar.bz2 # cd extundelete-0.2.4 # ./configure --

使用垃圾桶机制防止rm -rf误删文件

偶然看到一个比较好用的工具Trash-Cli.一个类似垃圾桶的机制,可以恢复文件.试了一下,感觉还行 (1)下载安装: https://github.com/andreafrancia/trash-cli [[email protected] ~]# yum install git -y #安装git [[email protected] ~]#git clone https://github.com/andreafrancia/trash-cli.git #git克隆岛本地 [[email p

Ubuntu 16.04 - 64bit 解压 rar 报错 Parsing Filters not supported

Ubuntu 16.04 - 64bit  解压rar 文件报错: 错误如下图: 原因: 未安装解压命令 unrar 参考博客: Error - "Parsing Filters not supported" 解决方法: 终端输入: sudo apt-get install unrar 这样就能解压rar文件了

救火专用---别再说rm -rf 不可以恢复

工作中难免因为意外或其他情况,导致rm -rf误删文件,这个时候,救火专用 extundelete 就派上了用场: 下载地址:http://extundelete.sourceforge.net/ 注意: 1:此工具安装依赖e2fspogs 和 e2fslibs 两个包,在RH/Centos系列上包的名字为 e2fsprogs和 e2fsprogs-lib 2:此工具适用于ext3/ext4 文件系统 3:该工具基于硬盘的恢复倒是强大,但是基于目录和文件的恢复尚未测试成功过 原理: 虽然该工具用

Ubuntu中恢复rm命令误删文件(转)

计算机系统:Ubuntu 16.04 1 背景 在做项目的时候,本来想使用rm命令删除以14开头的文件,结果写成如下形式: [cpp] view plain copy rm 14 * 注意,本来14和*之间不应该有空格的,但是误写了一个空格,结果导致所有文件都被删除了!为了找回被误删的文件,根据网上的一些资料进行探索. 2 ext3grep [cpp] view plain copy sudo apt-get install ext3grep 参考资料[4]中对这个工具的使用有比较详细的说明过程

Ubuntu 16.04下使用gcc输出汇编的.0文件为可执行文件时出现:`_start'被多次定义

错误如下: `_start'被多次定义 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:(.text+0x0):第一次在此定义 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:在函数‘_start’中: (.text+0x20):对‘main’未定义的引用 collect2: error: ld returned 1 exit sta