ext2文件系统学习(二)—— 目录磁盘结构
创建镜像、mount等操作和上一篇一样,测试目录结构如下:

一些文件系统信息如下:
- Block size: 1024
- Inodes per group: 128
- Inode size: 128
- Block bitmap at 6
- Inode bitmap at 7
- Inode table at 8-23
下面看看文件系统根目录的结构,ext2的根目录的索引节点号是2,根据上面的信息可以计算出根目录的索引节点地址是0x002080。如果是用vim打开的镜像文件,可以通过以下命令计算地址:
:echo printf("%x", 8*1024+128)
文件内容如下:

对照ext2_inode结构定义:
- i_mode: 0x41ed 对照这里可知文件格式为EXT2_S_IFDIR
- i_uid: 0
- i_size: 0x000400,也就是1K (可以通过ls -ld /tmp/ext2验证)
- i_block: 0x000018,说明该目录只占用了一个block,地址为0x18 * 1024=0x6000,这里也就是根目录的内容
0x6000地址处内容如下:

ext2的目录是一个特殊的文件,文件内容是多个ext2_dir_entry_2结构的目录项,每个目录项是文件名和索引节点的集合。
对照ext2_dir_entry_2的结构,第一个目录项信息如下:
- inode : 2
- rec_len: 0x000C
- name_len: 0x01
- file_type: 0x02,表示目录
- name: 0x2E, 也就是“."
因为上一个目录项rec_len是0x0C,所以下一个目录项地址为0x600C,对应目录项信息如下:
- inode: 2
- rec_len: 0x000C
- name_len: 0x02
- file_type: 0x02,表示目录
- name: 0x2E,0x2E,也就是“..”
下一个目录项地址为上一个目录项地址加上上一个目录项的rec_len,也就是0x600C + 0x0C = 0x6018,信息如下:
- inode: 0x0B,11
- rec_len: 0x14,20
- name_len: 0x0A,10
- file_type: 0x02, 2,表示目录
- name: 0x6C,0x6F, ..., 也就是“lost+found”
以此类推就可以找到所有根目录下的目录项
ext2文件系统学习(二)—— 目录磁盘结构的更多相关文章
- linux ext2 文件系统学习
Linux ext2文件系统理解 硬盘组成: 硬盘由多个圆形硬盘片组成.按照硬盘片能够容纳的数据量分为单盘和多盘.硬盘的数据读取主要靠机械手臂上的磁头,在机械手臂上有多个磁头.机械手臂不动硬盘旋转一 ...
- ext2文件系统学习(一)
源码分析网上太多了,不写了,记录简单的实践步骤: 1. 创建ext2文件镜像并映射 cd /tmp count= mkfs.ext2 ext2-1M.img mkdir ext2 sudo mount ...
- JFinal Web开发学习(二)目录、架构、package设计
package分类 config是JFinal的项目配置 controller是控制器 handler可以设置全局处理器,例如判断用户请求中是否直接请求 FreeMarker的模板文件ftl或者htm ...
- Linux文件系统简介一(磁盘分区、开机过程、目录结构、文件权限、文件扩展名、目录管理)
Linux:就是一组软件,一套操作系统=核心+系统呼叫接口层. 1.操作系统 操作系统 = 核心(内核) + 系统呼叫(接口) 操作系统其实也是一组程序,重点在于管理计算机的所有活动以及驱动系统中的所 ...
- EXT2/EXT3文件系统(二)
整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ 接EXT2/EXT3文件系统(一): 2.3 Supe ...
- 认识 EXT2 文件系统
认识ext文件系统 硬盘组成与分割 文件系统特性 Linux 的 EXT2 文件系统(inode) 与目录树的关系 EXT2/EXT3 文件的存取与日志式文件系统的功能 Linux 文件系统的运行 挂 ...
- EXT2 文件系统
转自:http://www.cnblogs.com/ggjucheng/archive/2012/08/22/2651641.html#ext2_filesystem 认识ext文件系统 硬盘组成与分 ...
- FAT文件系统规范v1.03学习笔记---3.根目录区之FAT目录项结构
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...
- Linux中ext2文件系统的结构
1.ext2产生的历史 最早的Linux内核是从MINIX系统过渡发展而来的.Linux最早的文件系统就是MINIX文件系统.MINIX文件系统几乎到处都是bug,采用的是16bit偏移量,最大容量为 ...
随机推荐
- 006_netstat中state详解
TCP三次握手的过程如下: 主动连接端发送一个SYN包给被动连接端: 被动连接端收到SYN包后,发送一个带ACK和SYN标志的包给主动连接端: 主动连接端发送一个带ACK标志的包给被动连接端,握手动作 ...
- 读SRE Google运维解密有感(四)-聊聊问题排查
前言 这是读“SRE Google运维解密”有感第四篇,之前的文章可访问www.addops.cn来查看.今天我们来聊聊“问题排查”这个话题,本人到目前为止还在参与一线运维的工作,遇到过很多“稀奇古怪 ...
- 超级wifi
超级wifi (super wi-fi)是相对于现有的wifi提出的改进版,执行响应的 802.11af标准. 802.11af 标准是2014年2月提出的,它的主要特点是"建议在电视频率之 ...
- 编译时bad substitution的解决办法
由于使用的使用的编译器不同导致, 需要使用shell为 #!/bin/bash 即可.
- dynamic web module和对应的TOMCAT 版本
大致因为java的web系统有多种类型,比如静态的和动态的,然后动态的java web project要设置dynamic web module,也就是动态网页模型,他必须要和对应的服务器搭配好了才能 ...
- js十大排序算法详解
十大经典算法导图 图片名词解释:n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存 1.冒泡排序 1.1 原始人冒泡排序 functi ...
- poj2018 二分+线性dp好题
/* 遇到求最值,且答案显然具有单调性,即可用二分答案进行判定 那么本题要求最大的平均数,就可以转换成是否存在一个平均数为mid的段 */ #include<iostream> #incl ...
- python 全栈开发,Day111(客户管理之 编辑权限(二),Django表单集合Formset,ORM之limit_choices_to,构造家族结构)
昨日内容回顾 1. 权限系统的流程? 2. 权限的表有几个? 3. 技术点 中间件 session orm - 去重 - 去空 inclusion_tag filter 有序字典 settings配置 ...
- SqlServer基础语法(三)
1.数据库备份的方法: 完整数据库备份GPOSDB 文件大小:23MB 日志备份 GPOSDB日志备份文件大小:211KB --完整备份 Backup DATABASE GPOSDB To disk= ...
- SqlServer基础语句练习(一)
学了不少东西,感觉自己的sql语句还是很不好,从基础学起吧. 来一段sql脚本: create database tongji go use tongji go create table studen ...