[ext4]06 磁盘布局 - 特殊inode
Ext4预留了一些inode做特殊特性使用,见下表:
|
inode |
Purpose |
|
0 |
不存在,Ext4中不存在inode 0. |
|
1 |
存放损坏的数据块链表 |
|
2 |
根目录 |
|
3 |
User quota. 用户quota索引 |
|
4 |
Group quota. 组quota索引 |
|
5 |
Boot loader. |
|
6 |
Undelete directory. 未删除的目录 |
|
7 |
预留的块组描述符inode. (用于调整inode数目) |
|
8 |
日志inode索引 |
|
9 |
The "exclude" inode, for snapshots(?) |
|
10 |
Replica inode, used for some non-upstream feature? |
|
11 |
第一个非预留的inode,通常是lost+found目录,s_first_ino in the superblock. |
root@ubuntu:/mnt/ext4# hexdump -C -s 1445888 -n 256/dev/sdc
/* (Inode 1, 存放损坏的数据链表) */
00161000 0000 00 00 00 00 00 00 e3 9e 2a 53 e3 9e2a 53 |..........*S..*S|
00161010 e39e 2a 53 00 00 00 00 00 00 00 00 00 0000 00 |..*S............|
00161020 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161100
root@ubuntu:/mnt/ext4# hexdump -C -s 1446144 -n 256/dev/sdc
/* (Inode 2, 根目录) */
00161100 ed41 00 00 00 10 00 00 5f 9c 2b 53 47 9c2b 53 |.A......_.+SG.+S|
00161110 479c 2b 53 00 00 00 00 00 00 03 00 08 0000 00 |G.+S............|
00161120 0000 08 00 02 00 00 00 0a f3 01 00 04 0000 00 |................|
00161130 0000 00 00 00 00 00 00 01 00 00 00 61 2100 00 |............a!..|
00161140 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161180 1c00 00 00 58 2e b0 1f 58 2e b0 1f 80 3117 bc |....X...X....1..|
00161190 e39e 2a 53 00 00 00 00 00 00 00 00 00 0000 00 |..*S............|
001611a0 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161200
root@ubuntu:/mnt/ext4# hexdump -C -s 1446400 -n 256/dev/sdc
/* (Inode 3, user quota) */
00161200 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161300
root@ubuntu:/mnt/ext4# hexdump -C -s 1446656 -n 256/dev/sdc
/* (Inode 4,group quota) */
00161300 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161400
root@ubuntu:/mnt/ext4# hexdump -C -s 1446912 -n 256/dev/sdc
/* (Inode 5,Boot Loader) */
00161400 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161500
root@ubuntu:/mnt/ext4# hexdump -C -s 1447168 -n 256/dev/sdc
/* (Inode 6, 未删除的目录) */
00161500 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161600
root@ubuntu:/mnt/ext4# hexdump -C -s 1447424 -n 256/dev/sdc
/* (Inode 7,预留的用于存放块组描述符的的inode) */
00161600 8081 00 00 00 c0 40 00 e3 9e 2a 53 e3 9e2a 53 |......@...*S..*S|
00161610 e39e 2a 53 00 00 00 00 00 00 01 00 c8 4f00 00 |..*S.........O..|
00161620 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161650 0000 00 00 00 00 00 00 00 00 00 00 66 2100 00 |............f!..|
00161660 0000 00 00 00 00 00 00 00 00 00 00 01 0000 00 |................|
00161670 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
00161680 1c00 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
00161690 e39e 2a 53 00 00 00 00 00 00 00 00 00 0000 00 |..*S............|
001616a0 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161700
root@ubuntu:/mnt/ext4# hexdump -C -s 1447680 -n 256/dev/sdc
/* (Inode 8,日志索引) */
00161700 8081 00 00 00 00 00 08 e4 9e 2a 53 e4 9e2a 53 |..........*S..*S|
00161710 e49e 2a 53 00 00 00 00 00 00 01 00 00 0004 00 |..*S............|
00161720 0000 08 00 00 00 00 00 0a f3 02 00 04 0000 00 |................|
00161730 0000 00 00 00 00 00 00 ff 7f 00 00 00 8008 00 |................|
00161740 ff7f 00 00 01 00 00 00 ff ff 08 00 00 0000 00 |................|
00161750 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161780 1c00 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
00161790 e49e 2a 53 00 00 00 00 00 00 00 00 00 0000 00 |..*S............|
001617a0 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161800
root@ubuntu:/mnt/ext4# hexdump -C -s 1447936 -n 256/dev/sdc
/* (Inode 9) */
00161800 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161900
root@ubuntu:/mnt/ext4# hexdump -C -s 1448192 -n 256/dev/sdc
/* (Inode 10) */
00161900 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161a00
root@ubuntu:/mnt/ext4# hexdump -C -s 1448448 -n 256/dev/sdc
/* (Inode 11,第一个非预留的inode,通常是lost+found,s_first_ino in the superblock) */
00161a00 c041 00 00 00 40 00 00 e3 9e 2a 53 e3 9e2a 53 |.A...@....*S..*S|
00161a10 e39e 2a 53 00 00 00 00 00 00 02 00 20 0000 00 |..*S........ ...|
00161a20 0000 08 00 00 00 00 00 0a f3 01 00 04 0000 00 |................|
00161a30 0000 00 00 00 00 00 00 04 00 00 00 62 2100 00 |............b!..|
00161a40 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161a80 1c00 00 00 00 00 00 00 00 00 00 00 00 00 0000 |................|
00161a90 e39e 2a 53 00 00 00 00 00 00 00 00 00 0000 00 |..*S............|
00161aa0 0000 00 00 00 00 00 00 00 00 00 00 00 0000 00 |................|
*
00161b00
root@ubuntu:/mnt/ext4#
[ext4]06 磁盘布局 - 特殊inode的更多相关文章
- [ext4]07 磁盘布局 - 块/inode分配策略
Ext4系统从设计上就认为数据局部性是文件系统的文件系统的一个理想品质. 在机械硬盘上,相关联的数据存放在相近的blocks上,可以使得在访问数据时减少磁头驱动器的移动距离,从而加快IO访问. 在SS ...
- [ext4]04 磁盘布局 - Meta Block Groups
Meta Block Groups,可以翻译为元块组集. 如果不采用Meta Block Groups特性,在每个冗余备份的超级块的后面是一个完整的(包含所有块组描述符的)块组描述符表的备份.如前所述 ...
- [ext4]010 磁盘布局 - 如何查找inode的磁盘位置
在linux系统中,任何一个文件,都有一个inode与其对应,也就是说,在一个文件系统中,一个文件都有唯一的ino来标示他,那么在ext4系统中,ino是如何确定的哪? 当我们新创建的文件或目录时,会 ...
- [ext4]03 磁盘布局 – Flexible group分析
Flexible Block Groups (flex_bg),我称之为"弹性块组",是EXT4文件系统引入的一个feature. 所谓Flexible Block Groups, ...
- [ext4]08 磁盘布局 - CheckSums
从2012年开始,Ext4和jbd2的元数据中都开始加入checksums.特性标识是metadata_csum.Checksum算法是在super_block中指定: struct ext4_sup ...
- [ext4]05 磁盘布局 - 延迟块组初始化
延迟块组初始化,Ext4的新特性.如果对应的特性标识uninit_bg置位,那么inode bitmap和inode tables就不会初始化. 延迟块组初始化特性特性可以减少格式化耗时. 延迟块组初 ...
- [ext4]09 磁盘布局 - superblock备份机制
如果sparse_super特性flag被设置(即开启了sparse_super特性),那么super_block和组描述符的副本只会保存在group索引为0或3.5.7的整数幂. 如果没有设置spa ...
- [ext4]01 磁盘布局 - block分析
ext4文件系统最基本的分配单元是"block"(块). block是由一组连续的sectors来组成,其大小介于1k~4K之间,当然不可能是任意值,只能是2的整数次幂个secto ...
- [ext4]磁盘布局 - inode bitmap & table
在[磁盘布局 group部分]已经介绍过ext4的整体布局,其中存在两个与inode有关的名称:inode bitmap和inode table. Inode bitmap,用于表示inode tab ...
随机推荐
- std::copy性能分析与memmove机器级实现
复制数据的快速方法std::copy C++复制数据各种方法大家都会,很多时候我们都会用到std::copy这个STL函数,这个效率确实很不错,比我们一个一个元素复制或者用迭代器复制都来的要快很多. ...
- iOS多线程——GCD
最近的项目遇到了很多多线程的问题,借此机会对GCD进行了一番学习并总结.首先说一下什么是GCD,GCD全称 Grand Central Dispatch,是异步执行任务的技术之一.开发者只需要定义想要 ...
- MonkeyRunner之小白如何使用MonkeyRecorder录制回放脚本
之前摸索了好久.学习Python语言.安装工具.拉拉溜溜也慢慢地一点点进步.每天就疯狂的上网找资料.虽然大牛们写的很详细.但是自己就是笨的不知怎么做.最后找了一篇文章,真的就是万事俱备只欠东风的感觉, ...
- ICC_lab总结——ICC_lab3:布局
PS:字丑,禁止转载. 做到了ICC workshop的第三个实验,理论与实践相结合,于是,先放一张总结图,这张总结图来自前面的博客,放在这里用来体现理论和实践的联系: 这个就是布局的理论部分,在IC ...
- @RequestParam--SpringMVC 注解系列文章(一)
概述 RequestParam 注解是使用 SpringMVC 开发过程中,比较常用的一个注解,用于映射请求参数. 代码 package rex.springmvc.handlers; import ...
- C# 通过反射实现类似MVC路由的机制
最近封装了个功能非常类似于MVC的路由.//MVC路由机制先找到Controller Action 什么是反射 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获 得.NET ...
- Java 对象序列化和反序列化
之前的文章中我们介绍过有关字节流字符流的使用,当时我们对于将一个对象输出到流中的操作,使用DataOutputStream流将该对象中的每个属性值逐个输出到流中,读出时相反.在我们看来这种行 ...
- div背景图片或颜色不显示的解决办法
背景图片不显示的原因: 1. css没有被调用 2. css图片地址不对 3. div的高度没有固定,是auto.没有设值或者高度不够 4. div被嵌套 5. div代码不规范 解决办法: (1)D ...
- [SinGuLaRiTy] COCI 2011~2012 #2
[SinGuLaRiTy-1008] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 测试题目 对于所有的题目:Time Limit:1s ...
- 老李分享:持续集成学好jenkins之Git和Maven配置 2
8.检查代码更新并编译 可以通过Poll SCM来设置定时检查编译功能 比如*/5 * * * * 就是每隔5分钟检查一次,如果git仓库中有更新,则执行build操作. 9.使用Maven私服加快下 ...