当前位置: 首页 >> Linux >> 【恢复】linux误删文件后恢复 >> 正文

【恢复】linux误删文件后恢复

2年前 (2021-12-24)     作者:Jiaozn     分类:Linux     阅读次数:1359     评论(0)    

linux误删文件后恢复

1. 查看一下当前系统版本号,及文件系统格式


[root@localhost ~]# df -T

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

/dev/mapper/VolGroup-lv_root

ext4 51475068 22730068 26123560 47% /

tmpfs tmpfs 3966808 68 3966740 1% /dev/shm

/dev/sda2 ext4 487652 42534 419518 10% /boot

/dev/mapper/VolGroup-lv_home

ext4 901188872 20070036 835334364 3% /home


新建一个文件夹及文件my.txt,然后删除


[root@localhost local]# mkdir test

[root@localhost local]# cd test

[root@localhost test]# touch my.txt

[root@localhost test]# ll

总用量 0

-rw-r–r–. 1 root root 0 1月 4 15:22 my.txt

[root@localhost test]# rm -f my.txt

[root@localhost test]# ll

总用量 0


运用,系统自还工具debugfs来修复 打开,刚刚被删除文件所在的分区,用ls 加-d参数显示刚刚删除文件所在的目录


[root@localhost test]# debugfs

debugfs 1.41.12 (17-May-2010)

debugfs: open /dev/mapper/VolGroup-lv_root

debugfs: ls -d /usr/local/test/

2378807 (12) . 2098175 (4084) .. <2378808> (4072) my.txt


显示有<>尖括号的就是我们要找的文件Inode 号 执行logdump –i <2378808>,然后输入“quit”退出debugfs


debugfs: logdump -i <2378808>

Inode 2378808 is at group 290, block 9438337, offset 2944

Journal starts at block 16826, transaction 2237277

No magic number at block 30648: end of journal.

debugfs: quit


执行以下命令,进行恢复,bs与skip的值分别取自:block 9438337, offset 2944


dd if=/dev/mapper/VolGroup-lv_root of=/usr/local/test/my.txt bs=2944 count=1 skip=9438337


bs对应上面的offset后面的值,skip对应block后面的值


debugfs: quit

[root@localhost test]# dd if=/dev/mapper/VolGroup-lv_root of=/usr/local/test/my.txt bs=2944 count=1 skip=9438337

记录了1+0 的读入

记录了1+0 的写出

2944字节(2.9 kB)已复制,0.00989032 秒,298 kB/秒

[root@localhost test]# ls

my.txt


至此,刚删除的数据已恢复


附:若将上级文件夹删除,则可找到文件夹的block值与offset值,使用命令按文件名称恢复,如:


dd if=/dev/mapper/VolGroup-lv_root of=/usr/local/test/my0.txt bs=2944 count=1 skip=9438337

dd if=/dev/mapper/VolGroup-lv_root of=/usr/local/test/my1.txt bs=2944 count=1 skip=9438337

dd if=/dev/mapper/VolGroup-lv_root of=/usr/local/test/my2.txt bs=2944 count=1 skip=9438337


bs与skip对应的值改为文件夹的值

my0.txt、my1.txt、my2.txt分别是文件夹下的文件,如果有子文件夹也可递归深入


除非注明,发表在“Jiaozn的博客”的文章『【恢复】linux误删文件后恢复』版权归Jiaozn所有。 转载请注明出处为“本文转载于『Jiaozn的博客』原地址https://www.jiaozn.com/reed/745.html
0

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站

分享:

支付宝

微信