• linux下恢复误删除的文件方法(ext2及ext3)


    分类: LINUX

    如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,debugfs就无能为力了,好在我们有了ext3grep这个开源工具(http://code.google.com/p/ext3grep/)!
     
     

    对于ext2

    1、在/data(/dev/sdb)上创建并删除测试文件(作测试目的以plantodelete为例)
      #vi plantodelete
      输入This text is plantodelete! 保存退出
      #rm -f plantodelete
       
    2、以只读方式remount /data,防止再次写入文件
      #mount -r -n -o remount /data
      如果出现busy用
      #fuser -k /data
     
    3、恢复误删除的文件
      #debugfs /dev/sdb
      debugfs 1.35 (28-Feb-2004)
      debugfs: lsdel                   <-- 列出删除的文件
      Inode  Owner  Mode    Size    Blocks   Time deleted
        12      0 100600   4096    1/   1 Sat Dec 19 15:54:04 2009
        13      0 100644     14    1/   1 Sat Dec 19 15:54:08 2009
    2 deleted inodes found.
    debugfs: stat <13>                 <-- 察看状态
    Inode: 13   Type: regular    Mode:  0644   Flags: 0x0   Generation: 2897353947
    User:     0   Group:     0   Size: 14
    File ACL: 1033    Directory ACL: 0
    Links: 0   Blockcount: 16
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4b2c86a0 -- Sat Dec 19 15:54:08 2009
    atime: 0x4b2c869c -- Sat Dec 19 15:54:04 2009
    mtime: 0x4b2c869c -- Sat Dec 19 15:54:04 2009
    dtime: 0x4b2c86a0 -- Sat Dec 19 15:54:08 2009
    BLOCKS:
    (0):8200
    TOTAL: 1
    debugfs: dump <13> plantodelete   <-- 恢复文件
    debugfs: q                        <-- 退出debugfs
     
    在运行debugfs命令的当前目录下就可以看见恢复的文件了
     

     

     

    对于ext3

    1、下载并安装ext3grep
       #tar zxf ext3grep-0.10.1.tar.gz
       #cd ext3grep-0.10.1
       #./configure
       #make
       #make install
      依赖包

    -r--r--r-- 1 root root 863808 Nov 5 19:03 e2fsprogs-1.39-33.el5.x86_64.rpm
    -r--r--r-- 1 root root 587041 Nov 5 19:03 e2fsprogs-devel-1.39-33.el5.i386.rpm
    -r--r--r-- 1 root root 652235 Nov 5 19:03 e2fsprogs-devel-1.39-33.el5.x86_64.rpm
    -r--r--r-- 1 root root 122537 Nov 5 19:03 e2fsprogs-libs-1.39-33.el5.i386.rpm
    -r--r--r-- 1 root root 122590 Nov 5 19:03 e2fsprogs-libs-1.39-33.el5.x86_64.rpm
    drwxr-xr-x 3 1000 1000 4096 Nov 5 19:04 ext3grep-0.10.2
    -rw-r--r-- 1 root root 236364 Nov 5 18:55 ext3grep-0.10.2.tar.gz

    安装时用rpm -ivh xxxx.rpm来安装即可

     
    2、将要恢复数据的分区umount(以 /dev/sdb  /data为例 )
       #umount /data
       如果因为busy无法正常umount,使用
       #fuser -k /data
       杀掉进程再umount
     
    3、查找并恢复误删除的文件
       #ext3grep /dev/sdb  --ls --inode 2
       找到想要恢复的文件的inode 如 13
       #ext3grep /dev/sdb  --restore-file --inode 13
       恢复成功后在运行ext3grep的当前目录下就会有RESTORE_FILES目录下就是恢复出来的文件
      
  • 相关阅读:
    一个简单的CI分页类
    php版给UEditor的图片在线管理栏目增加图片删除功能
    PHP 中获取文件名及路径
    session共享
    linux进阶之Tomcat服务篇
    Linux进阶之环境变量文件/etc/profile、/etc/bashrc、/etc/environment
    shell应用之简单计算器
    Linux进阶之日志管理
    Linux进阶之LAMP和LNMP动态网站搭建
    linux进阶之子网划分
  • 原文地址:https://www.cnblogs.com/anruy/p/4941630.html
Copyright © 2020-2023  润新知