当前位置:首页 » 操作系统 » linux恢复rm删除的文件

linux恢复rm删除的文件

发布时间: 2022-09-24 10:27:30

‘壹’ linux系统ext4文件系统rm删除的文件怎么恢复

系统:Oracle Linux OEL6.5 x64
分区格式:ext4
起因:今天手贱在自己服务器上误操作将/home/ORACLE目录给删除了,结果导致服务全面崩溃
遂谷歌了一把发现了神器 extundelete(如果是ext3文件系统请使用ext3grep,本人未做测试),这玩意可比瘟得死下面的各种恢复工具强大多了(至少本人是这么认为的)。

关于extundelete这个工具的说明使用,官方网站extundelete.sourceforge.net是这样说的,extundelete是一种实用的工具,可以从ext3或ext4分区恢复被删除的文件,不能保证恢复所有的文件,所以最好能做好备份.它的最新版本是0.2.4
为什么要用extundelete?
官方这样描述,如果您已经在ext4的文件系统中删除了文件,选extundelete是一个不错的选择,它能够恢复已删除文件的文件名及内容.如果是在ext3的文件系统中删除了文件,extundelete和ext3grep比较仍然有一些优点,extundelete分析日志文件后,能够立即恢复一个文件,ext3grep分析整个硬盘才开始恢复硬盘中的文件,ext3grep方法是是有效的从一个小分区恢复多个文件,所以相比而言,如果需要从一个大的分区中恢复文件,extundelete要快些.
注意:在安装extundelete之前,要确定已经安装了e2fsprogs和e2fslibs(确定e2fsprogs的版本在1.41或者更高版本,可通过运行命令mpe2fs来查看版本).
一、下载及安装软件
extundelete 主页:http://extundelete.sourceforge.net/
下载地址:http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 (需 跨墙)
ubuntu用户可直接安装: apt-get install extundelete

# wget http://nchc.dl.sourceforge.NET/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
# tar -jxvf extundelete-0.2.4.tar.bz2
# cd extundelete-0.2.4
# ./configure --prefix=/usr/local/extundelete
# make && make install

extundelete --help 查看有哪些选项 --restore-file 指定恢复文件, --restore-all 恢复全部等等,恢复完成后,恢复的文件就在当前目录下生成的RECOVERED_FILES的目录里.

实测:rm -rf /home/oracle
[plain] view plain
[root@rac1 extundelete-0.2.4]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 50G 19G 29G 40% /
tmpfs tmpfs 998M 80K 998M 1% /dev/shm
/dev/sda1 ext4 477M 55M 397M 13% /boot
/dev/mapper/VolGroup-lv_home ext4 28G 44M 26G 1% /home
二、数据恢复
1.卸载需要恢复文件的分区
[root@rac1 extundelete-0.2.4]# fuser -k ?home <-- 结束使用某分区的进程树
[root@rac1 extundelete-0.2.4]# umount /home <-- 卸载分区

2.使用extundelete查看分区上存在的文件

[plain] view plain
[root@rac1 extundelete-0.2.4]# extundelete --inode 2 /dev/mapper/VolGroup-lv_home <div class="crayon-pre" style="box-sizing: border-box; padding: 0px; margin: 0px; white-space: pre; overflow: visible; font-family: monospace !important; background-image: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 15px !important; line-height: 20px !important;"><div class="crayon-line" id="crayon-53febd9362e4c249413479-1" style="box-sizing: border-box; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; background-position: 0px 50%;"><span class="crayon-c" style="box-sizing: border-box; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; color: rgb(255, 140, 0) !important;"> # --inode 为查找某i节点中的内容,使用2则说明为搜索,如果需要进入目录搜索,只须要指定目录I节点即可</span></div></div>NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 221 groups loaded.
Group: 0
Contents of inode 2:
0000 | ed 41 00 00 00 10 00 00 74 85 fe 53 72 85 fe 53 | .A......t..Sr..S
0010 | 72 85 fe 53 00 00 00 00 00 00 03 00 08 00 00 00 | r..S............
0020 | 00 00 08 00 02 00 00 00 0a f3 01 00 04 00 00 00 | ................
0030 | 00 00 00 00 00 00 00 00 01 00 00 00 11 24 00 00 | .............$..
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0080 | 1c 00 00 00 cc 8f 32 d4 cc 8f 32 d4 1c 8c d6 9d | ......2...2.....
0090 | d1 21 ea 53 00 00 00 00 00 00 00 00 00 00 02 ea | .!.S............
00a0 | 07 06 3c 00 00 00 00 00 21 00 00 00 00 00 00 00 | ..<.....!.......
00b0 | 73 65 6c 69 6e 75 78 00 00 00 00 00 00 00 00 00 | selinux.........
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00d0 | 00 00 00 00 00 00 00 00 00 00 00 00 73 79 73 74 | ............syst
00e0 | 65 6d 5f 75 3a 6f 62 6a 65 63 74 5f 72 3a 68 6f | em_u:object_r:ho
00f0 | 6d 65 5f 72 6f 6f 74 5f 74 3a 73 30 00 00 00 00 | me_root_t:s0....

