学习Linux磁盘
目录
一、磁盘结构与分区
1.1 硬盘物理结构
1.2 硬盘数据存储结构
1.3 Linux 磁盘设备命名规则
1.3.1磁盘设备
1.3.2分区设备
二、分区表 MBR 与 GPT
2.1 MBR 分区表
2.1.1存储位置
2.1.2扇区内部结构
2.1.3核心限制
2.2 GPT 分区表
2.2.1核心优势
2.2.2适配场景
2.3对比
三、Linux 常见文件系统 & 磁盘查看命令
3.1 主流文件系统
3.2 磁盘扫描与查看命令
四、磁盘分区工具
4.1 fdisk(MBR 优先,兼容 GPT)
4.2 gdisk(GPT 专用工具)
4.3 parted
五、查看、格式化与挂载磁盘
5.1查看磁盘
5.2 磁盘格式化(创建文件系统)
5.3 磁盘挂载、卸载与永久挂载
5.3.1 临时挂载操作
5.3.2 卸载磁盘
5.3.3 永久挂载 /etc/fstab
5.4 swap分区
5.5小结
六、LVM 概述与管理
6.1 LVM 概述逻辑
6.1.1基础定义
6.1.2三层核心组件
6.1.3完整存储层级结构
6.2LVM 管理命令汇总
6.3LVM 实战操作步骤
6.3.1 创建逻辑卷完整流程
6.3.2LV 扩容操作流程
6.3.3整套 LVM 删除流程(反向操作)
6.4 LVM 创建简易流程
七、总结
一、磁盘结构与分区
1.1 硬盘物理结构
硬盘(Hard Disk Drive, HDD)的物理结构主要由以下几个核心部件组成:
(1) 盘片(Platter):硬盘的核心存储载体。通常由多个玻璃或铝制盘片堆叠而成,每片盘片有上下两个盘面,每个盘面都可以存储数据。
(2) 磁头(Read/Write Head):负责读取和写入数据的装置。它悬浮在盘片表面极近的地方(不接触盘片)。每个盘面都对应一个独立的磁头,所有磁头物理上连接在同一个磁头臂上,协同工作。
图1-1
1.2 硬盘数据存储结构
数据在硬盘上的存储是基于磁道和扇区的,从微观到宏观分为以下结构:
(1) 扇区(Sector):磁盘寻址的最小存储单位。传统机械硬盘的每个扇区大小为 512 字节。数据读写时,操作系统通常以扇区为单位进行调度。
(2) 磁道(Track):盘片表面以盘片中心为圆心画出的一系列同心圆轨道。当盘片旋转时,磁头在特定的磁道上移动以读写数据。单盘片上的磁道是同心圆。
(3) 柱面(Cylinder):在多盘片结构中,将所有盘片上处于相同半径位置的磁道组合在一起,形成一个圆柱形的区域,称为柱面。在早期的磁盘寻址中,柱面是定位数据的重要参考。
(4) CHS(Cylinder-Head-Sector):即 柱面/磁头/扇区 寻址方式。这是早期机械硬盘使用的物理寻址方式,通过这三个坐标来精确定位数据所在的扇区。随着硬盘容量增大,这种寻址方式被更高效的 LBA(逻辑块寻址)所取代。
1.3 Linux 磁盘设备命名规则
在 Linux 系统中,所有的硬件设备都被映射为文件,存放在/dev目录下。磁盘设备的命名有严格的规则:
1.3.1磁盘设备
①/dev/sd[a-z]:代表 SATA、SCSI 或 NVMe 接口的硬盘(现代服务器和大部分 PC 的主流命名)
②/dev/hd[a-z]:代表 老式的 IDE 接口硬盘(在早期的 PATA 时代使用,现在的系统已基本淘汰)。
1.3.2分区设备
① 主分区:编号为 1-4。
一块硬盘在 MBR 分区表下最多只能有 4 个主分区(或 3 个主分区 + 1 个扩展分区)。
命名示例:/dev/sda1,/dev/sda2,/dev/sda3,/dev/sda4。
② 逻辑分区:编号 从 5 开始。
只有当创建了扩展分区(编号通常为 4)后,才能在扩展分区内划分逻辑分区。
命名示例:/dev/sda5,/dev/sda6等。(即使扩展分区是 sda4,逻辑分区也从 5 开始,而不是 4)。
注:在 GPT 分区表中,没有主/扩展/逻辑之分,所有分区编号通常从 1 开始,但命名规则仍沿用/dev/sda1,/dev/sda2...
二、分区表 MBR 与 GPT
2.1 MBR 分区表
MBR 即主引导记录,是传统磁盘分区方案,存储在磁盘最开头的 512 字节扇区。
2.1.1存储位置
磁盘首个 512 字节扇区(0 号扇区)。
2.1.2扇区内部结构
- 0~445 字节:引导代码,系统开机时执行,负责加载操作系统引导程序;
- 446~509 字节:分区表,共 64 字节,每条分区记录 16 字节;
- 510~511 字节:有效标识
0x55AA,BIOS 识别磁盘可引导的标记。
2.1.3核心限制
- 容量上限:受 32 位寻址约束,单块磁盘最大仅识别 2TiB 空间;
- 分区数量限制:分区表仅能存放 4 条主分区记录,最多 4 个主分区;若需要更多分区,只能划分3 主 + 1 扩展分区,在扩展分区内创建多个逻辑分区。
2.2 GPT 分区表
GPT 全称全局唯一标识分区表,是 UEFI 规范配套的新式分区标准,解决了 MBR 的容量、分区数量、容错缺陷。
2.2.1核心优势
- 超大容量支持:使用 64 位 LBA 寻址,可支持 ZB 级别的超大容量硬盘,无 2TiB 限制;
- 分区数量充足:默认最多支持 128 个主分区,不需要扩展分区、逻辑分区;
- 自带容错机制:分区表头部、分区条目均保存多份副本,磁盘分区表损坏时可自动恢复,数据安全性更高。
2.2.2适配场景
必须搭配 UEFI 固件启动模式使用,Windows10/11、新版 Linux 等现代操作系统默认采用 GPT 分区格式,是当下装机、大容量硬盘的标准方案。
2.3对比
| 对比维度 | MBR | GPT |
|---|---|---|
| 寻址位数 | 32 位 | 64 位 |
| 最大磁盘容量 | 2.1TiB | 9.4ZB |
| 主分区上限 | 4 个(需扩展分区扩容) | 128 个,无扩展分区概念 |
| 容错能力 | 仅单份分区表,损坏难恢复 | 分区表多副本,支持修复 |
| 启动模式 | 传统 Legacy BIOS | UEFI(主流新电脑) |
| 适用设备 | 老旧小容量硬盘、老式主机 | 新电脑、4T 及以上大容量磁盘 |
三、Linux 常见文件系统 & 磁盘查看命令
3.1 主流文件系统
(1) XFS:CentOS7 默认文件系统,大文件读写性能优异,断电后数据恢复速度快,多用于数据库、大容量存储业务。
(2) EXT4:稳定性强、通用性高,是 CentOS6 系统默认文件系统,适配绝大多数传统 Linux 业务场景。
(3) SWAP:交换分区,充当系统虚拟内存;物理内存不足时缓存闲置进程数据,分区容量建议设置为物理内存的 1.5-2 倍。
(4) 其他文件系统
① JFS:日志型文件系统,依靠日志记录机制,宕机后可快速完成数据校验修复。
② FAT32:跨平台兼容格式,Windows、Linux、Mac 均可直接读写;单文件上限 4GB,无用户权限,多用于 U 盘、移动硬盘。
③ NTFS:Windows 专用文件系统;Linux 原生仅支持只读,安装 ntfs-3g 工具后才能实现完整读写。
3.2 磁盘扫描与查看命令
(1) 识别新增硬盘,无需重启服务器 命令:echo "- - -" > /sys/class/scsi_host/hostX/scan 扫描后系统可识别新添加的硬盘设备。
(2) 查看全部分区列表 命令:fdisk -l 作用:列出服务器全部磁盘、分区、容量、分区类型、设备名称等完整硬件信息。
(3) 树形化查看块设备 lsblk:以树形分层展示磁盘、分区层级结构; -f:额外显示分区文件系统类型与 UUID,常用于永久挂载配置
四、磁盘分区工具
4.1 fdisk(MBR 优先,兼容 GPT)
(1) 交互常用指令
① m:查看帮助信息
图4-1
② p:打印磁盘现有分区列表
图4-2
③ n:新建磁盘分区
图4-3
④ d:删除已有分区
图4-4
⑤ t:修改分区类型 ID
图4-5
⑥ w:保存分区表并退出
图4-6
⑦ q:不保存任何修改,直接退出
图4-7
4.2 gdisk(GPT 专用工具)
(1) 交互常用指令
① o:新建空白 GPT 分区表
图4-8
② p:查看磁盘分区信息
图4-9
③ n:创建新分区
图4-10
④ d:删除指定分区
图4-11
⑤ t:更改分区类型
图4-12
⑥ w:保存分区操作
图4-13
⑦ q:直接退出,放弃修改
图4-14
4.3 parted
parted 为一体化分区工具,同时支持 MBR、GPT 两种分区格式,支持命令行非交互脚本操作,可实现分区创建、删除、调整分区大小、修改分区表类型、格式化等全流程磁盘操作。
五、查看、格式化与挂载磁盘
5.1查看磁盘
(1)df:查看已挂载文件系统容量 常用: df -h (人类可读), -T (含类型), -i (inode)
图5-1
(2)lsblk -f:看设备、类型、LABEL、UUID、挂载点
图5-2
5.2 磁盘格式化(创建文件系统)
(1) 普通分区格式化
① XFS 格式:mkfs.xfs /dev/sdX1
② FAT32 格式:mkfs.vfat -F 32 /dev/sdX1
(2) 交换分区初始化 命令:mkswap /dev/sdX1
(3) 获取分区 UUID 命令:blkid /dev/sdX1
5.3 磁盘挂载、卸载与永久挂载
5.3.1 临时挂载操作
(1) 基础磁盘挂载:mount 设备 挂载点 (2) ISO 镜像挂载:mount -o loop xxx.iso/mnt
图5-1
5.3.2 卸载磁盘
命令:umount 设备名 / 挂载目录
图5-2
5.3.3 永久挂载 /etc/fstab
(1) 文件 6 个字段:UUID / 设备 挂载点 文件系统 挂载参数 dump 备份 fsck 检测序号
(2) 标准配置示例:UUID=xxx /data xfs defaults 0 2
(3) 校验 fstab 配制: mount -a
(4)步骤
1查看UUID blkid
图5-3
2 vim /etc/fstab 修改配置文件
图5-4
3 mount -a 不报错
图5-5
4重启(reboot)查看(df -h)挂载
图5-6
5.4 swap分区
前提创建:修改sdc3为swap
图5-7
swap 分区的管理是通过专门的命令完成的
5.5小结
六、LVM 概述与管理
6.1 LVM 概述逻辑
6.1.1基础定义
(1)英文全称:Logical Volume Manager,中文逻辑卷管理
(2)核心作用:可在不丢失原有数据的前提下动态调整磁盘容量,提升磁盘管理灵活性
(3)使用限制:存放引导文件的 /boot 分区,不支持基于 LVM 创建
6.1.2三层核心组件
(1)PV 物理卷(底层存储单元)
① 对应整块硬盘或独立磁盘分区,示例:/dev/sdb1
② 完成初始化后自动拆分为 PE 物理块,PE 默认大小 4MB
③ PE 尺寸越小,磁盘空间利用率越高;PE 总数上限 65534 块,会限制 VG 最大容量
(2)VG 卷组(统一存储资源池)
① 将多个 PV 聚合整合,形成一块完整逻辑存储池
② 支持动态添加、移除 PV,实现存储灵活扩容
③ 容量示例:160G PV + 500G PV = 660G 卷组
(3)LV 逻辑卷(用户可使用分区)
① 从 VG 存储池中划分出的逻辑区域,用于创建文件系统
② 完成格式化后挂载至目录,即可正常读写数据
6.1.3完整存储层级结构
硬盘 / 分区 → PV → VG → LV → XFS/EXT4 文件系统 → 挂载点
6.2LVM 管理命令汇总
- 扫描查看设备:pvscan、vgscan、lvscan
- 创建对应组件:pvcreate、vgcreate、lvcreate
- 查看详细信息:pvdisplay、vgdisplay、lvdisplay
- 删除对应组件:pvremove、vgremove、lvremove
- 扩容操作 (1)PV:无扩容命令 (2)VG:vgextend (3)LV:lvextend
- 缩容操作 (1)PV:无缩容命令 (2)VG:vgreduce (3)LV:lvreduce
6.3LVM 实战操作步骤
6.3.1 创建逻辑卷完整流程
- 识别新增硬盘(无需重启服务器) echo "- - -" > /sys/class/scsi_host/host0/scan
图6-1
- 磁盘分区配置 使用 fdisk 工具对磁盘分区:fdisk /dev/sdb、fdisk /dev/sdc,分区类型 ID 修改为 8e(Linux LVM 标识)
图6-2
- 创建物理卷 PV pvcreate /dev/sdc1 /dev/sdc1
图6-3
- 创建卷组 VG vgcreate vgname1 /dev/sdc1 /dev/sdc2
图6-4
- 创建逻辑卷 LV lvcreate -L 20G -n lvname1 vgname1
图6-5
- 文件系统格式化 + 挂载 (1)格式化:mkfs.xfs/dev/vgname1/lvname1
图6-6 (2)创建挂载目录:mkdir /opt/M
图6-7 (3)临时挂载:mount /dev/vgname1/lvname1 /opt/M
图6-8 (4)验证挂载状态:df -Th
图6-9
6.3.2LV 扩容操作流程
1.新增物理卷,并将 PV 加入目标卷组
(1)初始化新分区为 PV:pvcreate /dev/sdb3
图6-10
(2)扩展 VG 容量:vgextend vgname1 /dev/sdb3
图6-11
2.扩展逻辑卷空间 lvextend -L+1G /dev/vgname1/lvname1图6-12
3.刷新文件系统,让扩容容量生效
图6-13
图6-14
图6-15
(1)XFS 文件系统:xfs_growfs /dev/vgname1/lvname1
(2)EXT4 文件系统:resize2fs /dev/vgname1/lvname1
6.3.3整套 LVM 删除流程(反向操作)
- 卸载挂载目录:umount /opt/M
图6-16
- 删除逻辑卷:lvremove /dev/vgname1/lvname1
图6-17
- 删除卷组:vgremove vgname1
图6-18
- 清除分区 LVM 标识:pvremove /dev/sdb1 /dev/sdc1 /dev/sdc2
图6-19
6.4 LVM 创建简易流程
新增硬盘 → fdisk 磁盘分区 → pvcreate 生成 PV → vgcreate 构建 VG → lvcreate 划分 LV → mkfs 格式化文件系统 → mount 挂载使用
七、总结
磁盘底层基础 硬盘由盘片、磁头组成,扇区是最小存储单元;Linux 磁盘主流命名
/dev/sd,MBR 分区主分区 1-4、逻辑分区从 5 起,GPT 无分区类型区分。两种分区表对比 MBR 适配老式 BIOS,仅支持 2TiB 硬盘、最多 4 个主分区,无容错;GPT 搭配 UEFI,支持 ZB 级硬盘、128 个主分区。
文件系统与查看命令 主流系统:XFS(CentOS7)、EXT4(CentOS6)、SWAP 虚拟内存;FAT32 跨平台,NTFS 仅 Windows 原生读写。 常用命令:无需重启识别新硬盘、
fdisk -l查看分区、lsblk -f查看设备 UUID、df查看挂载容量。分区工具
fdisk适配 MBR,gdisk专用 GPT,parted同时支持两种分区表,可脚本自动化操作。磁盘挂载整套流程 新硬盘识别→分区→mkfs 格式化→
mount临时挂载;写入/etc/fstab实现永久挂载,用mount -a校验;swap 分区需单独初始化、启用 / 关闭。LVM 逻辑卷管理 三层架构 PV→VG→LV,核心优势是无损动态扩容磁盘,
/boot不能使用 LVM。 操作流程:分区设类型 8e→创建 PV/VG/LV→格式化挂载;扩容需新增磁盘扩充 VG 再扩展 LV,最后刷新文件系统;删除操作与创建反向执行。整体核心逻辑 普通磁盘操作链路:识别→分区→格式化→挂载;传统固定分区无法灵活扩容,LVM 分层存储解决该痛点;生产环境新主机、4T 以上硬盘优先 GPT+LVM 方案。
