磁盘分割一直不甚清楚,今学习并记录如下:
1、磁盘有最小的扇区,扇区成磁轨,磁轨成磁柱,磁柱成分区。扇区的大小为512Byte
2、磁盘的第一个扇区主要记录了两个重要的信息:主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有 446 bytes;分割表(partition table):记录整颗硬盘分割的状态,有 64 bytes。
3、在分割表所在的 64 bytes 容量中,总共分为四组记录区,每组记录区记录了该区段的启始到结束的磁柱号码。
4、磁盘的两种接口规范:IDE与SATA ;IDE 接口下为:/dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4; SATA:接口下为:/dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4。当然,这是单个磁盘常规分割后的情况,多个磁盘同理只是成了hdb,hdc.... sdb.sdc....了。
5、由于分割表就只有 64 bytes 而已,最多只能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。分割槽的最小单位为磁柱(cylinder)。
6、四个主要分割区可以拿出一个来作为延伸分割区继续通过额外扇区来继续分割,从而产生逻辑分割区(logical partition)。
7、主要分割与延伸分割最多可以有四笔(硬盘的限制),延伸分割最多只能有一个(操作系统的限制),逡辑分割是由延伸分割持续切割出来的分割槽;
8、逡辑分割的数量依操作系统而不同,在 Linux 系统中,IDE 硬盘最多有 59 个逡辑分割(5 号到63 号), SATA 硬盘则有 11 个逡辑分割(5 号到 15 号)。
9、逻辑分割区之间可整合。主分割区和逻辑分割区不可以整合。
10、第一个扇区的数据主要启动记录区和分割表被破坏了这个磁盘的数据操作系统是无法再找到了。
11、每个分割区都拥有自己的启动扇区(boot sector),进而支持多重引导。实际可以开机的核心文件都位于各个分割区内。第一扇区的MBR和各个分割扇区的启动扇区负责boot loader,boot loader提供选单、载入核心文件。
12、基于磁盘硬件结构的文件系统ext2读取文件数据的过程:透过挂载点信息找到根目录(/)的inode号码,找到inode,inode数据中记录了文件权限与属性和block指针--->通过block指针找到其对应的block--->于该block中找到二级文件目录的inode号码(这里是假设文件数据位于二级目录下)--->于二级目录的inode中权限判定后指向二级目录的block-->由二级目录的block找到文件的inode--->于文件的inode上找到文件数据block--->从文件数据block中读取数据。
13、基于磁盘硬件结构的文件系统ext2写文件数据的过程:a. 先确定用户对于欲新增文件的目录是否具有 w 和 x 的权限,若有的话才能新增;
b. 根据 inode bitmap 找到没有使用的 inode 号码,并将新档案的权限/属性写入;
c. 根据 block bitmap 找到没有使用中的 block 号码,并将实际的数据写入 block 中,且更新inode 的 block 指向数据;
d. 将刚刚写入的inode 与 block 数据同步更新 inode bitmap 与 block bitmap,并更新superblock 的内容。