Linux下删除文件恢复

本文介绍在Linux环境下如何恢复误删的文件。通过卸载磁盘分区并使用extundelete工具扫描丢失的文件元数据,可以找回被误删的文件及目录。文章详细展示了从创建测试环境、安装恢复工具到实际恢复文件的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的inode节点中的扇区指针清除,同时释放这些数据对应的数据块,当释放的数据块被系统重新分配时,那些被删除的数据就会被覆盖,所以误删除数据后,应马上卸载文件所在的分区。
  每个文件有inode和block组成,inode是文件系统组成的最基本单元,它保存着文件的基本属性(大小、权限、属主组等)和存放的位置信息。而 block用来存储数据。类似key-value,inode就是key,block对应value,通过key查找key对应的value。类似 python的字典。

查看根目录的inode值
# ls -id /
2 /

一般”根”目录的inode值为2,一个分区挂载到一个目录下时,这个”根”目录的inode值为2

# mount /dev/sdb2 /mnt
# ls -id /mnt
2 /mnt
安装extundelete
下载extundelete
# wget http://ncu.dl.sourceforge.net/project/extundelete/extundelete/0.2.0/extundelete-0.2.0.tar.bz2
所需依赖包
# yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel
编译安装extundelte
# tar jxvf extundelete-0.2.0.tar.bz2
# cd extundelte-0.2.0
# ./configure
# make; make install
用extundelete恢复文件
模拟数据误删除环境
# mkdir /data
# mkfs.ext4 /dev/sdb2
# mount /dev/sdb2 /data
# cp /etc/hosts /data/
# mkdir /data/test
# echo "extundelete test" > /data/test/geek.txt
# md5sum hosts                           #获取文件校验码
54fb6627dbaa37721048e4549db3224d  hosts
# md5sum test/geek.txt
eb42e4b3f953ce00e78e11bf50652a80  test/geek.txt 
# rm -fr /data/*
卸载磁盘分区
# umount /dev/sdb2
查询恢复数据信息
# extundelete /dev/sdb2 --inode 2
.....

File name                                       | Inode number | 
Deleted status
Directory block 8657:
.                                                 2
..                                                2
lost+found                                        11             Deleted
hosts                                             12             Deleted
test                                              130817         Deleted

上面标记为Deleted是已经删除的文件或目录

开始恢复单个文件

默认恢复到当前目录下的RECOVERED_FILES目录中去

# extundelete /dev/sdb2 --restore-file hosts

恢复一个目录

# extundelete /dev/sdb2 --restore-directory test/

全部恢复

# extundelete /dev/sdb2 --restore-all
检测是否恢复成功
#md5sum RECOVERED_FILES/hosts                           #获取文件校验码 
54fb6627dbaa37721048e4549db3224d  RECOVERED_FILES/hosts
#md5sum RECOVERED_FILES/test/geek.txt 
eb42e4b3f953ce00e78e11bf50652a80  RECOVERED_FILES/test/geek.txt

校验码与之前的完全一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值