Linux 磁盘管理完整指南:从 Disk 到 Mount
在 Linux 中,一块磁盘从"未使用"到"可用存储",必须经历一套标准抽象层级:
text
Disk → GPT → Partition(s) → Filesystem → Mount
理解这条链路,是掌握 Linux 存储管理的核心。
一、核心概念解释(必须理解)
1. Disk(物理磁盘)
Disk 是最底层的物理设备,例如:
- /dev/sda
- /dev/sdb
特点:
- 只是"原始存储空间"
- 没有结构
- 无法直接存文件(现代系统不推荐)
2. GPT(分区表)
GPT(GUID Partition Table)是磁盘的"目录结构"。
作用:
- 记录磁盘如何被划分
- 管理多个分区
- 支持大容量磁盘(>2TB)
特点:
- 写在磁盘最前端
- 不存数据,只存"分区规划"
3. Partition(分区)
Partition 是 GPT 定义出来的"逻辑区域"。
例如:
text
/dev/sdb1
/dev/sdb2
作用:
- 将一块磁盘划分为多个独立区域
- 每个分区可以独立格式化和使用
4. Filesystem(文件系统,例如 ext4)
文件系统决定"数据如何存储"。
ext4 的作用:
- 管理文件和目录
- 负责 inode / block 分配
- 提供日志(防崩溃恢复)
没有文件系统的分区:
- 不能存文件
- Linux 无法正常使用
5. Mount(挂载)
Linux 没有盘符概念,只有目录树。
Mount 的作用:
👉 把磁盘映射到某个目录
例如:
text
/dev/sdb1 → /data
之后访问:
bash
cd /data
二、标准流程(单分区场景)
这是最常见的生产标准:
text
Disk → GPT → 1 Partition → ext4 → Mount
Step 1:查看磁盘
bash
lsblk
或:
bash
fdisk -l
Step 2:清空旧结构(可选)
bash
wipefs -a /dev/sdX
或:
bash
parted /dev/sdX mklabel gpt
Step 3:创建 GPT
bash
parted /dev/sdX mklabel gpt
Step 4:创建单分区(100%空间)
bash
parted /dev/sdX mkpart primary ext4 0% 100%
生成:
text
/dev/sdX1
Step 5:格式化文件系统
bash
mkfs.ext4 /dev/sdX1
Step 6:挂载使用
bash
mkdir -p /data/disk
mount /dev/sdX1 /data/disk
Step 7:开机自动挂载
bash
blkid /dev/sdX1
编辑:
bash
/etc/fstab
写入:
text
UUID=xxxx /data/disk ext4 defaults 0 2
三、多个分区的情况(重点)
很多人误以为"一块盘只能一个用途",但 Linux 支持多分区共存。
1. 多分区结构示例
text
/dev/sdb
├── sdb1 → /data
├── sdb2 → /backup
├── sdb3 → /logs
2. 多分区适用场景
适合:
- 不同数据隔离(日志 / 数据 / 备份)
- 权限隔离
- IO 性能分区管理
- 老旧系统或传统架构
3. 创建多个分区的流程
Step 1:创建 GPT
bash
parted /dev/sdX mklabel gpt
Step 2:创建多个分区
例如三分区:
bash
parted /dev/sdX mkpart primary ext4 0% 30%
parted /dev/sdX mkpart primary ext4 30% 70%
parted /dev/sdX mkpart primary ext4 70% 100%
Step 3:检查分区
bash
lsblk
结果:
text
/dev/sdX1
/dev/sdX2
/dev/sdX3
Step 4:分别格式化
bash
mkfs.ext4 /dev/sdX1
mkfs.ext4 /dev/sdX2
mkfs.ext4 /dev/sdX3
Step 5:分别挂载
bash
mount /dev/sdX1 /data
mount /dev/sdX2 /backup
mount /dev/sdX3 /logs
4. 多分区 vs 单分区(重要对比)
| 方式 | 优点 | 缺点 |
|---|---|---|
| 单分区 | 简单、空间利用率高 | 隔离性差 |
| 多分区 | 数据隔离清晰 | 空间不可动态共享 |
四、最佳实践(生产建议)
推荐方案(现代系统)
👉 单分区 + LVM 或 ZFS
原因:
- 避免空间浪费
- 可动态扩容
- 管理更灵活
不推荐
- 一块盘切太多小分区(浪费管理成本)
- 未规划直接 mkfs on disk(非标准)
五、总结(核心理解)
整个 Linux 磁盘模型可以理解为:
text
Disk(硬件)
↓
GPT(结构规划)
↓
Partition(逻辑切块)
↓
Filesystem(数据组织方式)
↓
Mount(接入系统)
六、一句话理解本质
👉 Linux 磁盘管理的本质是:
把"原始硬件"逐层抽象成"可挂载的目录结构"