CentOS7 运维 - 文件系统与日志分析 | ext和xfs类型文件恢复 | 超详细

一、文件系统概述

①文件、扇区

►文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节

②块(block)

►一般连续八个扇区组成一个"块"(block),一个块是4K大小,是文件存取的最小单位,文件数据存储在“块”中

③文件数据

►文件数据包括实际数据与元信息(类似文件属性)
►文件数据存储在“块”中,文件元信息存储在inode

④inode(索引节点)

inode不包含文件名。文件名是存放在目录当中的。Linux 系统中一切皆文件,因此目录也是一种文件
inode是存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域

⑤super block (超级块)

►用于存储文件系统的控制信息的数据结构。描述文件系统的状态、文件系统类型、大小、区块数、索引节点数等 存放于磁盘的特定扇区中

⑥结论

►当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据

二、模拟inode节点耗尽实验

fdisk /dev/sdb
//考虑模拟便利性,这里设置空间为20M
mkfs.ext3 /dev/sdb1
mkdir /data                
mount /dev/sdb1 /data
for ((i=1;i<=5140;i++));do touch /data/$i;done;
//模拟inode节点耗尽 

三、EXT3类型文件恢复

extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3ext4文件系统(ext4只能在CentOS6版本恢复)
►下载地址:extundelete-0.2.4.tar.bz2
►准备工作

fdisk /dev/sdb1
mkfs.ext3 /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
yum -y install e2fsprogs-devel e2fsprogs-libs
//安装环境软件
tar -jxvf extundelete-0.2.4.tar.bz2
//解压缩
cd extundelete-0.2.4
./configure --prefix=/usr/local/extundelete && make && make install
//进入目录编译安装
ln -s /usr/local/extundelete/bin/extundelete /usr/bin
//创建软连接

►开始测试实验

echo a > a
echo b > b
echo c > c
echo d > d
extundelete /dev/sdb1 --inode 2

►恢复文件

extundelete /dev/sdb1 --restore-all
cd RECOVERED_FILES

四、xfs文件备份和恢复

►准备工作

fdisk /dev/sdb1
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
cp /etc/passwd /data
yum install -y xfsdump
//安装xfsdump

►开始备份文件并模拟丢失

xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1


►恢复文件

xfsrestore -f /opt/dump_sdb1 /data


猜你喜欢

转载自blog.csdn.net/qq_42427971/article/details/113618188
今日推荐