Linux 磁盘管理详解:磁盘结构、RAID、MBR 分区、格式化与挂载

Linux 磁盘管理不是只会执行 fdisk 就够了。一块新硬盘从接入系统到真正存放文件,至少要经历"识别设备、创建分区、创建文件系统、挂载目录、配置永久挂载"几个阶段。中间任何一步遗漏,都会出现"系统能看到硬盘,但无法写文件""重启后挂载消失""修改 /etc/fstab 后系统进入紧急模式"等问题。
文章目录
- 一、磁盘基础知识
- [1.1 磁盘与内存的区别](#1.1 磁盘与内存的区别)
- [1.2 机械硬盘 HDD 与固态硬盘 SSD](#1.2 机械硬盘 HDD 与固态硬盘 SSD)
- [1.3 常见磁盘接口](#1.3 常见磁盘接口)
- [1.3.1 SATA 接口](#1.3.1 SATA 接口)
- [1.3.2 SAS 接口](#1.3.2 SAS 接口)
- [1.3.3 PCIe 接口](#1.3.3 PCIe 接口)
- [1.3.4 U.2 接口](#1.3.4 U.2 接口)
- [1.3.5 SATA 与 SAS 接口对比](#1.3.5 SATA 与 SAS 接口对比)
- [1.3.6 接口选择速查](#1.3.6 接口选择速查)
- [1.4 企业环境磁盘选型](#1.4 企业环境磁盘选型)
- [1.5 机械硬盘内部结构](#1.5 机械硬盘内部结构)
- [1.6 固态硬盘内部结构](#1.6 固态硬盘内部结构)
- [二、RAID 磁盘阵列](#二、RAID 磁盘阵列)
- [2.1 RAID 的作用](#2.1 RAID 的作用)
- [2.1.1 RAID 的实现方式](#2.1.1 RAID 的实现方式)
- [2.1.2 RAID 常见术语与运行状态](#2.1.2 RAID 常见术语与运行状态)
- [2.1.3 Linux 中查看 RAID 状态](#2.1.3 Linux 中查看 RAID 状态)
- [2.2 RAID 0](#2.2 RAID 0)
- [2.2.1 条带化与容量计算](#2.2.1 条带化与容量计算)
- [2.2.2 启动与写入演示](#2.2.2 启动与写入演示)
- [2.2.3 单盘故障演示](#2.2.3 单盘故障演示)
- [2.2.4 重建演示](#2.2.4 重建演示)
- [2.3 RAID 1](#2.3 RAID 1)
- [2.3.1 镜像与容量计算](#2.3.1 镜像与容量计算)
- [2.3.2 启动与写入演示](#2.3.2 启动与写入演示)
- [2.3.3 单盘故障演示](#2.3.3 单盘故障演示)
- [2.3.4 镜像重建演示](#2.3.4 镜像重建演示)
- [2.4 RAID 5](#2.4 RAID 5)
- [2.4.1 分布式奇偶校验与容量](#2.4.1 分布式奇偶校验与容量)
- [2.4.2 启动与写入演示](#2.4.2 启动与写入演示)
- [2.4.3 单盘故障与降级演示](#2.4.3 单盘故障与降级演示)
- [2.4.4 软件与硬件重构演示](#2.4.4 软件与硬件重构演示)
- [2.5 RAID 10](#2.5 RAID 10)
- [2.5.1 镜像加条带与容量](#2.5.1 镜像加条带与容量)
- [2.5.2 启动与写入演示](#2.5.2 启动与写入演示)
- [2.5.3 镜像成员故障演示](#2.5.3 镜像成员故障演示)
- [2.5.4 镜像重建演示](#2.5.4 镜像重建演示)
- [2.6 RAID 级别对比与选择](#2.6 RAID 级别对比与选择)
- [2.1 RAID 的作用](#2.1 RAID 的作用)
- [三、MBR 分区前置知识](#三、MBR 分区前置知识)
- [3.1 MBR 的结构](#3.1 MBR 的结构)
- [3.2 主分区、扩展分区和逻辑分区](#3.2 主分区、扩展分区和逻辑分区)
- [3.3 磁盘设备命名](#3.3 磁盘设备命名)
- [3.4 分区命名](#3.4 分区命名)
- [四、MBR 磁盘分区实操](#四、MBR 磁盘分区实操)
- [4.1 分区、格式化与挂载的关系](#4.1 分区、格式化与挂载的关系)
- [4.2 添加硬盘并确认设备](#4.2 添加硬盘并确认设备)
- [4.3 使用 fdisk 创建 20MB 分区](#4.3 使用 fdisk 创建 20MB 分区)
- [4.4 使用剩余空间创建分区](#4.4 使用剩余空间创建分区)
- [4.5 创建文件系统](#4.5 创建文件系统)
- [4.6 临时挂载与卸载](#4.6 临时挂载与卸载)
- [4.7 使用 fstab 永久挂载](#4.7 使用 fstab 永久挂载)
- [4.8 挂载光盘](#4.8 挂载光盘)
- 五、常用检查与排错命令
- 总结
- 六、注意事项
一、磁盘基础知识
1.1 磁盘与内存的区别
内存和磁盘都能保存数据,但用途和工作方式完全不同。
- 内存(RAM)保存 CPU 当前需要快速访问的数据,速度快,但断电后数据通常丢失。
- 磁盘用于长期保存操作系统、程序、日志和业务数据,断电后数据仍然保留。
| 特性 | 内存 RAM | 磁盘 HDD/SSD |
|---|---|---|
| 存储性质 | 易失性临时存储 | 非易失性长期存储 |
| 断电后数据 | 通常丢失 | 保留 |
| 访问速度 | 极快 | HDD 较慢,SSD 较快 |
| 容量 | 相对较小 | 相对较大 |
| 主要用途 | 保存正在运行的程序和数据 | 保存系统、软件、文件和日志 |
| 物理形式 | DRAM 芯片 | 机械盘片或 NAND 闪存 |
| 成本 | 每 GB 成本较高 | 每 GB 成本通常更低 |
需要注意,SSD 虽然名字里也有"硬盘",但它不依赖磁记录,而是使用 NAND 闪存保存数据。因此更准确的说法是:长期存储设备主要包括机械硬盘和固态硬盘。
1.2 机械硬盘 HDD 与固态硬盘 SSD
机械硬盘 HDD 通过高速旋转的磁性盘片和移动磁头读写数据;固态硬盘 SSD 通过电子信号访问 NAND 闪存,没有磁头、电机等机械活动部件。
| 特性 | 机械硬盘 HDD | 固态硬盘 SSD |
|---|---|---|
| 存储介质 | 磁性盘片 | NAND 闪存颗粒 |
| 读写方式 | 磁头移动并等待盘片旋转 | 控制器通过电子信号访问闪存 |
| 顺序速度 | 常见约 100~250 MB/s | SATA SSD 常见约 500 MB/s,NVMe SSD 可达数 GB/s |
| 随机访问延迟 | 毫秒级 | 微秒级到较低毫秒级 |
| 抗震性 | 较弱,运行中碰撞风险高 | 较强,无机械寻道结构 |
| 噪音 | 有电机和磁头声音 | 基本静音 |
| 功耗 | 相对较高 | 通常较低,高性能 NVMe 也可能明显发热 |
| 常见故障 | 电机、磁头、盘片、坏道 | NAND 磨损、控制器或固件故障 |
| 数据恢复 | 部分物理故障可以专业开盘恢复 | 控制器或芯片损坏时恢复难度通常更高 |
| 典型优势 | 大容量、每 TB 成本低 | 低延迟、高随机性能、抗震 |
磁盘性能不能只看顺序带宽。数据库、虚拟化和高并发小文件场景更依赖随机 IOPS 和延迟;备份、归档、大文件顺序读写则更关注容量和顺序吞吐。
1.3 常见磁盘接口
磁盘接口决定存储设备怎样连接主机、使用哪条传输通道以及采用什么命令协议,直接影响性能、兼容性、可靠性和维护方式。日常所说的"磁盘接口"经常把下面几个概念混在一起:
| 概念 | 解决的问题 | 常见例子 |
|---|---|---|
| 外形规格 | 设备有多大、怎样安装 | 3.5 英寸、2.5 英寸、M.2 2280、PCIe 插卡 |
| 物理连接器 | 插头和插座长什么样 | SATA 接头、SAS 接头、U.2 接头、M Key 金手指 |
| 传输总线 | 数据通过哪条通道传输 | SATA、SAS、PCIe |
| 命令协议 | 主机怎样向磁盘下达读写命令 | ATA/AHCI、SCSI、NVMe |
这几个概念不能直接画等号。例如,M.2 是外形规格,M.2 SSD 既可能使用 SATA/AHCI,也可能使用 PCIe/NVMe;U.2 是面向 2.5 英寸设备的连接形态,常见 U.2 SSD 实际传输的是 PCIe/NVMe;PCIe 则是一种高速总线,可以承载 NVMe 固态硬盘,也可以连接网卡、显卡等其他设备。
| 常见称呼 | 主要总线或协议 | 常见设备形态 | 典型特点 | 常见场景 |
|---|---|---|---|---|
| SATA | SATA + ATA/AHCI | 3.5 英寸 HDD、2.5 英寸 HDD/SSD | 兼容广、成本低、性能上限较低 | PC、备份盘、普通服务器 |
| SAS | SAS + SCSI | 2.5/3.5 英寸企业 HDD、企业 SSD | 双端口、可靠性和队列能力较强 | 服务器、磁盘阵列、共享存储 |
| PCIe/NVMe | PCIe + NVMe | M.2、PCIe AIC 插卡、U.2 | 低延迟、高并发、高吞吐 | PC、数据库、虚拟化、高性能计算 |
| U.2 | 常见为 PCIe + NVMe | 带金属外壳的 2.5 英寸企业 SSD | 易散热,适合背板和热插拔维护 | 数据中心服务器、全闪存阵列 |
1.3.1 SATA 接口

SATA 全称 Serial ATA,是 PATA 之后普及最广的串行存储接口。原资料图片展示了 SATA 硬盘尾部两个彼此分开的接口:
- SATA 数据接口:通常为 7 针,负责传输命令和数据,需要连接主板或磁盘控制器。
- SATA 供电接口:通常为 15 针,由电源或服务器背板为磁盘供电。
- 两个接口都带有防反插的 L 形缺口,安装时应对准方向,不能强行插入。
- 常见设备包括 3.5 英寸机械硬盘、2.5 英寸机械硬盘、2.5 英寸 SATA SSD 和部分光驱。
常见的 SATA 3.0 链路标称速率为 6Gb/s。受编码和协议开销影响,2.5 英寸 SATA SSD 的实际顺序读写上限通常在 500~550MB/s 左右;机械硬盘受盘片和磁头限制,通常远达不到接口上限。因此,接口带宽并不等于磁盘一定能跑到的实际速度。
SATA 设备是否支持热插拔,还取决于控制器工作模式、驱动、背板、电源设计和操作系统配置,不能仅凭接口外形判断。
1.3.2 SAS 接口

SAS 全称 Serial Attached SCSI,主要面向服务器和企业存储。它继承了 SCSI 命令体系,通常比消费级 SATA 更强调并发访问、故障恢复、冗余链路和长时间持续运行。
- 企业 SAS 硬盘常见 10K RPM、15K RPM 机械盘,也有 SAS SSD。
- 双端口 SAS 磁盘可以通过两条独立路径连接控制器,方便构建冗余访问链路。
- SAS 适合磁盘柜、存储阵列和需要多路径访问的服务器场景。
- SAS 控制器、背板和磁盘通常支持更完善的错误报告与管理能力,但成本也高于普通 SATA 方案。
需要注意,热插拔和双路径并不是插上一块 SAS 硬盘就自动实现。服务器背板、RAID/HBA 控制器、线缆和操作系统都必须支持对应能力。
1.3.3 PCIe 接口

原资料中的图片展示的是 PCIe AIC(Add-in Card,扩展卡)形态的固态硬盘,它通过金手指直接插入主板 PCIe 插槽。PCIe 本质上是高速总线,不是专门为磁盘定义的单一外形。
- PCIe 使用 Lane(通道)传输数据,常见规格有
x1、x4、x8和x16,数字表示通道数量。 - NVMe 固态硬盘常见使用 PCIe
x4通道,但实际带宽还取决于 PCIe 代际、控制器和闪存性能。 - 同样使用 PCIe/NVMe 的固态硬盘,可以做成 M.2 卡片、U.2 盘或 PCIe AIC 插卡。
- PCIe AIC 固态硬盘空间较大,便于布置更多闪存颗粒、控制器和散热器,但会占用主板扩展槽。
资料中把 PCIe 归为企业级接口,是基于早期高性能存储的常见应用。现在 PCIe/NVMe 已广泛用于台式机、笔记本和工作站,并不只属于企业环境。
1.3.4 U.2 接口

U.2 原名 SFF-8639,常见于带金属外壳的 2.5 英寸企业 NVMe SSD。它不是"和 PCIe 类似"的另一套传输协议,而是把 PCIe 通道、电源和管理信号引到 2.5 英寸设备上的连接方案,常见上层存储协议为 NVMe。
- 外壳与普通 2.5 英寸硬盘相近,但接头、电气定义和协议并不相同。
- 通过服务器前置背板可以方便地插拔和更换磁盘,更适合批量维护。
- 金属外壳和更大的表面积有利于散热,适合持续高负载运行。
- 常见于数据库服务器、虚拟化平台、全闪存阵列和高性能存储节点。
U.2 SSD 不能因为外形像 2.5 英寸 SATA/SAS 硬盘,就直接插到普通 SATA 接口上使用。主板、HBA/RAID 控制器、背板和线缆必须明确支持 U.2 或对应的 PCIe/NVMe 通道;部分企业三模控制器可以同时管理 SAS、SATA 和 NVMe,但仍要核对具体型号。
1.3.5 SATA 与 SAS 接口对比

SATA 和 SAS 硬盘的外形很接近,最直观的区别在接头中间区域。SATA 的数据接口与供电接口之间有明显断口;常见 SAS 盘的连接区域是连续结构,并包含额外信号触点。不能只看硬盘尺寸判断接口类型。
| 对比项 | SATA | SAS |
|---|---|---|
| 定位 | 消费级和通用存储 | 企业服务器和存储阵列 |
| 常见命令体系 | ATA/AHCI | SCSI |
| 端口设计 | 常见单端口 | 企业盘常见双端口 |
| 可靠性与管理 | 满足个人和普通服务器需求 | 更强调多路径、错误处理和持续负载 |
| 常见设备 | 大容量 HDD、2.5 英寸 SATA SSD | 10K/15K HDD、企业 SAS SSD |
| 控制器兼容关系 | SATA 控制器通常只能接 SATA 盘 | SAS 控制器通常可以接 SAS 盘,也常能兼容 SATA 盘 |
这里最容易记反的是兼容方向:SAS 控制器通常可以识别 SATA 磁盘,普通 SATA 控制器通常不能识别 SAS 磁盘。即便控制器支持,也要继续确认服务器背板、托架和线缆是否兼容。
1.3.6 接口选择速查
| 需求 | 常见选择 | 选择原因 |
|---|---|---|
| 大容量备份和归档 | SATA HDD | 单位容量成本低,适合顺序读写 |
| 普通系统盘和旧设备升级 | 2.5 英寸 SATA SSD | 兼容性广,延迟明显低于 HDD |
| 笔记本和桌面高性能存储 | M.2 PCIe/NVMe SSD | 体积小、延迟低、吞吐高 |
| 传统企业服务器机械盘 | SAS HDD | 适合背板、阵列和持续负载 |
| 企业级高性能闪存 | U.2 NVMe SSD、PCIe AIC SSD | 散热、吞吐和维护能力更适合服务器 |
复习时可以抓住四句话:SATA 重在普及和成本,SAS 重在企业可靠性,PCIe 提供高速通道,U.2 把 PCIe/NVMe 做成便于服务器维护的 2.5 英寸形态。
1.4 企业环境磁盘选型
资料中的选型建议来自传统物理服务器场景:备份偏向大容量 SATA,业务服务器可能使用高速 SAS,高并发业务使用企业 SSD。实际选型还要结合 IOPS、延迟、容量、耐久度、冗余方式、是否支持热插拔和预算综合判断。
| 工作负载 | 更关注的指标 | 常见选择思路 |
|---|---|---|
| 备份与归档 | 容量、每 TB 成本、顺序吞吐 | 大容量 SATA/NL-SAS HDD,配合 RAID 和异地副本 |
| 操作系统盘 | 可靠性、启动速度、维护方便 | RAID 1 SSD 或企业 HDD |
| 普通 Web 服务 | 读性能、容量和成本平衡 | 企业 SATA/SAS SSD 或云盘 |
| 数据库与虚拟化 | 低延迟、高随机 IOPS、写入耐久 | 企业 NVMe/U.2 SSD,合理设置 RAID |
| 日志与缓存 | 顺序写、耐久度、故障可恢复性 | 根据数据价值选择 SSD、HDD 或分层存储 |
机械硬盘常见的 7200 RPM、10K RPM、15K RPM 表示每分钟转数,英文是 Revolutions Per Minute。转速越高通常寻道等待越短,但功耗、噪音和发热也更高。
在公有云中,用户通常看不到底层物理磁盘,需要关注云盘类型、IOPS、吞吐、容量、突发策略、快照和多副本能力。
1.5 机械硬盘内部结构

机械硬盘内部是精密的机械与电子系统,主要部件包括:
| 部件 | 作用 |
|---|---|
| 盘片 | 表面覆盖磁性材料,真正保存数据 |
| 主轴与主轴电机 | 带动盘片稳定高速旋转 |
| 磁头 | 悬浮在盘片表面附近,完成磁信号读写 |
| 磁头臂 | 带动磁头移动到不同磁道 |
| 音圈马达与执行器 | 精确控制磁头臂位置 |
| 停泊区 | 断电或空闲时让磁头离开数据区域 |
| 空气过滤组件 | 控制盘腔内部微粒,不能当作普通可拆洗滤网 |
| 控制器 PCB | 负责接口通信、缓存、马达与磁头控制 |
| 缓存芯片 | 缓冲部分读写请求,容量通常远小于盘片容量 |
| 外壳与密封盖 | 维持精密盘腔环境并固定组件 |
磁道、扇区和柱面

- 磁道:盘片表面的同心圆区域。
- 扇区:磁道上的数据块。传统逻辑扇区常见 512 字节,现代磁盘也常见 4K 物理扇区。
- 柱面:传统 CHS 寻址中的概念,表示多个盘面上半径相同的磁道集合。
现代系统主要使用 LBA 逻辑块地址,不再依赖管理员手工计算柱面,但理解这些概念有助于认识 MBR 和早期磁盘结构。
1.6 固态硬盘内部结构

上图展示的是常见的 2.5 英寸 SATA SSD。它使用与 2.5 英寸笔记本机械硬盘相近的外形,通过 SATA 数据接口和 SATA 电源接口连接主机。
固态硬盘没有盘片和磁头,主要由电子元件组成:
| 部件 | 作用 |
|---|---|
| NAND 闪存颗粒 | 长期保存数据,是 SSD 的主要容量来源 |
| SSD 控制器 | 负责地址映射、垃圾回收、磨损均衡、纠错和接口通信 |
| DRAM 缓存 | 保存映射表和缓存数据,部分无 DRAM 型号没有独立 DRAM |
| 电源管理与保护电路 | 稳压、供电管理,部分企业盘带掉电保护 |
| PCB 电路板 | 连接控制器、闪存、缓存和接口 |
| SATA 或 PCIe/NVMe 接口 | 连接主机并传输命令和数据 |
| 导热垫与外壳 | 保护元件并帮助散热,不同形态结构不同 |
笔记本电脑和现代主板中还常见细长的 M.2 固态硬盘。下面这张图只展示 M.2 2280 NVMe SSD 本体及其内部元件。

需要特别注意:M.2 描述的是外形规格,NVMe 描述的是存储协议,二者不是同一个概念。外观看起来相似的 M.2 固态硬盘,可能使用 SATA 协议,也可能使用 PCIe 通道上的 NVMe 协议。
| 类型 | 外形与通道 | 主要特点 |
|---|---|---|
| 2.5 英寸 SATA SSD | 2.5 英寸外壳,通过 SATA 数据线和电源线连接 | 兼容性广,顺序传输速度通常受 SATA 6Gb/s 限制,常见上限约 550MB/s |
| M.2 SATA SSD | M.2 卡片外形,但仍使用 SATA 协议 | 体积更小,性能通常与 2.5 英寸 SATA SSD 接近 |
| M.2 NVMe SSD | M.2 卡片外形,通过 PCIe 通道运行 NVMe 协议 | 延迟更低、吞吐量更高,具体速度取决于 PCIe 代际和通道数 |
M.2 2280 中的 22 表示宽度约 22 毫米,80 表示长度约 80 毫米。M.2 设备还可能使用 B Key、M Key 或 B+M Key 缺口;常见的 PCIe x4 NVMe SSD 多为 M Key。安装前必须查看笔记本或主板说明,确认插槽支持的尺寸、协议和 Key 类型,因为并非所有 M.2 插槽都同时支持 SATA 与 NVMe。
SSD 的"写入次数限制"不是写几次就坏,而是 NAND 擦写寿命有限。产品通常使用 TBW、DWPD 等指标描述耐久度。控制器会通过磨损均衡,把写入尽量分散到不同闪存单元。
二、RAID 磁盘阵列

2.1 RAID 的作用
RAID 全称 Redundant Array of Independent Disks,即独立磁盘冗余阵列。它按照一定规则把多块物理磁盘组合成一个逻辑磁盘,让操作系统像使用一块磁盘一样使用整个阵列。
RAID 主要在三个目标之间取舍:
- 性能:把数据分散到多块盘并行读写。
- 容量:把多块盘的可用空间组合起来。
- 容错:通过镜像或校验信息,在部分成员盘故障后继续提供数据。
没有一种 RAID 能同时做到容量利用率最高、性能最高、容错最强。RAID 级别不同,本质上就是对这三个目标做不同取舍。
必须先记住:RAID 不是备份。RAID 可以应对规定范围内的磁盘故障,但无法防止误删除、勒索软件、文件系统损坏、控制器故障、机房事故和错误同步。重要数据仍然需要独立备份、异地副本和恢复验证。
2.1.1 RAID 的实现方式
| 实现方式 | 工作位置 | 主要特点 | 注意事项 |
|---|---|---|---|
| 硬件 RAID | 独立 RAID 控制器 | 操作系统通常只看到控制器提供的逻辑磁盘,可带缓存和掉电保护 | 成本较高,需要关注控制器、缓存电池和阵列配置备份 |
| 软件 RAID | 操作系统内核 | Linux 常用 mdadm 管理,配置透明、成本低、迁移灵活 |
会使用主机 CPU 和内存,系统盘恢复流程要提前演练 |
| 主板固件 RAID | BIOS/UEFI 与驱动共同实现 | 常见于部分桌面和入门服务器,介于硬件与软件之间 | 对主板和驱动依赖较强,跨平台迁移要谨慎 |
硬件 RAID 并不天然比软件 RAID 安全。真正影响可靠性的因素还包括控制器固件、缓存策略、掉电保护、磁盘质量、监控告警、备件和恢复流程。
2.1.2 RAID 常见术语与运行状态
| 术语 | 含义 |
|---|---|
| 成员盘 | 加入阵列的物理磁盘 |
| 逻辑盘 | RAID 向操作系统提供的逻辑存储设备 |
| 条带 | 被分散到多块成员盘上的一组连续数据 |
| 条带单元 | 每次写入单块成员盘的数据块大小,也常被称为 chunk |
| 镜像 | 把同一份数据写到多个成员盘 |
| 奇偶校验 | 根据多个数据块计算出的校验信息,可用于重构缺失数据 |
| 热备盘 | 平时不承载正常数据,成员盘故障后可自动加入重建 |
| 重建 | 根据镜像副本或校验信息,把数据恢复到替换盘的过程 |
常见运行状态:
| 状态 | 含义 | 处理原则 |
|---|---|---|
| Optimal/Normal | 阵列和成员盘正常 | 持续监控即可 |
| Degraded | 冗余阵列已有成员盘故障,但数据仍可访问 | 立即确认故障盘并按规范更换 |
| Rebuilding | 正在向替换盘重建数据 | 监控进度、温度、负载和剩余成员盘健康状态 |
| Failed/Offline | 故障数量超出 RAID 容忍范围 | 停止盲目操作,按恢复预案处理 |
2.1.3 Linux 中查看 RAID 状态
Linux 软件 RAID 常用:
bash
cat /proc/mdstat
mdadm --detail /dev/md0
硬件 RAID 的物理成员盘通常藏在控制器后面,lsblk 可能只能看到逻辑盘。此时需要使用控制器厂商工具,例如 storcli、perccli 或 ssacli。具体命令取决于服务器和 RAID 卡型号,不能只看操作系统中的 /dev/sdX 判断成员盘是否健康。
2.2 RAID 0
RAID 0 只使用条带化,没有镜像,也没有奇偶校验。它追求容量和并行读写性能,不提供任何成员盘容错能力。
2.2.1 条带化与容量计算
假设一份数据被分成 A1~A6 六个数据块,两块成员盘中的分布可以理解为:
text
磁盘 1:A1 A3 A5
磁盘 2:A2 A4 A6
两块磁盘可以同时读写不同数据块,因此顺序吞吐和并发能力通常会提高。不过,阵列中的任意一块盘损坏,文件的一部分数据块就会缺失,整个阵列通常无法继续正常使用。
text
可用容量 = 成员盘数量 N × 最小成员盘容量
两块 1TB 磁盘组成 RAID 0,理论可用容量约 2TB。若使用一块 1TB 和一块 2TB 磁盘,通常只能按最小成员盘计算,有效容量约 2TB,较大磁盘多出的空间无法在该阵列中正常利用。
典型场景包括可重新生成的临时数据、渲染缓存和对吞吐要求高但不要求单盘容错的工作负载。重要数据不应只保存在 RAID 0 上。
2.2.2 启动与写入演示
写入时,数据块依次分散到不同成员盘,并组合成一个逻辑盘提供给上层系统。
raid0-startup
2.2.3 单盘故障演示
任意成员盘故障后,条带中的部分数据块丢失。即使其他磁盘仍然完好,也无法拼出完整数据。
raid0-failure
2.2.4 重建演示
录像中的 Format 会重新初始化阵列结构,使它能够重新写入,但这不等于恢复原数据。RAID 0 没有镜像和校验信息,故障后的原数据通常只能从独立备份恢复。
raid0-recovery
2.3 RAID 1
RAID 1 使用镜像,同一份数据同时写入多个成员盘。最常见的是两盘镜像,适合系统盘、数据库日志和容量不大但要求单盘容错的数据。
2.3.1 镜像与容量计算
text
磁盘 1:A1 A2 A3 A4
磁盘 2:A1 A2 A3 A4
两块盘保存完全相同的数据,因此:
text
两盘 RAID 1 可用容量 = 最小成员盘容量
两块 1TB 磁盘组成 RAID 1,可用容量约 1TB,容量利用率约 50%。如果一块是 1TB、另一块是 2TB,可用容量通常仍约为 1TB。
读取时,控制器可以根据实现从不同镜像成员分担读请求;写入时,每份数据都要写入所有镜像成员,写入延迟通常受较慢成员盘和控制器策略影响。不能简单理解为"两块盘让写入速度翻倍"。
2.3.2 启动与写入演示
写入逻辑盘的数据会同步复制到两块镜像成员上。
raid1-startup
2.3.3 单盘故障演示
一块成员盘故障后,阵列进入 Degraded 状态,但可以继续从另一块镜像盘读取数据。此时已经没有冗余,不能因为业务仍能访问就推迟处理。
raid1-failure
2.3.4 镜像重建演示
更换故障盘后,RAID 会把健康镜像盘的数据复制到新盘。重建完成前仍处于风险窗口,必须持续监控进度和健康盘状态。
raid1-recovery
更换磁盘前一定要根据序列号、槽位号和控制器告警确认故障成员。拔错健康盘可能让本来可用的 RAID 1 直接失效。
2.4 RAID 5
RAID 5 使用块级条带和分布式奇偶校验,在容量利用率和单盘容错之间做折中。它至少需要 3 块磁盘,常见于文件存储、NAS 和顺序读取较多的场景。
2.4.1 分布式奇偶校验与容量
奇偶校验可以用异或运算理解。假设两个数据块为 A、B,校验块为 P:
text
P = A XOR B
当 A 丢失时,可以通过下面的关系重构:
text
A = B XOR P
RAID 5 不会把所有校验块固定放在同一块盘,而是把它们轮流分散到不同成员盘,避免单独的校验盘成为固定瓶颈。
text
可用容量 = (成员盘数量 N - 1) × 最小成员盘容量
四块 1TB 磁盘组成 RAID 5,可用容量约 3TB。四块磁盘中如果有一块只有 500GB,阵列通常按 500GB 计算,可用容量约为 3 × 500GB = 1.5TB。
RAID 5 的读取性能通常较好,但小块随机写入需要更新数据和校验。常见的"读改写"过程包括读取旧数据、读取旧校验、计算新校验、写入新数据和新校验,因此随机写性能通常弱于 RAID 10。控制器缓存和整条带写入可以减轻开销,但不能让校验成本消失。
2.4.2 启动与写入演示
动画中的数据块和校验块分散在四块成员盘上,逻辑盘容量相当于其中三块盘。
raid5-startup
2.4.3 单盘故障与降级演示
一块盘故障后,RAID 5 可以利用其余数据块和校验块即时计算缺失数据,因此逻辑盘仍可访问,但阵列已经进入 Degraded 状态。降级读取会增加控制器、CPU 和剩余磁盘的压力。
raid5-failure
RAID 5 最多容忍一块成员盘故障。如果重建完成前再损坏一块盘,阵列通常会失败。因此,大容量磁盘、长时间重建和老化磁盘组合会扩大风险窗口。
2.4.4 软件与硬件重构演示
录像保留了两种恢复动画:
Recover S/W:用剩余数据和奇偶校验在逻辑层重构缺失内容,可以理解为降级状态下的实时计算。Recover H/W:加入替换盘后,把重构出的完整数据持续写回新盘,直到阵列恢复正常冗余。
raid5-recovery
这是用于理解原理的模拟分类。真实环境中,两种计算都可能由 RAID 控制器固件或 Linux 软件 RAID 完成。更换磁盘后要确认阵列确实进入 Rebuilding,并在完成后检查所有成员盘和一致性状态。
2.5 RAID 10
RAID 10 组合了 RAID 1 和 RAID 0 的思路:先把磁盘两两组成镜像组,再在多个镜像组之间做条带。它至少需要 4 块磁盘,通常使用偶数块。
2.5.1 镜像加条带与容量
四盘 RAID 10 可以理解为:
text
镜像组 A:磁盘 1 <-> 磁盘 2
镜像组 B:磁盘 3 <-> 磁盘 4
数据再在镜像组 A、B 之间条带化写入
text
可用容量 = (成员盘数量 N / 2) × 最小成员盘容量
四块 1TB 磁盘组成 RAID 10,可用容量约 2TB。它的容量利用率通常为 50%,但随机读写和重建性能通常优于 RAID 5,适合数据库、虚拟化、高负载业务和对恢复时间敏感的系统。
RAID 10 的容错能力取决于故障分布。四盘阵列中,如果损坏的两块盘分别来自不同镜像组,阵列可能仍然可用;如果同一个镜像组的两块成员都损坏,整个阵列会失败。因此不能简单说 RAID 10 "一定能坏两块盘"。
2.5.2 启动与写入演示
数据先在镜像组之间条带化,再在组内保留相同副本。
raid10-startup
2.5.3 镜像成员故障演示
一个镜像组中损坏一块成员盘后,另一个镜像成员仍然可以提供完整数据,阵列进入降级状态。
raid10-failure
2.5.4 镜像重建演示
更换故障盘后,只需从同一镜像组的健康成员复制数据到新盘,不需要像 RAID 5 那样遍历所有成员计算分布式校验,因此重建过程通常更直接。
raid10-recovery
2.6 RAID 级别对比与选择
| 级别 | 最少磁盘 | 常见容量公式 | 成员盘容错 | 写入特点 | 典型场景 |
|---|---|---|---|---|---|
| RAID 0 | 2 | N × Smin |
0 块 | 并行条带,无冗余开销 | 临时数据、可重建缓存 |
| RAID 1 | 2 | 一组镜像约为 Smin |
两盘镜像可坏 1 块 | 每份数据写入全部镜像成员 | 系统盘、日志、重要小容量数据 |
| RAID 5 | 3 | (N-1) × Smin |
1 块 | 小随机写有校验开销 | 文件服务器、NAS、读取较多的存储 |
| RAID 10 | 4 | (N/2) × Smin |
取决于故障是否落在同一镜像组 | 条带加镜像,随机 I/O 较好 | 数据库、虚拟化、高负载业务 |
其中 N 表示成员盘数量,Smin 表示最小成员盘容量。
选择 RAID 时不能只看容量公式,还要考虑:
- 单盘容量越大,重建通常越久,风险窗口也越长。
- 重建会降低阵列性能,并增加剩余成员盘的读取压力。
- 同一阵列尽量使用容量、性能和耐久度接近的磁盘。
- 热备盘只能缩短开始重建的等待时间,不能替代备份。
- RAID 控制器使用 Write Back 缓存时,应确认有电池或闪存掉电保护。
- 生产环境应监控 SMART、控制器告警、巡检结果和重建进度。
- 拔盘前必须核对槽位、序列号和故障灯,不能只凭
/dev/sdX名称判断。 - 大容量机械盘阵列还应评估 RAID 6 等双校验方案,但这超出本篇范围。
常见选择思路:系统盘优先考虑 RAID 1;随机 I/O 较多且重建时间敏感的数据库、虚拟化环境常考虑 RAID 10;读取较多、需要兼顾容量与单盘容错的文件存储可考虑 RAID 5;RAID 0 只适合丢失后能够重新生成的数据。
三、MBR 分区前置知识

3.1 MBR 的结构
MBR 全称 Master Boot Record,主引导记录。传统 MBR 位于磁盘第一个逻辑扇区,经典大小为 512 字节。
| 区域 | 大小 | 作用 |
|---|---|---|
| 引导代码 | 446 字节 | 早期启动代码,将控制权交给后续引导程序或活动分区 |
| 分区表 | 64 字节 | 4 个分区表项,每项 16 字节 |
| 结束标志 | 2 字节 | 典型值为 0x55AA |
总计:
text
446 + 64 + 2 = 512 字节
MBR 的主要局限:
- 只有 4 个分区表项。
- 最多创建 4 个主分区,或 3 个主分区加 1 个扩展分区。
- 在常见 512 字节逻辑扇区下,传统 MBR 可管理空间通常约 2TiB。
- 关键分区信息集中在磁盘前部,冗余和校验能力弱于 GPT。
3.2 主分区、扩展分区和逻辑分区
主分区
主分区直接记录在 MBR 的 4 个分区表项中,可以创建文件系统并直接使用。
扩展分区
扩展分区也占用一个主分区表项,但它是逻辑分区的容器,不能像普通数据分区一样直接格式化使用。一个 MBR 磁盘最多只能有一个扩展分区。
逻辑分区
逻辑分区建立在扩展分区内部,用于突破 4 个分区表项的数量限制。
常见组合:
text
3 个主分区 + 1 个扩展分区
扩展分区内部继续创建多个逻辑分区
需要注意,扩展分区本身不是第五个额外分区表项,它仍然占用 4 个 MBR 表项中的一个。
3.3 磁盘设备命名
传统块设备常见命名:
| 场景 | 设备示例 | 说明 |
|---|---|---|
| SATA/SAS/SCSI 磁盘 | /dev/sda、/dev/sdb |
字母表示磁盘顺序 |
| KVM VirtIO 云盘 | /dev/vda、/dev/vdb |
常见于虚拟机和公有云 |
| NVMe SSD | /dev/nvme0n1、/dev/nvme1n1 |
控制器和命名空间共同组成设备名 |
示例:
text
/dev/sda:第一块 sd 类磁盘
/dev/sdb:第二块 sd 类磁盘
/dev/vde:第五块 vd 类虚拟磁盘
设备字母并不适合作为永久身份标识。磁盘枚举顺序可能变化,永久挂载优先使用文件系统 UUID、LABEL 或稳定的 /dev/disk/by-* 路径。
3.4 分区命名
对于 /dev/sdX 和 /dev/vdX:
- 主分区或扩展分区通常使用编号 1~4。
- MBR 逻辑分区编号通常从 5 开始。
示例:
text
/dev/sda1:第一块 SATA/SAS 磁盘的第 1 个分区
/dev/sdc6:第三块 sd 类磁盘的第 6 个分区,MBR 下通常是逻辑分区
/dev/vde3:第五块 VirtIO 云盘的第 3 个分区
NVMe 分区会增加 p:
text
/dev/nvme0n1p1
/dev/nvme0n1p2
四、MBR 磁盘分区实操

4.1 分区、格式化与挂载的关系
可以用装修房间来理解:
- 分区:给一块磁盘划分边界,相当于打隔断。
- 格式化:在分区上创建文件系统,相当于完成内部基础装修和编号规则。
- 挂载:把文件系统接入 Linux 目录树,相当于给房间安装入口。
完整流程:
text
识别磁盘
-> 创建分区表项
-> 让内核重新读取分区表
-> 创建文件系统
-> 创建挂载点
-> 临时挂载并验证
-> 写入 /etc/fstab
-> mount -a 验证永久挂载
挂载点是目录树中的入口,一般使用专门创建的空目录。如果把文件系统挂载到已有内容的目录上,原目录内容不会被删除,但会暂时被挂载的文件系统遮住,卸载后才重新显示。
4.2 添加硬盘并确认设备
虚拟机实验可以在 VMware 设置中添加一块 1GB 测试硬盘,重新扫描总线或重启系统后确认设备。
资料使用:
bash
fdisk -l | grep /dev/sd
示例:
text
磁盘 /dev/sda:53.7 GB
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 104857599 51379200 8e Linux LVM
磁盘 /dev/sdb:1073 MB
磁盘 /dev/sdc:1073 MB
更适合日常检查的命令:
bash
lsblk
lsblk -f
fdisk -l
lsblk 可以直观看到磁盘、分区、文件系统和挂载关系。进行分区前,必须确认 /dev/sdb 确实是新测试盘,不能只凭"看起来像第二块盘"就操作。
4.3 使用 fdisk 创建 20MB 分区

进入 /dev/sdb 的分区交互界面:
bash
fdisk /dev/sdb
输入 m 查看帮助:
text
m
创建 20MB 主分区的典型输入过程:
text
n # 新建分区
p # 主分区
1 # 分区编号 1
Enter # 使用默认起始扇区
+20M # 分区大小 20MB
p # 打印当前分区表,检查结果
w # 写入磁盘并退出
写入后查看:
bash
fdisk -l /dev/sdb
lsblk /dev/sdb
如果内核没有立即识别新分区,可以执行:
bash
partprobe /dev/sdb
udevadm settle
仍未识别时再评估是否需要重启。不要在有业务 I/O 的磁盘上随意重读或修改分区表。
fdisk 中常用按键:
| 按键 | 作用 |
|---|---|
m |
查看帮助 |
p |
打印分区表 |
n |
新建分区 |
d |
删除分区表项 |
t |
修改分区类型 |
w |
保存并退出 |
q |
不保存退出 |
输入错误但还没有按 w 时,可以使用 q 不保存退出,重新检查后再操作。交互输入出现乱码字符时,资料建议使用 Ctrl+U 清空当前输入行。
4.4 使用剩余空间创建分区
再次进入:
bash
fdisk /dev/sdb
如果要创建第二个分区并使用全部剩余空间,典型输入:
text
n # 新建分区
p # 主分区
2 # 分区编号 2
Enter # 默认起始扇区
Enter # 默认结束扇区,使用全部剩余空间
p # 检查分区表
w # 写入并退出
重新读取并检查:
bash
partprobe /dev/sdb
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS /dev/sdb
分区表操作只是在磁盘上记录边界,不会自动创建文件系统,也不会自动挂载。
4.5 创建文件系统
格式化的本质是在分区上创建文件系统元数据,让操作系统能够管理目录、文件、权限和空闲空间。
常见文件系统
| 文件系统 | 常见场景 | 特点 |
|---|---|---|
| XFS | RHEL/CentOS 7+ 常见默认文件系统 | 扩展性和并发性能好,不能直接缩小文件系统 |
| ext4 | 通用 Linux 文件系统 | 成熟稳定,工具丰富,可扩展也可在离线条件下缩小 |
| NTFS | Windows 系统盘和移动存储 | Linux 读写支持取决于内核和工具 |
| FAT32 | U 盘、固件和跨平台交换 | 兼容性好,但单文件最大约 4GB,权限能力有限 |
查看系统支持的格式化工具:
bash
ls /sbin/mkfs.*
创建 XFS
bash
mkfs.xfs /dev/sdb1
创建 ext4
bash
mkfs.ext4 /dev/sdb2
查看文件系统:
bash
lsblk -f
blkid /dev/sdb1 /dev/sdb2
如果分区上已经存在文件系统,mkfs.xfs 会拒绝覆盖。强制重新格式化可以使用:
bash
mkfs.xfs -f /dev/sdb1
强制格式化会破坏原有文件系统和数据,只能在确认设备、确认备份、确认不需要原数据后使用。不要因为看到报错就直接追加 -f。
4.6 临时挂载与卸载
查看挂载和容量
bash
df -h
df -hT
-h:使用便于阅读的容量单位。-T:显示文件系统类型。
df 主要展示已经挂载的文件系统。查看未挂载磁盘和分区应配合:
bash
lsblk -f
blkid
创建挂载点并挂载
bash
mkdir -p /data
mount /dev/sdb1 /data
验证:
bash
findmnt /data
df -hT /data
mount | grep '/data'
此时 /data 是 /dev/sdb1 文件系统的访问入口。使用命令手工挂载通常只对当前运行周期有效,重启后需要重新挂载。
卸载
可以按挂载点卸载:
bash
umount /data
也可以按设备卸载:
bash
umount /dev/sdb1
如果提示目标忙:
text
target is busy
先离开挂载目录,再检查哪个进程正在使用:
bash
cd /
lsof +f -- /data
fuser -vm /data
停止或迁移相关进程后再卸载。umount -l 延迟卸载和 umount -f 强制卸载都有适用条件,不能作为普通报错的第一选择。
4.7 使用 fstab 永久挂载

永久挂载常见方式:
- 在
/etc/rc.local中执行mount命令。 - 在
/etc/fstab中声明文件系统挂载关系。
更推荐 /etc/fstab,因为系统能够统一解析、检查和生成对应的 systemd Mount Unit。rc.local 属于旧式兼容方案,还受执行权限、启动顺序和脚本错误影响。
备份 fstab
bash
cp -a /etc/fstab /etc/fstab.bak.$(date +%F-%H%M%S)
获取 UUID
bash
blkid /dev/sdb1
输出示例:
text
/dev/sdb1: UUID="048c0c5e-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="xfs"
相比 /dev/sdb1,UUID 不依赖磁盘枚举顺序,更适合永久挂载。
fstab 六列含义
text
UUID=048c0c5e-... /data xfs defaults 0 0
| 列 | 含义 | 示例 |
|---|---|---|
| 1 | 设备、UUID、LABEL 或网络文件系统 | UUID=048c0c5e-... |
| 2 | 挂载点 | /data |
| 3 | 文件系统类型 | xfs、ext4、swap |
| 4 | 挂载选项 | defaults、ro、noexec 等 |
| 5 | dump 备份标记,通常写 0 |
0 |
| 6 | fsck 启动检查顺序,0 表示不检查,根文件系统常为 1,其他 ext 文件系统可为 2 |
0、1、2 |
XFS 不通过传统启动 fsck 方式检查,常见配置是 0 0。
写入配置
bash
vim /etc/fstab
添加:
fstab
UUID=048c0c5e-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults 0 0
生效并验证
如果当前已经临时挂载,可以先卸载后测试:
bash
umount /data
mount -a
检查:
bash
findmnt /data
df -hT /data
findmnt --verify --verbose
systemd 系统修改 /etc/fstab 后,也可以执行:
bash
systemctl daemon-reload
只有 mount -a 没有报错、挂载点正确、文件系统可读写时,才算完成配置。不要编辑完 /etc/fstab 就直接重启测试,语法或设备错误可能让系统进入 emergency mode。
4.8 挂载光盘
在 Linux 中,/dev/cdrom 通常是指向实际光驱设备的软链接,例如 /dev/sr0:
bash
ls -l /dev/cdrom
示例:
text
/dev/cdrom -> sr0
创建挂载点并挂载:
bash
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
光盘或 ISO 文件系统通常只读,因此看到下面的提示是正常现象:
text
write-protected, mounting read-only
查看 RPM 包数量:
bash
find /mnt/cdrom/Packages -maxdepth 1 -name '*.rpm' | wc -l
使用完成后卸载:
bash
umount /mnt/cdrom
如果虚拟机中没有识别光盘,先检查 ISO 是否已连接、虚拟光驱是否勾选"已连接",再检查:
bash
lsblk
dmesg | tail
五、常用检查与排错命令
| 目的 | 命令 |
|---|---|
| 查看磁盘和分区树 | lsblk |
| 查看文件系统、UUID、挂载点 | lsblk -f |
| 查看块设备 UUID | blkid |
| 查看分区表 | fdisk -l |
| 查看已挂载文件系统容量 | df -hT |
| 查看挂载关系 | findmnt |
| 查看当前所有挂载 | mount |
| 验证 fstab | findmnt --verify --verbose、mount -a |
| 查看占用挂载点的进程 | lsof +f -- /data、fuser -vm /data |
| 让内核重读分区表 | partprobe /dev/sdb |
场景一:系统看不到新硬盘
bash
lsblk
fdisk -l
dmesg | tail -n 50
检查虚拟机或物理服务器是否已经连接设备,控制器驱动是否正常,以及是否需要重新扫描总线或重启。
场景二:有分区但无法挂载
bash
lsblk -f
blkid /dev/sdb1
如果 FSTYPE 为空,通常还没有创建文件系统。如果已经有文件系统,继续检查内核是否支持该类型、文件系统是否损坏以及挂载选项是否正确。
场景三:重启后挂载消失
bash
grep -vE '^\s*#|^\s*$' /etc/fstab
findmnt --verify --verbose
mount -a
检查 UUID、挂载点、文件系统类型和选项。
场景四:无法卸载
bash
cd /
lsof +f -- /data
fuser -vm /data
退出挂载目录并处理占用进程后再执行 umount。
总结
一块磁盘从硬件接入到存放文件,需要经历清晰的层次:硬件设备提供容量,RAID 组合多个物理盘,分区表记录空间边界,文件系统管理文件和目录,挂载把文件系统接入 Linux 目录树。
MBR 的核心限制来自 64 字节分区表和 4 个分区表项,因此才有主分区、扩展分区和逻辑分区。使用 fdisk 创建分区后,还必须创建文件系统,再通过 mount 关联挂载点。需要重启后自动挂载时,应使用 UUID 写入 /etc/fstab,并在重启前执行 mount -a 和 findmnt --verify 验证。
磁盘操作的风险在于"设备选错往往不可逆"。因此每次执行 fdisk、mkfs 或修改 /etc/fstab 前,都要先用 lsblk -f、blkid 和 findmnt 确认设备身份、文件系统与挂载关系。
七、注意事项
-
执行
fdisk、mkfs、wipefs等命令前,至少用lsblk -f和findmnt确认设备。不要只凭/dev/sdb的字母顺序判断新硬盘。 -
fdisk中只有执行w才会写入分区表;发现选择错误时应使用q不保存退出,而不是继续尝试补救。 -
创建分区不会自动创建文件系统,创建文件系统也不会自动挂载。分区、格式化和挂载是三个不同步骤。
-
mkfs和mkfs.xfs -f会破坏原有文件系统数据。看到"已有文件系统"提示时,应先检查设备是否选错,不能习惯性强制格式化。 -
RAID 提供的是性能或磁盘级冗余,不是备份。重要数据必须有独立副本、异地保存和恢复演练。
-
RAID 5 降级后只能再容忍零块成员盘故障,应尽快按规范更换磁盘并重建,不能长期带病运行。
-
挂载点最好使用专用空目录。挂载到已有数据的目录会暂时遮住原目录内容,容易造成"文件消失"的误判。
-
卸载提示
target is busy时,先使用lsof或fuser找到占用进程。不要把强制卸载和延迟卸载当成常规操作。 -
/etc/fstab优先使用 UUID,不建议长期依赖/dev/sdb1。修改后必须先执行findmnt --verify --verbose和mount -a。 -
/etc/fstab第 5 列是 dump 备份标记,第 6 列是 fsck 检查顺序,不是两个"是否备份"字段。 -
df主要查看已经挂载的文件系统;想查看尚未挂载的磁盘和分区,应使用lsblk、fdisk -l或blkid。 -
光盘和 ISO 通常以只读方式挂载,出现写保护提示并不代表挂载失败;使用后应正常执行
umount。