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/              //查看恢复目录下是否有恢复完成的文件

原文地址:https://www.cnblogs.com/feiyu-cn/p/7268356.html