• linux文件系统文件删除并恢复


    一、inode和block

    1.硬盘最小存储单位"扇区(sector)",每个扇区存储512字节

    2.系统分割的单位柱面 

    3.系统读取"块(block)",块由多个扇区组成,常见为4KB、8个扇区组成一个块

    元信息-->inode(一个文件/目录占用一个)

    数据-->block 

    注:当磁盘有剩余空间,但inode用尽时,不能存储任何内容

    4.inode内容

    1)文件大小 

    2)文件所有者 

    3)文件所有组 

    4)文件权限

    5)文件创建时间 

    5.stat 文件                //查看指定文件的inode信息;ls -i 文件也可简单查看文件对应inode号

    6.find / -type f -empty             //搜索系统中所有为空的文件 

    7.数据读取流程

    1)系统通过文件找到inode号 

    2)通过inode,寻找inode信息 

    3)根据inode信息,找到文件所对应的block位置,读取数据 

    8.df -i                          //查看硬盘所有的inode号,已使用inode等信息 

    9.dumpe2fs -h 分区 | grep  -i "Inode size"     //查看指定文件inode号占用大小 

    注:一个文件的inode号一般不用更改,只有当删除文件时会释放

    10.i节点耗尽

    1)df -i                         //查看硬盘IFree的inode剩余情况 

    2)rm -rf 文件                   //删除硬盘下文件,会自动释放inode号

    案例: 

      新增1G硬盘,测试i节点耗尽 

    1)分区并挂载 

    fdisk /dev/sdb --> n --> p --> 1 --> 回车 --> 回车 --> w 

    mkfs -t ext4 /dev/sdb1 

    mkdir /data 

    mount /dev/sdb1 /data/

    2)模拟故障 

    df -i /dev/sdb1

    touch /data/{1..65269}

    3)测试

    touch /data/ab           //报错,磁盘空间不足

    rm -rf /data/1

    touch /data/ab           //可正常创建

    touch /data/ac           //报错

    二、硬链接与软链接

    1)硬链接 

    ln 源文件 目标文件

    特点:

    a.对其中一个内容修改,其余全部同步

    b.当删除其中一个文件时,不影响其余文件 

    c.链接的大小为源文件大小 

    d.只支持链接文件

    2)软链接

    ln -s 源文件 目标文件 

    特点:

    a.对其中一个内容修改,其余全部同步 

    b.当删除源文件/目录时,目标文件/目录不能使用 

    c.目标文件不占用空间

    d.可链接文件/目录 

    三、案例:恢复误删除文件 

    针对ext4文件系统(debugfs、ext3grep、extundelete);testdisk可恢复分区表 

    1.安装依赖包 

    yum -y install e2fsprogs-* 

    2.上传extundelete软件包,并编译安装 

    tar -jxvf extundelete-0.2.4.tar.bz2 

    cd ~/extundelete-0.2.4/

    ./configure --prefix=/usr/local/ex && make && make install

    cd /usr/local/ex/bin 

    3.使用 

    touch /data/11111 

    rm -rf /data/11111           //删除文件,测试

    ./extundelete /dev/sdb1 --restore-directory /data/   //恢复/data目录被删除内容

    ls RECOVERED_FILES/              //查看恢复目录下是否有恢复完成的文件

  • 相关阅读:
    iOS开发之Xcode8兼容适配iOS 10资料整理笔记
    C#流概述
    C#回调实现的一般过程
    ASP.Net MVC的学习
    RAID基本知识
    Infiniband基本知识
    [转]开源实时视频码流分析软件:VideoEye
    [转]高分一号的落后与特色
    [转]MVC,MVP 和 MVVM 的图示
    图文助你打开MS SQL Serever的ldf和mdf文件
  • 原文地址:https://www.cnblogs.com/feiyu-cn/p/7268356.html
Copyright © 2020-2023  润新知