操作系统--EXT4文件系统结构分析

EXT4文件系统结构分析
一、实验目的:
掌握文件系统的工作机理;理解文件系统的主要数据结构;学习较为复杂的Linux下的编程;了解EXT4文件系统的结构。
二、实验平台:
虚拟机:VMWare9
操作系统:Ubuntu12.04
文件系统:EXT4
编辑器:Gedit | Vi
二、check_ext4fs运行说明
解压命令(解压到指定文件夹)

tar -zxvf test.tar.gz -C  ~/my_dirtory

该程序是一个ext4文件系统查看器.可以打开镜像文件及硬盘设备文件查看具体的文件系统结构信息,如超级块,块组信息,文件inode。
1、查看主硬盘设备名、挂载目录及文件系统信息
在这里插入图片描述

可查出是ext4文件系统,说明可以运行本程序;主硬盘对应/dev/sda1文件;挂载目录为根目录/。
2、程序编译
进入check_ext4fs目录,输入 make clean; make编译程序,生成check_ext4fs程序:

3、程序运行
#./check_ext4fs /dev/sda1
成功运行程序进入命令输入状态。
4、命令使用
共有以下命令:

info sb 查看超级块信息
info inode num 查看序号为num的inode信息
info groups [start, end] 查看inode组描述
quit 退出

三、dumpe2fs命令说明
1、命令名称
dumpe2fs - 显示ext2/ext3/ext4文件系统信息。
2、dumpe2fs命令语法

dumpe2fs [ -bfhixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device

3、dumpe2fs命令描述
显示device中文件系统的超级块和块组信息。
4、dumpe2fs常用命令选项  
选项 描述

-b	打印文件系统中的坏块
-o	不常用,检查严重损坏文件系统时指定
-f	强制显示所有信息,即便dumpe2fs对有些文件系统功能标识不能识别。
- i	显示image文件系统信息。device指定image文件的路径
-h	只显示超级块信息
-x	将已分组的块的数量用十六进制显示
-v	显示dumpe2fs的版本号并推出

三、实验内容:
(1)该实验要求编写程序,完成以下功能(注意保存截图):
获取ext4文件系统超级块,并显示超级块数据结构在这里插入图片描述
ext4_super_block的字段信息;操作系统--EXT4文件系统结构分析_第1张图片

获取块组描述符表,并能根据输入的块组号显示该块组描述符ext4_group_desc的字段信息;
操作系统--EXT4文件系统结构分析_第2张图片

获取索引节点表,并能根据输入的索引节点号(比如根目录文件的索引节点号是2),显示其索引节点数据结构ext4_inode的字段信息。
操作系统--EXT4文件系统结构分析_第3张图片

(2)分析上述实验代码,回答下列问题:
大小(单位用字节):逻辑块、超级块ext4_super_block、组描述符ext4_group_desc、索引节点ext4_inode;
逻辑块:209702
超级块:4194048
组描述符:4096
索引节点:1048576
个数及位置:块组0中组描述符占用的块数及所占块号、inode个数及inode表占用的块数、块位图block bitmap占用块数及所在块号、索引节点位图inode bitmap占用块数及所在块号;
操作系统--EXT4文件系统结构分析_第4张图片操作系统--EXT4文件系统结构分析_第5张图片

验证:执行sudo dumpe2fs /dev/sda1 | more命令,验证上述分析是否正确。

操作系统--EXT4文件系统结构分析_第6张图片
操作系统--EXT4文件系统结构分析_第7张图片

你可能感兴趣的:(学习笔记,linux,服务器,操作系统)