实验项目:
Linux系统文件误删除恢复方法;

宿主机windows与Linux文件共享

实验环境:
一:VMware虚拟机,Linux系统RedHat6.5(什么版本不重要);

二:安装以下3个依赖包(请注意顺序!)
1》rpm -ivh /mnt/Packages/e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
2》rpm -ivh /mnt/Packages/libcom_err-devel-1.41.12-18.el6.x86_64.rpm
3》rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

三:利用Yum安装编译环境gcc gcc-c++

四:下载软件包 extundelete-0.2.4.tar.bz2 到windows (百度找不到压缩包的朋友可以留言给我)

实验目标:
实现宿主机(windows)与Linux文件共享
实现Linux中系统文件误删除恢复

实验步骤:
在工作中我们常常因为自己的一些大意误操作而误删除一些文件,在window中我们有回收站,但是Linux中没有回收站这个机制,所以在Linux中恢复删除的文件就需要借助外部工具。过程如下:
1.下载一个压缩包到windows中(extundelete-0.2.4.tar.bz2 需要压缩包的朋友请留言)
2.把这个压缩包共享到Linux系统中
3.在Linux中对压缩包解压、编译、安装
4.模拟文件误删除
5.利用安装的软件恢复误删除文件

实验经过:
1.先把下载到windows中的软件共享到Linux系统中,找到文件存放的位子共享此文件,如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
2.右键点击我的电脑---管理---本地用户和用户组。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
3.打开本地策略(找不到的可以搜索)--用户权限分配--把Guest这个组删除掉。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
4.在本地策略中打开安全选项,把网络访问的安全模型选择为经典模式。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
5.让Linux和宿主机保持在同一网段。执行命令:smbclient -L //192.168.100.221(跟上自己宿主机的IP地址)。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
6.在Linux中需要使用设备文件就需要挂载,所以我们需要在Linux中创建一个挂载点,把共享的文件夹挂载到Linux中,这样我们就能使用了。分别执行命令 mkdir /abc(创建挂载点) mount.cifs //192.168.100.221/源代码包 /abc(把共享的文件夹挂载到abc) df -h (查看挂载信息)。到这里,文件共享完成!如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
7.可以执行命令 cd /abc 看到共享文件的内容,如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
8.在这之前应该把3个依赖包、gcc gcc-c++ 都安装好了!(在最开头的实验准备中,可以翻回去看看.注意依赖包的安装顺序)。现在就需要把这个压缩包进行解压,执行命令:tar jxvf extundelete-0.2.4文件恢复.tar.bz2 -C /opt 如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
9.执行命令:cd /opt/extundelete-0.2.4/ 切换到解压出来的文件,用命令 ls 查看一下可以得到configure这个执行脚本。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
10.这里需要注意路径,分别执行命令 ./configure(执行这个文件);make(把配置文件转换成二进制文件);make install(开始安装)如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
11.到这里工具安装完成,现在来可以模拟误删除文件。这里特别注意的是:当你误删除的文件想要恢复的时,就不要往这块磁盘中写入数据了,以免覆盖你误删除的数据,所以你要做的是把你误删除文件所在的设备文件解挂载。这里很重要!!!
现在往磁盘写入数据。比如执行命令:echo a>a(生成一个文件名字a并且在里面写入a内容),如下图:
再执行命令删除文件:rm -rf a rm -rf b 如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!

12.这时我们误删除了文件,想要恢复我们首先想到的是应该把该设备文件解挂载,执行命令 umount /aaa(这是我自己误删除文件的挂载点)。现在可以用工具恢复误删除的文件,执行命令:extundelete /dev/sdb1 --restore-all 恢复sdb1分区中的所有文件到当前目录中。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
13.所有恢复的文件都在RECOVERED_FILES这个目录中,切换到这个目录,ls查看确定恢复了误删除的文件a b 。这时就可以把这两个文件移动到你想到的位子。如下图:
Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
14.OK 到此误删文件恢复成功,实验成功。

总结:
在整个过程中,需要注意的有以下几点:
1.安装依赖包的顺序不能错
2.需要安装gcc gcc-c++ 编译器
3.执行、编译、安装恢复软件时应注意路径
4.在实际工作中,误删除文件时不要过多的在当前目录中写入数据,建议应该先解挂载掉当前设备文件。(理由:可以了解 inode与 block的关系!)
5.恢复的文件存放在当前RECOVERED_FILES目录中