跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Linux 磁盘基础:物理结构、CHS 与 LBA 寻址原理

Linux 磁盘存储涉及物理结构与逻辑抽象。文章解析盘片、磁头、扇区等硬件组成,阐述 CHS 三维坐标寻址的局限性及 LBA 线性地址的优势。通过公式详解 CHS 与 LBA 的双向转换逻辑,帮助理解文件系统与分区管理的底层机制。

道系青年发布于 2026/2/17更新于 2026/6/218 浏览
Linux 磁盘基础:物理结构、CHS 与 LBA 寻址原理

Linux 磁盘基础:从物理结构到 CHS/LBA 寻址

在这里插入图片描述

前言

磁盘是 Linux 系统中唯一的机械设备,也是数据持久化存储的核心载体。想要理解文件系统、分区、格式化等上层概念,必须先搞懂磁盘的物理结构、逻辑结构和寻址方式——这是掌握 Linux 存储原理的基础。本文从磁盘硬件结构入手,逐步拆解磁道、柱面、扇区等关键概念,最终讲透 CHS 和 LBA 两种寻址方式的原理与转换逻辑。

一。磁盘硬件基础:机械结构与存储单元

在这里插入图片描述

1.1 磁盘物理组成

机械磁盘的核心部件功能分工明确,类比日常物品更容易理解:

  • 盘片(Platter):类似'记录数据的光盘',一个磁盘可能有多个盘片,每个盘片有上下两个盘面(双面存储);
  • 磁头(Head):类似'读写笔',每个盘面对应一个磁头,负责读取/写入盘面数据;
  • 磁道(Track):盘片旋转时,磁头划过的圆形轨迹(类似光盘上的环形纹路),从外圈到内圈编号(0 磁道、1 磁道…);
  • 扇区(Sector):磁道被分割的扇形区域,是磁盘最小存储单位,默认大小 512 字节,所有磁道的扇区数量相同;
  • 柱面(Cylinder):所有盘片上半径相同的磁道组成的'圆柱状'逻辑结构(磁头同步移动,同时访问所有盘面的同编号磁道);
  • 主轴(Spindle):带动盘片高速旋转(转速常见 7200 转/分钟),配合磁头移动实现数据寻址。

💡核心结论:磁盘存储数据的物理单元是扇区,而磁头、柱面、扇区三者共同构成了数据的物理定位坐标。

❓️**如何定位一个扇区呢?**可以先定位磁头(head)确定要访问哪一个柱面 (cylinder),再定位一个扇区 (sector)。CHS 地址定位(但是 OS 并不愿意直接使用这种方法,后面会讲)

在这里插入图片描述

在这里插入图片描述

1.2 磁盘容量计算

磁盘总容量由硬件参数直接决定,公式固定: 磁盘容量 = 磁头数 × 柱面数(磁道数) × 每磁道扇区数 × 每扇区字节数(默认 512 字节)

  • :一个磁盘有 2 个盘片(4 个盘面)、1024 个柱面、每磁道 63 个扇区,容量计算为:
示例
4 × 1024 × 63 × 512 = 131072 × 512 = 67108864 字节 = 64 MB

1.3 核心概念辨析:磁道、柱面、扇区

很多初学者会混淆磁道、柱面、扇区的关系,用'多层同心圆'模型就能快速理解:

  • 单个盘面:磁道是'同心圆',扇区是'同心圆上的扇形切片';
  • 多个盘面:所有盘面中'半径相同的磁道'组合成'柱面'(比如盘面 0 的 0 磁道、盘面 1 的 0 磁道… 共同构成 0 柱面);
  • 关键特性:磁头移动时同步进退,一次只能访问一个柱面的所有磁道(所有磁头同时工作),这是后续寻址方式设计的核心依据。

二。磁盘逻辑结构:系统对物理硬件的抽象

磁盘的逻辑结构是操作系统对物理硬件的'简化抽象',核心是将复杂的三维物理结构(盘片→磁道→扇区)转化为易于管理的线性结构,这也是 LBA 寻址能实现的基础。

2.1 多维度理解和理清磁盘逻辑结构

先看看下图的理解过程 (后面再来看更真实过程):

在这里插入图片描述

再来看看真实过程:逻辑结构是物理结构的'镜像抽象',映射规则固定:

在这里插入图片描述

在这里插入图片描述

