Linux 恢复误删除的文件

目标内容

恢复Linux下误删除的文件

[b]1.恢复Linux下误删除的文件[/b]

[u]删除文件和文件夹[/u]
rm -rf 文件名或目录名
 -r 递归删除(可以删除目录和目录里面的东西)
 -f 强行删除
ext4文件系统上删除文件,可以恢复: extundelete
windows恢复误删除的文件: final data v2.0 汉化版 和 easyrecovery
Linux文件系统由三部分组成:文件名,inode(索引节点),block(块)
a.txt  inode  block
文件名 存放文件元数据信息 真正存放数据

[u]查看文件inode号:[/u]
# ls -i a.txt

查看inode中的文件属性; 通过stat命令查看inode中包含的内容
# stat a.txt

[u]块[/u]
block块:真正存储数据的地方
块大小是可以改变的
假设我们的块大小为 2M,而我们现在的数据为101M ,那么我们需要多少个块呢?
101/2 需要50还是51个块

UMOUNT
如何避免误删除的文件内容被覆盖???
卸载需要恢复文件的分区:或以只读的方式挂载

[u]下载extundelete[/u]
http://sourceforge.net/ 开源软件发布中心

[u]准备测试分区:[/u]
# fdisk /dev/sdb
输入
n:新建
p:主分区
1:分区号
w:保存

# ls /dev/sdb*
# partx -a /dev/sdb #获得新分区表
# mkfs.ext4 /dev/sdb1
挂载
# mkdir /sdb1
# mount /dev/sdb1 /sdb1
# df -Th |tail -1

复制一些测试文件,然后把这些文件再删除:
# cp /etc/passwd /sdb1
# cp /etc/hosts /sdb1
# echo aaa > a.txt
# mkdir -p /sdb1/a/b/c
# cp a.txt /sdb1/a/
# cp a.txt /sdb1/a/b/
# touch /sdb1/a/b/kong.txt

[u]安装tree命令:[/u]
# rpm -ivh tree-1.5.3-2.el6.x86_64.rpm
# tree /dev/sdb1 #采用树显示 /dev/sdb1中的文件目录

[u]删除文件并卸载分区:[/u]
# pwd
/sdb1
# ls
a hosts lost+found passwd
# rm -rf a passwd hosts
# ls
lost+found

如何避免误删除的文件内容被覆盖???
卸载需要恢复文件的分区(卸载当前目录必须退出当前才行):或以只读的方式挂载
# cd ..
# umount /dev/sbd1

从windows上传extundelete文件到linux,安装xmanager或者CRT
解压并安装extundelet
# ls
# tar jxf extundelete-0.2.4.tar.bz2
# cd extundelete-0.2.4
# rpm -ivh /media/RHEL_6.5\ x86_64\ Disc\
# ./configure
# make && make install
 make:编译,把源代码编译成可执行的二进制文件
 make install 安装

[u] 开始恢复[/u]
可以通过以下几种方法来进行恢复:
 通过inode节点恢复
 通过文件名恢复
 恢复某个目录,如目录a下的所有文件:
 恢复所有的文件

# mkdir /test #创建一个目录用来存放恢复的数据和目录
# cd /test/

[u]首先先查看一下删除文件的节点号[/u]
# extundelete /dev/sdb1 --inode 2

[u]方法1:通过inode节点恢复[/u]
# extundelete --restore-inode 12 /dev/sdb1 #12为上一步中inode
# ls #查看恢复的文件
RECOVERED_FILES

如何查看恢复后的文件和原来的文件一致呢?我们可以用diff命令
# diff file.12 /etc/passwd
# #没有任何输出,说明结果一样

[u]方法二,通过文件名恢复[/u]
# extundelete --restore-file passwd /dev/sdb1
# ls
RECOVERED_FILES
# cd RECOVERED_FILES/
# diff passwd /etc/passwd

[u]方法三:恢复某个目录,如目录a下的所有文件:[/u]
# extundelete --restore-directory a /dev/sdb1
# ls RECOVERED_FILES/
a file.12 passwd
# cd RECOVERED_FILES/
# ls
a file.12 passwd
# tree a

[u]方法四:恢复所有的文件[/u]
# extundelete --restore-all /dev/sdb1
# ls RECOVERED_FILES/
a file.12 hosts passwd passwd.v1


extundelete在恢复文件的时候能不能自动创建空文件和目录?
答:不能。

REHL7 xfs系统 可以的
使用 xfsdump 时,请注意底下的限制:
xfsdump 不支援没有挂载的文件系统备份!所以只能备份已挂载的!
xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
xfsdump 只能备份 XFS 文件系统啊!
xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值