linux恢复硬盘误删文件

前段时间,一个同学拿一个硬盘过来让我帮他恢复被删除的监控录像文件。经检查该硬盘是linux的ext3磁盘格式。我的linux是装在VMware虚拟机上的。我的笔记本通过usb连接他的硬盘。经过如下操作帮他恢复了被删除内容。

1、通过 #fdisk -l 命令查询虚拟机是否识别硬盘了,在这儿,可以看到,虚拟机系统并没有识别硬盘。有两种处理办法,如下:

a、在主系统(我的是windowsXP)中弹出硬盘,点击虚拟系统界面,将活动光标置于虚拟系统中,此时再次插入硬盘,可以看到主系统右下角弹出虚拟机识别硬盘的消息提示,否则,重新上述操作,直到虚拟机识别硬盘为止。这种方法比较笨的,大家可以采取第二种方法,如下:

b、在虚拟机界面的VM菜单选项中设置即可,按以下菜单操作:VM/Removable Devices/USB Devices/选择要移除的硬盘。

此时,可以看到XP系统右下角弹出安全退出USB设备的消息提示,说明硬盘已被虚拟系统识别。再次通过#fdisk -l命令确认虚拟系统是否识别硬盘。

2、在/mnt目录下建立一个挂装USB存储器的目录,用下面的命令就可以创建:#mkdir /mnt/usb。

3、一切准备工作已做好,终于可以将USB设备(/dev/sdb1)挂装到/mnt/usb目录下,用下面这个命令就可以了:

#mount-text3/dev/sdb1//mnt/usb-oiocharset=utf8

mount命令格式:mount[-参数][设备名称][挂载点][其他参数]

-t指定设备的文件系统类型,在此,使用-text3是由于所使用硬盘的文件系统类型是ext3;如果是ntfs则使用-tntfs等等,大家可根据自己的文件系统类型灵活修改。

-o   指定挂载文件系统时的选项,在此, -o iocharset=utf8 设定utf8字符集。假设你的locale是zh_CN.gb18030,相应命令应为 -o iocharset=gb2312;否则(在此,所使用Linux系统locale是zh_CN.UTF-8),使用gb2312即可。

4、运行如下命令即可查看USB存储器中的文件信息.做mount只是检查下硬盘,在恢复被删除文件时,还需要umount。#ls -l /mnt/usb

5、检查linux是否自带了e2fsprogs这个软件:

[root@hscbu-tx18~]#rpm-qa|grepe2fsprogs

e2fsprogs-libs-1.39-20.el5

e2fsprogs-devel-1.39-20.el5

e2fsprogs-1.39-20.el5

这表示已安装e2fsprogs软件,如果没有安装,在光盘中找,或到网上找http://rpmfind.net/linux/RPM,

http://rpm.pbone.net。

6、下载安装ext3grep:

#wgethttp://ext3grep.googlecode.com/files/ext3grep-0.7.0.tar.gz

#tarzxfext3grep-0.7.0.tar.gz

#cdext3grep-0.7.0

#./configure

#make&&makeinstall

#ext3grep

没错误的话就安装成功了。

7、卸载硬盘,必须在不同的目录下进行卸载,也就是说不能在/mnt/usb目录下进行卸载.Linux下卸载硬盘命令如下:

#cd/root

#umount/mnt/usb

卸载成功。我们可以看到,/mnt/usb目录下已经为空。如果显示deviceisbusy,可以用如下命令进行卸载:

#cd/root

#fuser-km/mnt/usb

#umount/mnt/usb

8、然后运行ext3grep查看被删除的文件:

#ext3grep/dev/sdb1--ls--inode2

现在恢复文件:

#ext3grep/dev/sdb1--restore-all

相关推荐