searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

linux删除文件恢复方法

2023-04-17 01:29:56
57
0

在linux使用命令行,有时会发生误删除文件的情况,发生这种情况的时候不要慌张, 还是有一定办法恢复删除文件的,首先将删除文件的所在磁盘卸载掉,防止inode被覆盖读写找不回来了, 然后使用工具进行恢复。这里推荐一个工具:extundelete

1. 工具安装

可以通过yum install extundelete安装,
也可以从网上下载安装:
 

2. 找回文件

 1.卸载删除文件所在磁盘

如下在work目录有一个文件test-del,里面有两行内容, 删除这个文件,查看到work目录挂着在/dev/vdb1磁盘,

退出work目录返回到上层目录, 使用umount /dev/vdb1卸载目录

[root@VM-16-14-centos work]# cat test-del 
12345667
abcdefg
[root@VM-16-14-centos work]# 
[root@VM-16-14-centos work]# rm test-del -f
[root@VM-16-14-centos work]# cd ../
[root@VM-16-14-centos data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        989M     0  989M   0% /dev
tmpfs          1000M   24K 1000M   1% /dev/shm
tmpfs          1000M  592K  999M   1% /run
tmpfs          1000M     0 1000M   0% /sys/fs/cgroup
/dev/vda1        79G  3.8G   72G   5% /
tmpfs           200M     0  200M   0% /run/user/0
/dev/vdb1        30G   19G  9.4G  67% /data/work
[root@VM-16-14-centos data]# umount  /dev/vdb1
[root@VM-16-14-centos data]#

 2. 查找删除文件的inode,进行恢复

通过extundelete  --inode 2  /dev/vdb1 查找删除文件的inode,可以看到test-del文件的inode 是4680,

使用extundelete --restore-inode  4680 /dev/vdb1进行恢复, 恢复的文件在当前的RECOVERED_FILES目录下,名字为file.inode, 

对于test-del就是file.4680, 查看内容和删除前的一致,文件恢复成功。

如果要恢复所以删除的文件可以使用

extundelete --restore-all /dev/vdb1 进行恢复; 

如果删除的文件在磁盘的目录下, 需要使用extundelete  --inode 目录inode进行逐级目录查找。

 

[root@VM-16-14-centos data]# extundelete  --inode 2  /dev/vdb1 |grep test-del
test-del                                          4680           Deleted
[root@VM-16-14-centos data]# extundelete --restore-inode  4680 /dev/vdb1
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 240 groups loaded.
Loading journal descriptors ... 29196 descriptors loaded.
[root@VM-16-14-centos data]# cat RECOVERED_FILES/file.4680
12345667
abcdefg
[root@VM-16-14-centos data]# 
0条评论
0 / 1000
何****森
15文章数
1粉丝数
何****森
15 文章 | 1 粉丝
何****森
15文章数
1粉丝数
何****森
15 文章 | 1 粉丝
原创

linux删除文件恢复方法

2023-04-17 01:29:56
57
0

在linux使用命令行,有时会发生误删除文件的情况,发生这种情况的时候不要慌张, 还是有一定办法恢复删除文件的,首先将删除文件的所在磁盘卸载掉,防止inode被覆盖读写找不回来了, 然后使用工具进行恢复。这里推荐一个工具:extundelete

1. 工具安装

可以通过yum install extundelete安装,
也可以从网上下载安装:
 

2. 找回文件

 1.卸载删除文件所在磁盘

如下在work目录有一个文件test-del,里面有两行内容, 删除这个文件,查看到work目录挂着在/dev/vdb1磁盘,

退出work目录返回到上层目录, 使用umount /dev/vdb1卸载目录

[root@VM-16-14-centos work]# cat test-del 
12345667
abcdefg
[root@VM-16-14-centos work]# 
[root@VM-16-14-centos work]# rm test-del -f
[root@VM-16-14-centos work]# cd ../
[root@VM-16-14-centos data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        989M     0  989M   0% /dev
tmpfs          1000M   24K 1000M   1% /dev/shm
tmpfs          1000M  592K  999M   1% /run
tmpfs          1000M     0 1000M   0% /sys/fs/cgroup
/dev/vda1        79G  3.8G   72G   5% /
tmpfs           200M     0  200M   0% /run/user/0
/dev/vdb1        30G   19G  9.4G  67% /data/work
[root@VM-16-14-centos data]# umount  /dev/vdb1
[root@VM-16-14-centos data]#

 2. 查找删除文件的inode,进行恢复

通过extundelete  --inode 2  /dev/vdb1 查找删除文件的inode,可以看到test-del文件的inode 是4680,

使用extundelete --restore-inode  4680 /dev/vdb1进行恢复, 恢复的文件在当前的RECOVERED_FILES目录下,名字为file.inode, 

对于test-del就是file.4680, 查看内容和删除前的一致,文件恢复成功。

如果要恢复所以删除的文件可以使用

extundelete --restore-all /dev/vdb1 进行恢复; 

如果删除的文件在磁盘的目录下, 需要使用extundelete  --inode 目录inode进行逐级目录查找。

 

[root@VM-16-14-centos data]# extundelete  --inode 2  /dev/vdb1 |grep test-del
test-del                                          4680           Deleted
[root@VM-16-14-centos data]# extundelete --restore-inode  4680 /dev/vdb1
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 240 groups loaded.
Loading journal descriptors ... 29196 descriptors loaded.
[root@VM-16-14-centos data]# cat RECOVERED_FILES/file.4680
12345667
abcdefg
[root@VM-16-14-centos data]# 
文章来自个人专栏
linux 文件
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0