文件系统简介
什么是文件系统?
操作系统中负责管理和存储文件信息的软件称为文件管理系统,即文件系统。
主要职能:
· 文件存储设备(硬盘、U盘、SSD)的空间进行组织和分配
· 文件存储并对存入的文件进行保护和检索
不同操作系统所使用的文件系统
文件系统运行流程:
1. 磁盘分区 =》 2. 格式化 =》 3. 挂载
磁盘分区
1.1 为啥要磁盘分区?
不对磁盘进行分区,无法利用磁盘进行存储,读取数据等操作
1.2 如何分区?
常用两个分区方式:MBR 和 GPT
磁盘第一个扇区里面含有的重要信息我们称为MBR格式。
第一个扇区512 Bytes会有这两个数据:
· 主要开机记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 Bytes
· 分区表(partition table):记录整颗硬盘分区的状态,有64 Bytes
所谓的“分区”只是针对那个64Bytes的分区表进行设置而已,每个分区记录表记录了该区段的启始与结束的柱面号码。当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理
## 由于分区表所在区块仅有64Bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的柱面号码。一分区用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示了,所以MBR最大存储数据量级是2TB
文件系统运行过程
2.1 如何进行存储设备的空间组织和分配?以EXT2文件系统为例。
linux文件一般含有文件权限和(rwx)和文件属性(拥有者、群组、时间参数)以及文件实际数据。
文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到inode中一个文件占用一个inode,同时记录此文件的数据所在的block号码至于实际数据则放置到data block区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。
每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block号码。
文件系统先格式化出inode与block的区块,然后找到文件数据实际放置的block号码,之后再从磁盘中一次性读取相应位置的数据。
Ext2文件系统的格式化时,创建多个区块群组,每个区块群组都有独立inode/block/superblock系统。独立的系统主要组成包括:Data Block、Inode Table、Inode对应表、区块对应表、档案系统描述、Superblock
Linux下的ext2创建一个一般文件时,ext2会分配一个inode与相对于该文件大小的block数量给该文件。
3.1系统通过挂载的信息可以找到挂载点的inode号码,此时就能够得到根目录的inode内容,并依据该inode读取根目录的block内的文件名数据,再一层一层的往下读到正确的文件名。