如果你也遇到了相同的问题,该贴不能帮你解决问题, 书写该贴的目的是记录一下我走得弯路,

当我走了很长的路,竟然发现此路不通,过程也让人很有收获,待我有空再找到解决问题的方法。

头昏脑胀的我,在根目录下执行了rm* 命令。

这是一个危险的操作,地点不对。
我在根目录频繁得执行着自己的操作
ls, rm report*
终于敲得着急, rm *了, 然后提示我:

无法删除 ...  是一个目录
无法删除 ...  是一个目录
除了目录没有删除, 其它文件全删除了!

定睛一看,原来是敲错了命令,方知不该在根目录下操作,在这里删除的文件是很难恢复的。
你需要找一个安全的可mount, unmount的磁盘, 当你误删时,才可以恢复回来!

现在来看看ubuntu 下的 undelete 操作。
分区类型 83 linux (fdisk -l)
df -T 查看为ext4型
lsblk  //常用命令

需要使用extundelete 工具
这个适用于ext3和ext4两种文件类型
这个工具的源代码位于:https://github.com/cherojeong/extundelete
用 apt install extundelete轻易解决。

extundelete 的使用:
1. 卸载磁盘
sudo umount <磁盘>
<磁盘>可以写/dev/xxx, 或者你的mount点
常见的问题:
umount: /xxx: target is busy.

lsof /xxx 可以看到是谁占用了磁盘,然后把他们关掉即可。

2. 使用
extundelete [options] device-file
device-file 就是磁盘, 选项就是你想要的操作。
例如:
sudo extundelete /dev/sda2

这个工具的使用我忙活了半天,最终不能在ubuntu20上恢复ext4 文件系统, 但ext3 可以,留此记录,以后有空再研究。
曾怀疑难道是依赖不对? 进行了源码安装。遇到了配置错误和编译错误,均已解决。 其中要下载补丁才能通过就是shit.找不到答案会无从下手。

配置错误:
$ ./configure
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library
解决方法:
$ apt-cache search ext2fs        //查看后, 装下边这个库
$ sudo apt install libext2fs-dev

编译错误
$ make
insertionops.cc: In function ‘std::ostream& operator<<(std::ostream&, const ext2_inode&)’:
insertionops.cc:36:36: error: ‘const struct ext2_inode’ has no member named ‘i_dir_acl’; did you mean ‘i_file_acl’?
   36 |   os << "Directory ACL: " << inode.i_dir_acl << std::endl;
      |                                    ^~~~~~~~~

解决方法:
这下shit了, 代码编译不过去, 查网,发现有人给出办法, 需要下载补丁!

wget https://sourceforge.net/p/extundelete/tickets/5/attachment/extundelete-0.2.4-e2fsprogs.patch.txt
patch -p1<extundelete-0.2.4-e2fsprogs.patch.txt
./configure
sudo make && make install

验证:
$ extundelete -v
extundelete version 0.2.4
libext2fs version 1.45.5
Processor is little endian.

工具使用:
由于根目录的ino 总是2, 用ls -id . 查看,所以
$ extundelete /dev/sda2 --inode 2
以/dev/sda2 为例 列出根文件信息。
ext3 可以列出文件信息,但只能列出存在的文件信息,列不出删除的文件信息
ext4 什么都列不出, 估计ubuntu 下又要进行什么补丁操作了,网上的文章都是人云亦云不得要领,您要是知道方法,请不吝赐教。

列出根目录
$ extundelete /dev/sda2 --inode 2
File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
lost+found                                        11
1.txt                                             73729
2.txt                                             73730
3.txt                                             73731
libmalloc_preload.so                              73732
log.txt                                           73733
report-2022-07-02_08:53:26.txt                    73734
sort.sh                                           73735
bin                                               9650177

列出bin目录
$ extundelete /dev/sda2 --inode 9650177
File name                                       | Inode number | Deleted status
.                                                 9650177
..                                                2
memwatch                                          9650178
myget.sh                                          9650180

后面恢复文件恢复目录就无从谈起了,
难道是ubuntu20 加强了删除动作真把文件删除了, 或者是journal 出了问题?
解决这个问题,或者有人给出答案,或者阅读代码, 留待以后有空再研究了。
如果你强行执行恢复操作也不会成功。
例如:
$ extundelete /dev/sda2 --restore-file 4.txt
Failed to restore file 4.txt
Could not find correct inode number past inode 2.
Try altering the filename to one of the entries listed below.
File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
lost+found                                        11
1.txt                                             73729
2.txt                                             73730
3.txt                                             73731
libmalloc_preload.so                              73732
log.txt                                           73733
report-2022-07-02_08:53:26.txt                    73734
sort.sh                                           73735
bin                                               9650177