2.2 逻辑结构的本质

从系统视角来看,磁盘被抽象成一个一维的扇区数组:

  • 数组的每个元素就是一个物理扇区(默认 512 字节);
  • 数组的下标就是 LBA 地址(从 0 开始连续编号);
  • 数组元素的顺序严格遵循'先扇区→再磁头→最后柱面'的物理存储顺序(后续 LBA 映射逻辑)。

在这里插入图片描述

这种抽象让系统无需关心'哪个盘片、哪个磁道',只需像操作普通数组一样,通过 LBA 地址(下标)访问对应的扇区,极大简化了文件存储、分区管理等上层逻辑。

2.3 逻辑结构的核心优势

  • 地址连续化:物理扇区在逻辑上呈线性排列,系统可通过'连续 LBA 地址'实现连续存储,减少磁头移动,提升读写效率;
  • 硬件无关化:逻辑结构屏蔽了不同磁盘的硬件差异(如磁头数、每磁道扇区数),系统用统一的 LBA 地址访问所有磁盘;
  • 管理简化:文件系统可直接基于逻辑扇区划分'块'(如 4KB 块 = 8 个扇区),无需关注物理硬件细节。

三。CHS 寻址:早期的物理坐标定位

3.1 CHS 寻址原理

CHS 是'柱面(Cylinder)、磁头(Head)、扇区(Sector)'的缩写,是最早的磁盘寻址方式——直接使用物理部件的坐标定位扇区,逻辑直观:

  • 第一步:磁头移动到目标柱面(确定'半径方向位置');
  • 第二步:选择目标盘面的磁头(确定'哪个盘面');
  • 第三步:等待盘片旋转,目标扇区转到磁头下方(确定'磁道上的具体位置')。

例如:通过 CHS(2, 1, 5) 可精准定位'2 号柱面、1 号磁头、5 号扇区'对应的物理扇区,其实 CHS 对应的就是数组 (三维数组) 的下标。

3.2 CHS 的局限性

CHS 寻址完全依赖硬件参数,存在明显缺陷:

  • 容量限制:早期系统用 8 位存储磁头数、10 位存储柱面数、6 位存储扇区数,最大支持容量仅约 8GB(256×1024×63×512 字节),无法满足大磁盘需求;
  • 硬件依赖:不同磁盘的磁头数、扇区数可能不同,系统需适配不同硬件参数,兼容性差;软硬件耦合度高;
  • 地址不连续:物理坐标分散,不利于系统简化存储管理逻辑。

四。LBA 寻址:系统层面的线性地址

4.1 LBA 寻址原理

LBA(Logical Block Address)即'逻辑块地址',是对 CHS 的抽象优化——直接使用逻辑结构中'一维扇区数组的下标'作为地址,把三维物理坐标(C/H/S)转化为一维线性地址,系统无需关心硬件细节。 核心优势:

  • 地址连续:系统只需操作线性整数(如 LBA=1024),无需关注磁头、柱面等硬件参数;
  • 容量无限制:线性地址不受硬件位数限制,支持大容量磁盘(如 LBA-48 标准支持 128PB 容量);
  • 硬件无关:磁盘内部自行完成 LBA 与 CHS 的转换,系统层统一接口。

4.2 LBA 与物理扇区的映射逻辑

LBA 的编号规则完全遵循逻辑结构的数组顺序,确保地址连续对应物理存储的连续性:

  • 同一柱面内:先遍历所有磁头(所有盘面),每个磁头遍历对应磁道的所有扇区;
  • 跨柱面:一个柱面遍历完后,再进入下一个柱面重复上述过程。

五。CHS 与 LBA 的转换:底层核心逻辑

系统使用 LBA 寻址 (OS 认 LBA),而磁盘硬件只识别 CHS 坐标,因此必须进行双向转换——转换逻辑由磁盘固件(硬件电路)自动完成,无需用户干预,但理解转换公式能更深入掌握寻址本质。

5.1 关键前提参数

转换前需明确磁盘的三个固定参数(系统开机时从磁盘获取):

  • H:总磁头数;
  • S:每磁道扇区数;
  • 单个柱面的扇区总数 = H × S(所有磁头的所有扇区)。

