reiserfs文件系统的磁盘布局

news2024/7/6 12:54:11

reiserfs文件系统的磁盘布局比较简单,它把整块分区分成相同大小的block块,一个block块的大小默认是4K,而最大块数未2^32次方,即一个分区最大大小为16TB。

reiserfs文件系统分区的前64KB总是为分区标签(partition labels)或启动引导(boot loaders)而保留,接着是超级块(Super block),同其他所有文件系统一样,需要超级块来保存分区相关重要信息,比如block块大小,block块数等等。接着超级块后是一个位图块(Bitmap block),这个位图块记录对应block块的使用状况,每一bit位指示一个block块。假定一个block块的大小为4K(后续类此假定),那么一个位图块可以映射表示4*1024*8=32768个block块的使用状态。

在位图块内,第0个Byte标识第一个八block块状态,第1个Byte标识第二个八block块状态,第2个Byte标识第三个八block块状态,依次类似;而在一个Byte内,从低到高位分别标识对应的从小到大块号的block块状态,比如第0个Byte的第0Bit标识第0块block状态,第0个Byte的第1Bit标识第1块block状态,第0个Byte的第2Bit标识第2块block状态,……,第1个Byte的第0Bit标识第8块block状态,第1个Byte的第1Bit标识第9块block状态,第1个Byte的第2Bit标识第10块block状态,……,依次类似。另外,对应的bit位为1标识对应的block块为使用状态,为0标识对应的block块为空闲状态。

第一块位图块可以标识分区的前32768个block块的使用状态,那么紧接着的第32768块block又为位图块,继续标识32768个block块的使用状态,然后第65536块block又为位图块,……,如下表,其它block块大小也可以类似计算出位图块所在的位置:

block块大小4,0965121,0248,192
一个位图块可以映射的block块数32,7684,0968,19265,536
超级块块号16128648
第一个位图块块号17129659
第二个位图块块号32,7684,0968,19265,536
第三个位图块块号65,5368,19216,384131,072
第四个位图块块号98,30412,28824,576196,608

一个刚新建立的reiserfs文件系统的位图块如下,第一块和第二块位图块,可以看到第一块位图块里标识出已经有很多block块已经处于使用状态,这些都是要被用来记录日志(journal)而提前标注为已使用的。第二块位图块里只有第0个Byte的第0Bit为1,也就是“第二块位图块”本身所占的block块,当然是已经处于使用状态。

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@localhost sdb1]# hexdump -C -s 69632 -n 4096 /dev/sdb1

00011000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

*

00011400  ff ff 0f 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

00011410  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

*

00012000

[root@localhost sdb1]# hexdump -C -s 134217728 -n 4096 /dev/sdb1

08000000  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

08000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

*

08001000

[root@localhost sdb1]#

reiserfs文件系统的磁盘布局大体好像就是这样了,再看一下超级块(Super block)的内部组织,见下表,从上往下一一对应磁盘数据:

NameSizeDescription
Block count4The number of blocks in the partition
Free blocks4The number of free blocks in the partition
Root block4The block number of the block containing the root node
Journal block4The block number of the block containing the first journal node
Journal device4Journal device number (not sure what for)
Orig. journal size4Original journal size. Needed when using partition on systems with different default journal sizes.
Journal trans. max4The maximum number of blocks in a transaction
Journal magic4A random magic number
Journal max batch4The maximum number of blocks in a transaction
Journal max commit age4Time in seconds of how old an asynchronous commit can be
Journal max trans. age4Time in seconds of how old a transaction can be
Blocksize2The size in bytes of a block
OID max size2The maximum size of the object id array
OID current size2The current size of the object id array
State2State of the partition: valid (1) or error (2)
Magic string12The reiserfs magic string, should be “ReIsEr2Fs”
Hash function code4The hash function that is being used to sort names in a directory
Tree Height2The current height of the disk tree
Bitmap number2The amount of bitmap blocks needed to address each block of the file system
Version2The reiserfs version number
Reserved2
Inode Generation4Number of the current inode generation.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[root@localhost sdb1]# hexdump -C -s 65536 -n 4096 /dev/sdb1

00010000  50 fd ff 01 3d d9 ff 01  13 20 00 00 12 00 00 00  |P...=.... ......|