防止 rm * 的操作, 只能找一个安全的目录, 允许rm *, 不要把重要文件放到这里就可以了。

ubuntu20 extundelete 不能工作相关推荐

  1. 【Ubuntu】Ubuntu常见优化设置

    文章目录 前言 配置阿里云镜像 设置root用户密码 用户组相关 安装jdk 安装git 解压文件 前言 本笔记基于 Ubuntu20.04 因工作需要,需要长期使用Ubuntu系统,在这里记录下Ub ...

  2. 5 个流行的用于远程工作和在线会议的开源视频会议工具

    5 个流行的用于远程工作和在线会议的开源视频会议工具 作者: <span class="textcut"><a href="https://itsfos ...

  3. 数据恢复软件extundelete介绍

    linux下文件系统一般由文件名.Inode.Block三部分组成.当一个用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它的inode,看该用户是否具有访问这个文件的权限.如果有, ...

  4. [How TO]-在ubuntu20.10上搭建SVN Server

    背景: 做为一名嵌入式工程师,工作了八九年,积攒了大量的学习资料,家里备有3个电脑.好几块硬盘,另外还有百度云盘.阿里云盘等.各种零碎的资料.不知如何分类,导致出现了有的资料只出现在某一个硬盘中,或者 ...

  5. linux下使用extundelete恢复ext3/ext4分区数据

    Windows平台恢复误删数据so easy,但是linux就没那么简单了,因为没有"回收站".BUT,如果有一天真的不小心误删了文件,那如何是好?那就借助恢复神器extundel ...

  6. ubuntu20输入法qiehuan_Ubuntu20.04安装搜狗输入法

    导读 这篇文章主要介绍了Ubuntu20.04安装搜狗输入法的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下. 1.安装Fcitx输入框架 ...

  7. extundelete应用实战

    一.如何使用"rm -rf"命令 在Linux系统下,通过命令"rm -rf"可以将任何数据直接从硬盘删除,并且没有任何提示,同时Linux下也没有与Windo ...

  8. extundelete安装_Linux下高效数据恢复软件extundelete应用实战

    作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候改如何快速.有效地恢复数据呢?本文我们就来介绍一下Linux系统下常用的几 ...

  9. QT Creator5.14软件的安装与使用(Win7与Ubuntu20.04)

    本文介绍QT软件的下载与安装. 一.下载 QT软件可以从QT官网下载安装,下载网址为:http://download.qt.io/archive/qt/. 当前最新版本是5.14,下载地址为:http ...

最新文章

  1. 幼儿园带括号算式口诀_初中数学必会的26个知识点口诀
  2. SAP MM 公司间退货STO流程后勤部分简述
  3. 数据结构之二叉树(遍历、建立、深度)
  4. 直播 | CIKM 2021论文解读:基于广群的知识图谱表示学习统一模型框架
  5. 简述控制反转ioc_讲一下你理解的 DI 、IoC、DIP ?
  6. python连接mysql_Python连接MYSQL数据库
  7. 51Talk联合创始人兼COO张礼明离职
  8. 安装labelImg
  9. DB2数据库常用命令
  10. [Qualcomm][MSM8937] MSM89XX平台上加载modem固件失败
  11. 【天津SEO】长尾关键词挖掘的八种技巧
  12. Java MD5 加密工具类 生成32位加密码值
  13. ds18b20温度报警C语言程序,单片机中使用DS18B20温度传感器C语言程序(参考4)
  14. 深度学习细颗粒图像分析综述
  15. 给Ubuntu文件夹解锁
  16. pandas学习笔记之DateFrame
  17. 【2018/10/11】T3 - 0/1分数规划 - 葫芦
  18. P2495 [SDOI2011]消耗战-虚树+树形dp
  19. 制作网页头部固定悬浮的导航栏
  20. 实战Java高并发程序设计(第二版)-chp5并行模式与算法

热门文章

  1. 关闭ssh访问gitolite服务器时已认证用户可以列出所有仓库的方法
  2. ryu实例---数据包解析
  3. Latex Tips: argmin/max, 连加和、连乘积等的上、下标输入方法
  4. 小红书霸屏引流变现课
  5. Unity Android 路径下的斜杆和反斜杠
  6. html 左距离属性,HTML DOM 有关距离的所有属性 参数
  7. 软考高级论文评分标准
  8. VC操作excel(读写操作)
  9. 用Java输出百钱百鸡的方法及方法数量
  10. 军哥高质量微信群开放了