5.2 CHS 转 LBA(物理坐标→线性地址)

  • 公式:LBA = 柱面号(C)× 单个柱面扇区数(H×S) + 磁头号(H)× 每磁道扇区数(S) + 扇区号(S) - 1
  • 扇区号(S)从 1 开始(硬件约定),LBA 从 0 开始,因此需减 1;
  • 示例:磁盘 H=4、S=4,CHS (0,1,2) 转换为 LBA:LBA = 0×(4×4) + 1×4 + 2 - 1 = 0 + 4 + 1 = 5

5.3 LBA 转 CHS(线性地址→物理坐标)

  • 公式:
    • 柱面号(C)= LBA ÷ 单个柱面扇区数(H×S) (整除)
    • 剩余扇区数 = LBA % 单个柱面扇区数(H×S) (取余)
    • 磁头号(H)= 剩余扇区数 ÷ 每磁道扇区数(S) (整除)
    • 扇区号(S)= 剩余扇区数 % 每磁道扇区数(S) + 1 (取余后 +1,适配硬件编号)
  • 示例:磁盘 H=4、S=4,LBA=5 转换为 CHS:

单个柱面扇区数 = 4×4=16; C=5÷16=0; 剩余扇区数 = 5%16=5; H=5÷4=1; S=5%4 +1=1+1=2; 结果:CHS (0,1,2)(与前面示例反向验证一致)。

5.4 图示深入理解(重点看,很详细)

在这里插入图片描述

结尾

磁盘的物理结构、逻辑结构和寻址方式是 Linux 存储的'地基'——后续的分区(按柱面划分)、文件系统(管理扇区/块)、格式化(写入文件系统元数据)等操作,都依赖本文讲解的底层逻辑。理解 CHS 到 LBA 的演进,能帮你明白'系统如何屏蔽硬件差异'的设计思想,这也是 Linux'一切皆文件'抽象理念的底层体现。

目录

  1. Linux 磁盘基础:从物理结构到 CHS/LBA 寻址
  2. 前言
  3. 一。磁盘硬件基础:机械结构与存储单元
  4. 1.1 磁盘物理组成
  5. 1.2 磁盘容量计算
  6. 1.3 核心概念辨析:磁道、柱面、扇区
  7. 二。磁盘逻辑结构:系统对物理硬件的抽象
  8. 2.1 多维度理解和理清磁盘逻辑结构
  9. 2.2 逻辑结构的本质
  10. 2.3 逻辑结构的核心优势
  11. 三。CHS 寻址:早期的物理坐标定位
  12. 3.1 CHS 寻址原理
  13. 3.2 CHS 的局限性
  14. 四。LBA 寻址:系统层面的线性地址
  15. 4.1 LBA 寻址原理
  16. 4.2 LBA 与物理扇区的映射逻辑
  17. 五。CHS 与 LBA 的转换:底层核心逻辑
  18. 5.1 关键前提参数
  19. 5.2 CHS 转 LBA(物理坐标→线性地址)
  20. 5.3 LBA 转 CHS(线性地址→物理坐标)
  21. 5.4 图示深入理解(重点看,很详细)
  22. 结尾
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 深入理解 C++ 多态:虚函数、重写与底层原理
  • uv 虚拟环境管理:venv 创建、激活与 Python 版本指定
  • 基于 DeepFace 与 OpenCV 的实时情绪分析实战
  • 项目管理岗位:为何技能比学历更关键
  • 华为 ICT 大赛 2024-2025 网络赛道考试分析
  • 快速排序非递归实现详解
  • 快递投放问题:多语言算法题解
  • 深度学习模型优化策略与实战调参
  • Spatial Joy 2025 全球 AR&AI 赛事:开发者资源、玩法与避坑攻略
  • Go Web 开发基础:模板引擎与控制器实战
  • Sora2 Pro API Python 接入指南:4K 视频生成实战
  • Windows 10 系统安装 MySQL 9.4.0 教程
  • VS Code Copilot 完整使用教程(含图解)
  • PVE LXC 环境下为 OpenClaw 定制 Python 3.12 编译指南
  • 前端 GraphQL 客户端实战:如何优雅地获取数据
  • 在 Cursor 中配置和使用 MCP 服务
  • C++ 哈希表封装实战:模拟实现 unordered_map 与 unordered_set
  • C++ 数组逆置实现详解及源码
  • 2026 边缘 AI 视觉白皮书:算法固化与产线工程师转型
  • 自然语言处理在金融风控中的实战应用

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online