00010010  00 00 00 00 00 20 00 00  00 04 00 00 52 fe c7 51  |..... ......R..Q|

00010020  84 03 00 00 1e 00 00 00  00 00 00 00 00 10 cc 03  |................|

00010030  02 00 02 00 52 65 49 73  45 72 32 46 73 00 00 00  |....ReIsEr2Fs...|

00010040  03 00 00 00 02 00 00 04  02 00 00 00 00 00 00 00  |................|

00010050  01 00 00 00 36 75 98 e5  c4 a5 47 9d aa 04 8f ac  |....6u....G.....|

00010060  15 fb a0 92 00 00 00 00  00 00 00 00 00 00 00 00  |................|

00010070  00 00 00 00 02 00 1e 00  a4 5c 29 4f 00 4e ed 00  |.........\)O.N..|

00010080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

*

000100c0  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|

000100d0  04 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

000100e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

*

00011000

[root@localhost sdb1]#

Block count:0x1fffd50
Free blocks:0x1ffd93d
Root block:0x2013
……
完全参考链接:http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1366570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《每天一分钟学习C语言·十一》static静态,内联函数,宏函数,排序

1、 static静态修饰符 static全局变量和普通全局变量区别 static全局变量只能在本文件中使用,普通全局变量可以在一个项目下的所有文件中使用,需要加extern。static全局变量只能初始化一次 static局部变量和普通局部变量区别: static局部变量…

【性能测试】JMeter分布式测试及其详细步骤

性能测试概要 性能测试是软件测试中的一种,它可以衡量系统的稳定性、扩展性、可靠性、速度和资源使用。它可以发现性能瓶颈,确保能满足业务需求。很多系统都需要做性能测试,如Web应用、数据库和操作系统等。 性能测试种类非常多&#xff0c…

盛元广通实验室业务流审批管理系统2.0

系统通过对取样、分析、数据处理、检验报告等分析全过程中多种影响因素的有效管理,强化检验质量,获得准确可靠的分析成果。业务流审批管理系统主要包括了检测管理、业务受理、样品管理、资源质量管理、分包管理、报告生成、统计分析等,系统能…

Spring学习 基于注解的AOP控制事务

8.1.拷贝上一章代码 8.2.applicationContext.xml <!-- 开启spring对注解事务的支持 --> <tx:annotation-driven transaction-manager"transactionManager"/> 8.3.service Service Transactional(readOnlytrue,propagation Propagation.SUPPORTS) publi…

商城小程序(7.加入购物车)

目录 一、配置vuex二、创建购物车的store模块三、在商品详情页中使用store模块四、实现购加入购物车功能五、动态统计购物车中商品的总数量六、持久化存储购物车的商品七、优化商品详情页的total侦听器八、动态为tabBar页面设置数据徽标九、将设置tabBar徽标的代码抽离为mixins…

在Spring Cloud Config Github配置中心

关于Spring Cloud系列我们其实讲解了很多&#xff0c;但是这里我们介绍一下Spring Cloud Config&#xff0c;它是一个解决分布式系统的配置管理方案&#xff0c;他包含了Client 和 Server 两个部分&#xff0c;server提供配置文件的存储&#xff0c;以接口的方式将配置文件内容…

【数据库】聊聊常见的索引优化-下

分页查询优化 主键排序 在实际的使用中&#xff0c;通过limit 10000,10 查询第10000记录到10010记录&#xff0c;mysql执行的时候是按照将前10010记录全部统计出来&#xff0c;然后剔除前10000条记录&#xff0c;选择后10条记录。这样来看的话&#xff0c;效率不高。 如果数据…

Java桶排序、基数排序、剪枝算法

桶排序算法 桶排序的基本思想是&#xff1a; 把数组 arr 划分为 n 个大小相同子区间&#xff08;桶&#xff09;&#xff0c;每个子区间各自排序&#xff0c;最后合并 。计数排序是桶排序的一种特殊情况&#xff0c;可以把计数排序当成每个桶里只有一个元素的情况。 1.找出待…

企鹅目标检测数据集VOC格式400张

企鹅&#xff0c;一种可爱而独特的鸟类&#xff0c;以其圆滚滚的身体、黑白相间的羽毛和独特的行走方式而备受人们喜爱。 企鹅是鸟纲、企鹅科的动物&#xff0c;它们生活在南半球&#xff0c;特别是南极地区。企鹅的体型短而肥胖&#xff0c;有着流线型的身体和黑白相间的羽毛…

