Linux系统中的磁盘格式

本文深入解析Linux下的磁盘物理结构与文件系统概念,包括EXT2/EXT3/EXT4格式的特点,磁盘组成如扇区、磁柱、主轴马达,以及MBR与GPT分区表的区别。探讨了文件系统的数据存储原理,如superblock、inode和block的作用,还介绍了日志式文件系统的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常见的磁盘格式

linux是最传统的磁盘文件系统(filesystem)使用的是EXT2格式,所以要了解 linux 的文件体统就得从认识EXT2开始,而文件系统建在磁盘上的,因此了解物理组成是重点关注的目标。

整颗圆盘由以下部分组成:

  • 圆形的磁盘盘(主要记录数据部分);
  • 机械手臂,与子啊机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);
  • 主轴马达。可以转动磁盘盘,让机械手的读取头在磁盘盘上读写数据 。
  • 扇区是最小的物理存储单位,且依据磁盘设计的不同,目前主要有 512 bytes  和 4K 两种格式。
  • 将扇区组成一个圆,那就是磁柱(Cylinder);
  • 早期的分区主要以磁柱为最小分区单位,现在的分区通常使用扇区为最小区单位(每个扇区都有其码号,就像座位号一样)
  • 磁盘分区表主要有两种格式,一种是限制较多的MBR 分区表,一种是较新且限制较少的 GTP 分区表。
  • MBR 分区表中,第一个扇区最重要,里边有:(1)主要开机区(master boot  record MBR)及分表(partition table),其中MBR 占有446 bytes,而 partition 则占有  64 bytes。
  • GPT 分区表除了分区数量较多之外,支持的磁盘容量也可以超过 2TB。

至于磁盘的文件名部分,基本上 ,所有实体磁盘的文件名都已经被模拟成 /dev/sd[a-p] 的格式,第一颗磁盘文件名为 /dev/sda。而分区槽的档名若以第一颗磁盘为例,则为 /dev/sda[1-128]。除了实体磁盘以外,虚拟机的磁盘通常为 /dev/vd[a-p]。

  • /dev/sd[a-p][1-128]:为实体磁盘的磁盘文件名
  • /dev/vd[a-d][1-128]:为虚拟次磁盘的文件名 

知识点总结:

  • 一个可被挂载的数据为一个文件系统而不是一个分区槽。
  • 文件系统通常会将这两部分的数据分别存放在不同的区块,权限与属性放置到inode中,至于实际数据则放置到dat和 block 区块中。
  • superblock: 记录此filesystem 的整体信息,包括inode/block的总量,使用量,剩余量,以及文件系统的格式与相关 的信息等。
  • inode:记录文件的属性,一个文件占有一个inode,同时记录此文件的数据所在的block号码。
  • block: 实际记录的文件内容,若文件太大时,会占用多个 block。
  • 原则上,block 的大小数量在格式化完整后就不能再改变了(除非重新格式化);
  • 每个 block 内最多只能够放置一个文件的数据;

 

 

 

二、EXT2/EXT3/EXT4  文件的存取与日志式文件系统的功能

1、如果我们想要新增一个文件或者目录时,我们因该考虑以下问题。

1、先确定用户对于新增的文件的目录是否具有  w 与 x  权限,若有才能新增;

2、根据 inode  bitmap  找到没有使用的inode  号码,并将新文件的权限/属性写入;

3、根据 block  bitmap  找到没有使用中的block 号码,并将实际的数据写入block 中。且更新 inode 的block指向数据。

4、将刚刚写入的inode  与 block  数据同步更新 inode bitmap  与 block  bitmap ,并更suoerblock 的内容。

2、日志式文件系统 

1、预备:当系统要写入一个文件时,会再日志记录区块中记录某个文件准备写入的信息;

2、实际写入:开始写入文件的权限与数据,开始更新 medata 的数据;

3、结束:完成数据与metadata 的更新后,在日志区块中完成该文件的记录。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值