ubuntu20 extundelete 不能工作

本文记录了一次在Ubuntu系统中不慎在根目录执行rm*命令导致文件丢失的经历,并详细介绍了如何使用extundelete工具尝试恢复ext3及ext4文件系统的删除文件。

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

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

头昏脑胀的我,在根目录下执行了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<extu

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值