Ubuntu如何简单粗暴的恢复被删除的文件
由于自己手残,删除了自己写了好久的一个项目main.c文件。当时我那个难受啊,但是后来自己百度,查看博客,终于找到了一个好的办法恢复因自己手残而删除的重要文件。
ubuntu恢复已删除的文件软件
extundelete
安装方法
sudo apt-get install extundelete
使用方法
我们可以使用extundelete --help ,来查看该软件的使用参数及其使用方法。
Usage: extundelete [options] [--] device-file
Options:--version, -[vV] Print version and exit successfully.--help, Print this help and exit successfully.--superblock Print contents of superblock in addition to the rest.If no action is specified then this option is implied.--journal Show content of journal.--after dtime Only process entries deleted on or after 'dtime'.--before dtime Only process entries deleted before 'dtime'.
Actions:--inode ino Show info on inode 'ino'.--block blk Show info on block 'blk'.--restore-inode ino[,ino,...]Restore the file(s) with known inode number 'ino'.The restored files are created in ./RESTORED_FILESwith their inode number as extension (ie, file.12345).--restore-file 'path' Will restore file 'path'. 'path' is relative to rootof the partition and does not start with a '/' (itmust be one of the paths returned by --dump-names).The restored file is created in the currentdirectory as 'RECOVERED_FILES/path'.--restore-files 'path' Will restore files which are listed in the file 'path'.Each filename should be in the same format as an optionto --restore-file, and there should be one per line.--output-dir 'path' Restore files in the output dir 'path'.By default the restored files are created under current directory 'RECOVERED_FILES'.--restore-all Attempts to restore everything.-j journal Reads an external journal from the named file.-b blocknumber Uses the backup superblock at blocknumber when openingthe file system.-B blocksize Uses blocksize as the block size when opening the filesystem. The number should be the number of bytes.
我们知道当我们不小心删除了有用的文件,我们一般是比较容易知道删除的时间的,因此,使用时间这个option可以很快并且精确的恢复出我们想要的文件。那这个dtime怎么生成。请参考如下命令:
date //查看一当前时间
date -d "2020-5-4 17:55:33" +%s //生成dtime的索引
恢复命令
首先需要生成dtime 的索引
date //查看一当前时间 date -d "2020-5-4 17:55:33" +%s //生成dtime的索引
sudo extundelete /dev/sda1 --after 1588586319--restore-all
注:/dev/sda1中sda的选择可能会有不同,自己可以一个一个试,我的sda1是可以的。
恢复完之后,系统会在你所在的当前目录下生成一个RECOVERED_FILES 的文件,那个文件里面会存放你所删除的文件及其他们所在的路径。
然后我们只需要将我们所需要的文件或文件夹拷贝出来就ok了。
extundelete原理
由于 在linux系统中,超级块描述了分区的信息,一个分区被分为两个部分,索引节点表和数据块区,这个在格式化的时候就定下来了。文件(目录也是文件的一种,只不过它的内容是描述目录下的文件的)由索引节点描述,索引节点描述了文件的修改时间,文件的名称,文件的数据块地址等等。并且,linux对于文件删除操作是个懒动作,删除文件时系统只是将文件对应的索引节点及其拥有的数据块置为free(将nlink=0),而并没有做其他清空的,只有当这个索引节点或者数据块被真正用到的时候才会修改里面的数据。这就为我们文件修复提供了可趁之机。由于系统中的索引节点是固定大小的,因此可以很轻松的遍历扫描系统中所有的索引节点,找出free的索引节点并检查其数据块是否已经被用,如果没有则可修复并修复。同时,由于索引节点里的时间等信息也是保留的,因此就可以根据时间来恢复特定的被删除的文件。
文件误删除后的注意事项
从上面的分析可知,误删文件后,尽量不要做大的数据操作,以避免被删除的文件的数据块被重新使用,导致数据完全丢失。
Ubuntu如何简单粗暴的恢复被删除的文件相关推荐
- 2个简单易用的方法解决:Win10如何恢复回收站删除的文件
我们知道,Windows10的回收站主要是用于存放临时删除的文件(不包括大文件),以便电脑用户可以很好地管理各个磁盘的资料.同时,回收站也给了一个缓冲区,以免使用者在删除电脑资料之后,还需要复原回来. ...
- photorec_如何在Linux / Ubuntu中使用PhotoRec恢复已删除的文件
photorec Accidentally deleted files or photos? In this tutorial, we'll learn how to recover deleted ...
- 如何恢复已删除的文件?5分钟搞定的简单方法。
本文介绍如何使用文件恢复程序恢复已删除的文件.它包括与恢复已删除文件相关的提示. 如何恢复已删除的文件 从硬盘驱动器恢复已删除的文件并不是一件疯狂的事情,但一旦您意识到文件已被删除,就尝试恢复会有所帮 ...
- linux下删除的文件怎么恢复出厂设置,如何在Linux中恢复已删除的文件(机器翻译)...
如果您在Linux中不小心删除了一个文件,不要担心,只要该区域的磁盘尚未被覆盖,您可能仍然可以恢复它.这篇文章将告诉你如何在Linux中轻松恢复被删除的文件. Foremost能够搜索磁盘或原始图像文 ...
- 在Git存储库中查找并恢复已删除的文件
假设我在Git存储库中. 我删除文件并提交更改. 我继续工作并做出更多承诺. 然后,我发现需要还原该文件. 我知道我可以使用git checkout HEAD^ foo.bar来签出文件,但是我真的不 ...
- 如何在前端删除项目中的文件_如何在macOS上恢复已删除的文件
有时候不小心删除了我们不打算删除的MacBook上的文件.在MacBook上恢复永久删除的文件非常困难,但这并非不可能.在本文中,我们将指导您如何恢复MacBook上最近恢复的文件或永久删除的文件.从 ...
- 如何恢复手机删除数据文件
如何恢复手机删除数据文件 随着现在手机功能的不断增强,人们对电脑的依赖性有所下降,不知道有多少朋友跟我一样.下班回家,都不会打开电脑,要想娱乐一下,一个手机和一个舒服的沙发就够了.再开电脑根本就是浪费 ...
- 数据恢复软件如何恢复电脑删除的文件
数据恢复软件如何恢复电脑删除的文件?当我们长时间使用电脑后,电脑会产生很多缓存文件,运行速度也会受到影响,清理电脑垃圾文件是大家经常操作的事情. 可是,一些用户删除电脑文件的时候不小心把重要的文件和垃 ...
- 怎么恢复电脑删除的文件,误删除数据恢复
怎么恢复电脑删除的文件?删除,其实是很简单的一种操作.当我们需要将某个文件删除时,系统只是在文件分配表内在该文件前面写一个删除标志,表示该文件已被删除,他所占用的空间已被"释放", ...
- 不小心把java文件删除了_如何使用Java恢复已删除的文件?
小编典典 要恢复已删除的文件,需要了解底层文件系统的实现方式,因此您需要做一些阅读工作,然后才能到达任何地方. 从理论上讲,是的,您绝对可以使用纯Java来做到这一点.您只需要了解如何绕过文件系统从原 ...
最新文章
- clientcontainerThrift Types
- android中getLocationInWindow 和 getLocationOnScreen的区别
- android天气查询(二)之网络json数据的获取
- 前端学习(904):同步任务和异步任务执行区别
- 学习笔记(2):uni-app实战社区交友类app开发-引入css动画库
- Python webdriver 读取本地csv文件中数据 提示:IOError: [Errno 2] No such file or directory
- ora创建物化视图 11g版本
- 【机器学习系列】变分推断第一讲:Variational Inference背景和用途
- DRG 与 ICD10 编码相关论文阅读分享
- 矩阵的符号用计算机怎么打,在Word文档中怎么打出矩阵的符号?
- yourshelf是什么意思中文_英语shelf的中文是什么意思
- [白话解析] 通俗解析集成学习之GBDT
- MSDB数据库置疑状态的解决方法
- 最短路径(加权有向图)
- mPEG-Phosphate,甲氧基聚乙二醇磷酸盐,mPEG-PHOS
- 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇9、动态影像服务发布
- 关于datanode进程无法启动的另一种解决方法 java.io.IOException: Incompatible clusterIDs in /export/servers/hadoop-3.1.
- 无法加载文件,因为在此系统上禁止运行脚本。
- VS提示:已引发异常
- Docker Harbor