Inode is Allocated
File mode: 16877
Low 16 bits of Owner Uid: 0
Size in bytes: 4096
Access time: 1409189236
Creation time: 1409189234
Modification time: 1409189234
Deletion Time: 0
Low 16 bits of Group Id: 0
Links count: 3
Blocks count: 8
File flags: 524288
File version (for NFS): 0
File ACL: 0
Directory ACL: 0
Fragment address: 0
Direct blocks: 127754, 4, 0, 0, 1, 9233, 0, 0, 0, 0, 0, 0
Indirect block: 0
Double indirect block: 0
Triple indirect block: 0

File name | Inode number | Deleted status
. 2
.. 2
lost+found 11
oracle 523265 Deleted

被删除的oracle文件夹已经被找到,状态为已经删除,接下来就将它们恢复出来。

[root@rac1
Desktop]# extundelete --restore-all /dev/mapper/VolGroup-lv_home # --restore-all是全部恢复 ,默认全将恢复出来的文件放在当前路径 RECOVERED_FILES/ 目录下,文件名为 file.I节点号
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 221 groups loaded.
Loading journal descriptors ... 3108 descriptors loaded.
Searching for recoverable inodes in directory / ...
3576 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.

[root@rac1 Desktop]# ls RECOVERED_FILES/
lost+found oracle
[root@rac1 Desktop]# mount /home
[root@rac1 Desktop]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 50G 21G 26G 45% /
tmpfs tmpfs 998M 80K 998M 1% /dev/shm
/dev/sda1 ext4 477M 55M 397M 13% /boot
/dev/mapper/VolGroup-lv_home ext4 28G 44M 26G 1% /home
[root@rac1 Desktop]# mv RECOVERED_FILES/oracle /home

[root@rac1
Desktop]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 50G 19G 29G 40% /
tmpfs tmpfs 998M 80K 998M 1% /dev/shm
/dev/sda1 ext4 477M 55M 397M 13% /boot
/dev/mapper/VolGroup-lv_home ext4 28G 2.6G 24G 10% /home

至此2.6G的数据恢复完毕。
恢复之后,权限不一致的,别忘了授权。
[root@rac1
~]# chmod -R 777 /home/oracle

验证数据是否可用:
[root@rac1
home]# su oracle
[oracle@rac1 home]$ db11g

SQL*Plus:
Release 11.2.0.3.0 Proction on Thu Aug 28 14:09:49 2014

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to an idle instance.

SQL> 搞定!

‘贰’ linux的rm命令详解

Linux rm,英文全拼:remove,该命令用于删除一个文件或者目录。
Linux
rm命令是一个非常强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用rm命令删除文件或目录时,系统不会产生任何提示信息。
语法
rm [options] name...
参数
-i 删除前逐一询问确认
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r 将目录及以下之档案亦逐一删除
注意:rm命令是一个具有破坏性的命令,因为rm命令会永久性删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用rm命令将其删除,将无法恢复。因此,尤其在使用rm命令删除目录时,要非常非常谨慎。

