B. 如何恢复 Linux 上删除的文件
作为一个多用复户、多任制务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。
一、用运SecureCRT远程对操作系统上,查看一下当前系统版本号,及文件系统格式
二、为方便本次实验,我们新创建一文件。
三、执行删除操作
四、运用,系统自还工具debugfs来修复
五、打开,刚刚被删除文件所在的分区
六、用ls 加-d参数显示刚刚删除文件所在的目录
七、显示有<>尖括号的就是我们要找的文件Inode 号 执行logmp –I <393289>
八、执行完命令后,显示了一屏信息,我们需要的是下面这一行,并且要记住,后面的值
九、退出debugfs
十、执行如下命令
十一、以上结果表示恢复成功我们看下/tmp目录下到底有没有
十二、tmp目录下有我们显示一下
C. 如何在Linux系统中恢复误删除的文件
1. 添加硬盘,创建分区,关机后添加,在硬件那里新增一个dfisk分区1-6是分出一个测试区
2. #fdisk /dev/sdb # 创建一个sdb1分区
3. #partx -a /dev/sda #获取新分区表
4. #mkdir /tmp/sdb #创建sdb文件夹
5. #mkfs.ext4 /dev/sdb1 #格式化
6. #mount /dev/sdb1 /tmpsdb #挂载新的分区
7. #umount /tmp/sdb #卸载
8. 解压工具extundelete 可以在历码http://sourceforge.net下载
9. 解压#tar jxvf 包名
#yum install gcc-c++
#cd /mnt/packages
#yum install *2fs*
10. 编译安装
#make –j
#make install
11. 创建空目录 mkdir test存放恢复的文件
恢复的四个方法,前提卸载光驱了
1. 通过inode结点恢复 #extundelete /dev/sdb1 - -restore-inode inode号
2. 通过文件名恢复 #extundelete/dev/sdb1 - -restore-file 文件名
3. 恢复某个目录 #extundelete/dev/sdb1 - -restore-directory 目录丛橡名肢郑哪
4. 恢复所有文件 #extundelete/dev/sdb1 - -restore-all
无法恢复空文件和空目录
D. linux误操作删除文件后,还能还原么
误删除文件进程还在的情况
这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID还是存在。这也就是有些服务器删除一些文件但是磁盘不释放的原因。比如当前举例说明:
通过一个shell终端对一个测试文件做cat追加操作:
[root@21yunwei_backup ~]# echo "hello py" > testdelete.py
[root@21yunwei_backup ~]# cat >> testdelete.py
hello delete
另外一个终端查看这个文件可以清楚看到内容:
[root@21yunwei_backup ~]# cat testdelete.py
hello py
hello delete
此时,在当前服务器删除操作文件rm -f ./testdelete.py
命令查看这个目录,文件已经不存在了,那么现在我们将其恢复出来。
1,lsof查看删除的文件进程是否还存在。这里用到一个命令lsof,如没有安装请自行yum或者apt-get。类似这种情况,我们可以先lsof查看删除的文件 是否还在:
[root@21yunwei_backup ~]# lsof | grep deleted
mysqld 1512 mysql 5u REG 252,3 0 6312397 /tmp/ibzW3Lot (deleted)
cat 20464 root 1w REG 252,3 23 1310722 /root/testdelete.py (deleted)
幸运的是这种情况进程还存在 ,那么开始进行恢复 操作。
2,恢复。
恢复命令:
cp /proc/pid/fd/1 /指定目录/文件名
进入 进程目录,一般是进入/proc/pid/fd/,针对当前情况:
[root@21yunwei_backup ~]# cd /proc/20464/fd
[root@21yunwei_backup fd]# ll
total 0
lrwx------ 1 root root 64 Nov 15 18:12 0 > /dev/pts/1
l-wx------ 1 root root 64 Nov 15 18:12 1 > /root/testdelete.py (deleted)
lrwx------ 1 root root 64 Nov 15 18:12 2 > /dev/pts/1
恢复操作:
cp 1 /tmp/testdelete.py
查看文件:
[root@21yunwei_backup fd]# cat /tmp/testdelete.py
hello py
hello delete
恢复完成。
E. linux 系统下面,rm -rf 删除的文件能找回来吗
使用rm -rf删除的文件不能找回的;
对rm命令的理解:
1.rm命令可以删除一个目录中的一个或多个文版件或目录,也可以将权某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
2.使用rm命令删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
3.rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。
(5)linux还原删除的文件扩展阅读:
rm命令参数如下
1.-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
2.-f:强制删除文件或目录;
3.-i:删除已有文件或目录之前先询问用户;
4.-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
5.-v:显示指令的详细执行过程。
F. linux不小心删除文件后怎么恢复
原理主要是删除的文件并没有实际上从硬盘上抹去,只是inode索引删除了相关的信息,因此专只要找到刚删除属文件的block上,就可以恢复已经删除的文件。
以下方法在ext3的文件系统上测试通过,ext2的没有测试过。假设删除的文件在dir下面,位于/dev/sda5上。
主要借助debugfs
1 运行debugfs,进入调度模式
2 执行open /dev/sda5
3 执行ls -d dir 会列出此目录最近的操作,其中可以看到<num>的日志删除记录
4 执行logmp -i <num> 显示此日志内容
5 在输出中寻找删除文件对应的block,记录下来blockid
6退出debugfs,运行dd if=/dev/sda5 of=/tmp/saved bs=1024 count=1 skip=blockid