一、前绪
昨天天气太热,在家打完游戏感觉无聊,随便翻了翻之前的书,翻到《鸟哥的Linux私房菜》磁盘与文件系统那一章,看了看发现之前对磁盘的理解有误。所以今天简单整理了一下,做个记录。
二、磁盘的物理结构
我们经常看到的物理机械盘是这个样子的:
![](https://img.haomeiwen.com/i7687404/ff856f51e7da70e0.png)
拆开看下是这样的:
![](https://img.haomeiwen.com/i7687404/648fd6e1bd695540.png)
![](https://img.haomeiwen.com/i7687404/7919b40481b04a38.png)
硬盘结构如下:
![](https://img.haomeiwen.com/i7687404/d208821559d6b075.png)
三、分区结构
![](https://img.haomeiwen.com/i7687404/667b14f5f94d458b.png)
上图是理论值,而实际上是这样的:
![](https://img.haomeiwen.com/i7687404/a5d74e6228aef1b7.png)
以前总是以为扇区就是扇面,后来才知道扇区是柱面的一部分,柱面就是一个圆环。
以前总是以为磁盘像
图盘面一
那样,心里还琢磨:磁盘外围的扇区多浪费啊,后来才知道实际上是图盘面二
那样。还有些知识要知道,分区的最小单位是柱面(也就是圆环)。
每个柱面都有第一个扇区,每个扇区512byte,其中第一个扇区非常重要。里面有硬盘主引导记录(MBR)和分区表,MBR占446byte,分区表占64byte。
这个图还是比较好理解的:
![](https://img.haomeiwen.com/i7687404/f6166bf5b955c13d.png)
分区表64byte,每个分区16byte,这16byte的内容如下:
![](https://img.haomeiwen.com/i7687404/0feb3478dbd8a524.png)
这个图是一个整体的认识:
![](https://img.haomeiwen.com/i7687404/0e1046a02a70b1a6.png)
四、文件系统结构
以ext2为例,第一个扇区bootSector上面讲过,记录了分区的信息。
![](https://img.haomeiwen.com/i7687404/9cb9a7e0dca8272f.png)
- 超级块(superblock)
记录整个文件系统相关信息的地方,例如inode和block的总量和使用数,还有block的大小等等 - 文件系统描述
顾名思义,blockgroup开始和结束的号码 - 块对照表
可以知道哪些block是空的 - inode对照表
可以知道哪些inode是空的 - inodetable
访问模式、文件大小、所有者、权限等 - datablock
真正放数据的地儿
注意点,我们之前说过文件系统应该只有一个超级块,而这个表中发现每个组都有超级块,这是怎么回事呢。其实只有第一个组超级块不为空,后续的组里的超级块不一定含有信息,即使有也是和第一个超级块信息相同。
inodetable里的inode信息
![](https://img.haomeiwen.com/i7687404/40ca5c636e14e35b.png)
五、其它
![](https://img.haomeiwen.com/i7687404/16dfa4c58a46387a.png)
在介绍开始流程的时候说过,可开机装置的第一个扇区非常重要,包含了2个主要的东西,MBR和分区表。其中MBR有446bytes,分区表有64bytes。
而boot sector有1024bytes,而一个文件系统的superblock也有1024bytes。boot sector在文件系统的最开始,而superblock也在文件系统的最开始。
那么boot sector和superblock的关系的关系是什么呢?
这其实和block size也有关系,block size分为1k,2k,4k的。
如果是1k的,那么boot sector在最前,即0号block,而superblock在1号block,后续是其他的内容。
如果block size是2k和4k的,那么block size和superblock就都在0号block了。也就是在一起了。
网友评论