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