linux 删除文件myfile1,Linux 回复删除文件

Linux下的rm命令太可怕了,一不小心 rm -rf / 那就悲剧了,请慎用rm -rf。

如果一不小心删除重要文件,后续不对该路径文件操作,可以通过相关命令找回被删文件。

原理主要是删除的文件并没有实际上从硬盘上抹去,只是inode索引删除了相关的信息(单链表节点删除实现),因此只要找到刚删除文件的block上,就可以恢复已经删除的文件。

一. 查看分区

df -T

Filesystem Type 1K-blocks Used Available Use% Mounted on

/dev/sda1 ext4 41284928 38206612 981164 98% /

tmpfs tmpfs 1961248 10240 1951008 1% /dev/shm

/dev/sda5 ext4 119724260 6428840 107213784 6% /data

/dev/sda2 ext4 41284928 799900 38387876 3% /usr/local

二. ext3

sudo debugfs

open /dev/sda1 #打开分区

ls -d /home/test/src#显示该目标删除文件inode

819307 (12) . 819306 (4084) ..

<790528> (4072) bosstest.cpp

<792294> (4052) btest.cpp

<792214> (4032) qwd_kettas.pb.cc

logdump -i <790528>#查看该文件日志内容

...

[blocks] 12345 #12345为存放bosstest.cpp数据块地址

sudo dd if=/dev/sda1 of=/tmp/my1.cpp count=1 skip=12345 #读取12345处数据至my1.cpp中

三. ext4

debugfs只能恢复ext3系统文件,extundelete支持ext3/ext4文件系统的恢复。

sudo yum install -y e2fsprogs#安装依赖库

sudo extundelete --inode 819203 /dev/sda1#查找指定目录下删除文件

File name | Inode number | Deleted status

. 819307

.. 819306

bosstest.cpp 790528 Deleted

btest.cpp 792294 Deleted

qwd_kettas.pb.cc 792214 Deleted

sudo extundelete --restore-inode 790528 /dev/sda1#恢复指定inode文件,恢复文件在./RECOVERED_FILES

sudo extundelete /dev/sda1 --restore-all#恢复/dev/sda1分区下所有文件

大多数情况下,会出现以下提示:Unable to restore inode 792214 (file.792214): Space has been reallocated.  由于文件系统被覆盖,已经无法恢复文件。

参考链接:

http://extundelete.sourceforge.net/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值