‘叁’ linux系统rm -rf/*怎么恢复可以重做系统么

1、执行删除命令前,系统运行良好,且操作正常,如下图所示:



4、强制关机后,重新启动系统,如下图所示已经报异常了,无法正常进入系统,此时只有进行重装系统了。



总结:

1.有点遗憾删除结束后没法再使用df、ls这些命令,所以没办法看出还剩哪些文件。不过从上面的结果来看,连基础命令都执行不了,所以用户数据(如安装的软件、部署的网站、数据库等)肯定也都全删没了。


2.因此平时操作的过程中要养成良好的习惯,尽量不要用rm命令,可以用mv命令来代替。比如要删掉a.txt,可以执行mv a.txt /mytemp ,然后再写个脚本定时清除/mytemp目录下的文件,这样会安全很多。

‘肆’ 在linux系统下用rm命令误删了一个文件,怎样才能恢复这个文件

1、先要进行重启ubuntu,随即长按shirft进入grub菜单,这时候注意的是再进行选择recovery mode,按"e"键进入编辑页面,如下图所示。


‘伍’ linux rm删除文件后能找回吗

可以使用debugfs
1 执行sudo debugfs -w /dev/sda1 命令,进入debugfs模式,其中sda1是你所在的分区,因人而异。
2 执行lsdel,列出最近所有删除的文件,结果是按时间顺序从老到新排列
结果格式类似:
Inode Owner Mode Size Blocks Time deleted
8934222 14456 100664 592 1/ 1 Wed Aug 26 11:49:48 2015
如果结果太多,可以直接执行如下命令: echo lsdel | debugfs /dev/sda1 > lsdel.out
如此可将结果输出成本地文件。
3 从列出的删除结果中,或从保存的结果文件中找到被删除的文件,可根据删除时间、文件所有者确认。找到被删除文件后,第一个数字为inode号。
4 在debugfs模式下,执行 mp <123456> /tmp/123456.bak,可将被删除的文件恢复,其中123456为被删除文件的inode号。
5 确认恢复的文件是否为期望的文件。

‘陆’ linux rm删除的文件怎么恢复

linux的文件被rm删除是可以通过linux自带的文件恢复工具debugfs来进行恢复,但是只能恢复ext2文件系统的文件,不能恢复ext3文件系统的文件。

1,首先查看需要恢复的文件所在的文件系统
命令行模式下输入指令mount
[xuwangcheng14@root]# mount
/dev/xvda1 on / type ext2 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

由上知,/dev/xvda1挂载在/下,即根目录,且文件系统是ext2

2,将要找回的文件所在的分区重新挂载成只读
(因为这样比较安全,可以防止因新的文件写入该分区而导致无法找回文件)

[xuwangcheng14@root]# mount -n -o remount,ro /dev/xvda1

如果不能重新挂载,那么一定有用户正在使用该分区中的文件,我们可以使用指令:fuser -m -v /dev/xvda1来查看当前哪个用户正在使用该分区中的文件,然后使用fuser -k -m -v /dev/xvda1来杀死用户使用该分区的任何进程。

3,使用debugfs工具恢复文件

[xuwangcheng14@root]# debugfs /dev/xvda1
debugfs 1.42 (29-Nov-2011)
debugfs: lsdel

进入debugfs模式后输入lsdel后可以看到被删除的文件信息
stat显示某个节点所对应的文件信息,
恢复文件使用mp 文件路径。

如果被删除的文件很多,那么通过lsdel可看出文件的时间,然后自己判断进行恢复。

‘柒’ linux 系统下面,rm -rf 删除的文件能找回来吗

使用rm -rf删除的文件不能找回的;

对rm命令的理解:

1.rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

2.使用rm命令删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。

3.rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。

(7)linux恢复rm删除的文件扩展阅读:

rm命令参数如下

1.-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
2.-f:强制删除文件或目录;
3.-i:删除已有文件或目录之前先询问用户;
4.-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
5.-v:显示指令的详细执行过程。



‘捌’ linux rm删除的数据能恢复吗

一般情况是不可以回复的,建议以后使用rm的时候最好不要代-f选项,在删除前还可以检查下。

热点内容
qq系统头像文件夹 发布:2024-10-18 14:14:55 浏览:234
安卓手机请输入密码在哪里 发布:2024-10-18 14:13:28 浏览:645
设计编译程序注意的问题 发布:2024-10-18 14:08:43 浏览:254
传智播客android视频 发布:2024-10-18 14:04:42 浏览:904
手机版安卓吃鸡哪个好 发布:2024-10-18 14:01:40 浏览:491
编程自学入门教程 发布:2024-10-18 13:50:58 浏览:141
伊迪阿明访问中国 发布:2024-10-18 13:49:54 浏览:10
人三琳外传脚本 发布:2024-10-18 13:38:16 浏览:839
电脑发件箱服务器错误怎么弄 发布:2024-10-18 13:30:36 浏览:914
evm部署solc编译文件 发布:2024-10-18 13:29:47 浏览:835