24/1/8

传奇登录界面&#xff1b; #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口设置this->setWindowTitle("传奇");//窗口名this->setWindowIcon(QIcon("C:\\Users\\21528\\Desktop\\图标.png"));//窗口图标th…

【Flutter 开发实战】Dart 基础篇:最基本的语法内容

在深入了解 Dart 这门编程语言之前&#xff0c;我们需要了解一些关于 Dart 的最基本的知识&#xff0c;像是常量、变量、函数等等&#xff0c;这样才能够让我们的开发效率更上一层楼。在本节&#xff0c;我们将探讨一些基础语法&#xff0c;包括入口方法 main、变量、常量以及命…

ERA5和GNSS站点不并址的处理方法二:垂直补偿(获得GNSS站点高度的PWV、温度和气压,基于matlab)

0. 码字不易&#xff0c;点赞加关注&#xff08;公众号&#xff1a;WZZHHH&#xff0c;部分资料在公众号可以下载&#xff09; Part1 垂直补偿的原因 我们在获取GNSS站点位置的PWV有很多方法&#xff0c;其中一个是利用ERA5数据进行积分得到。由于ERA5格网位置和GNSS不并址&am…

信息安全监管

安全政策 中央办公厅2003的27号文件 《国家信息化领导小组关于加强信息安全保障工作的意见》 方针&#xff1a;积极防御&#xff0c;综合防范 目标、要求&#xff1a;全面提高信息安全防护能力&#xff0c;保护公众利益&#xff0c;维护国家安全 4大原则&#xff1a; 立足…

为什么建筑设计师选择网络渲染“效果图“

网络渲染一般是指&#xff1a;云渲染&#xff0c;建筑设计行业通常需要渲染室内、室内等场景的效果图&#xff0c;一般大型场景渲染时非常消耗电脑算力&#xff0c;并且渲染时长也会通过效果图的场景、尺寸等来决定&#xff0c;本文为用户整理建筑设计师选择网络渲染的原因&…

孪生神经网络MATLAB实战[含源码]

​一、算法原理 孪生神经网络&#xff08; Siamese neural network&#xff09;是一种深度学习网络&#xff0c;它使用两个或多个具有相同架构、共享相同参数和权重的相同子网。孪生网络通常用于寻找两个可比较事物之间的关系的任务。孪生网络的一些常见应用包括面部识别、签名…

3.9 EXERCISES

矩阵加法需要两个输入矩阵A和B&#xff0c;并产生一个输出矩阵C。输出矩阵C的每个元素都是输入矩阵A和B的相应元素的总和&#xff0c;即C[i][j] A[i][j] B[i][j]。为了简单起见&#xff0c;我们将只处理元素为单精度浮点数的平方矩阵。编写一个矩阵加法内核和主机stub函数&am…

用红葡萄酿造的白葡萄酒是怎样的?

“由黑变白”这是“黑葡萄”的直译&#xff0c;代表一种由深蓝到黑葡萄制成的白葡萄酒&#xff0c;这种酿酒方式起源于法国&#xff0c;黑皮诺和莫尼尔的红葡萄一直被加工成白葡萄酒&#xff0c;作为香槟的基础。这是可能的&#xff0c;因为红色浆果通常果肉较轻。红色素&#…

TypeScript 从入门到进阶之基础篇(八)函数篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇TypeScript 从入门到进阶…

Java课程设计团队博客 —— 基于网页的时间管理系统

博客目录 1.项目简介2.项目采用的技术3.功能需求分析4.项目亮点5.主要功能截图6.Git地址7.总结 Java团队博客分工 姓名职务负责模块孙岚组长 资源文件路径和tomcat服务器的相关配置。 前端的页面设计与逻辑实现的代码编写。 Servlet前后端数据交互的编写。 用户登录和断开连接…

独立式键盘控制的4级变速流水灯

#include<reg51.h> // 包含51单片机寄存器定义的头文件 unsigned char speed; //储存流水灯的流动速度 sbit S1P1^4; //位定义S1为P1.4 sbit S2P1^5; //位定义S2为P1.5 sbit S3P1^6; //位定义S3为P1.6 sbit S4P1^7; //位…