Linux 磁盘管理完整指南:从 Disk 到 Mount

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 磁盘管理的本质是:

把"原始硬件"逐层抽象成"可挂载的目录结构"