Linux 系统磁盘管理详解
在 Linux 系统中,磁盘管理是每个运维工程师必须掌握的基础技能。无论是服务器扩容、分区调整,还是日常维护,都离不开对磁盘的理解与操作。本文将带你从零开始了解 Linux 的磁盘管理机制,并提供实用操作指南,帮助你更好地应对实际工作中的磁盘问题。
博客:
🧭 目录
-
什么是磁盘管理
-
磁盘设备命名规则
-
查看磁盘使用情况
-
基本分区工具:fdisk 与 parted
-
文件系统与挂载
-
逻辑卷管理(LVM)
-
常见磁盘问题排查
-
总结与建议
1️⃣ 什么是磁盘管理?
在 Linux 中,磁盘管理是指对物理硬盘、虚拟磁盘、RAID 设备等存储介质进行识别、分区、格式化、挂载、扩容等一系列操作的过程。
核心任务包括:
-
查看磁盘空间使用情况
-
分区与格式化新磁盘
-
挂载磁盘到指定目录
-
扩容已有磁盘或分区
-
使用 LVM 实现灵活的磁盘管理
2️⃣ 磁盘设备命名规则
Linux 系统中,磁盘设备通常以 /dev 下的文件形式存在,命名方式如下:
| 类型 | 命名示例 | 描述 |
|---|---|---|
| IDE 硬盘 | /dev/hda, /dev/hdb | 旧式接口,现已较少见 |
| SATA/SCSI/SAS 硬盘 | /dev/sda, /dev/sdb | 最常见的硬盘命名 |
| NVMe 固态硬盘 | /dev/nvme0n1, /dev/nvme0n2 | 高速固态硬盘接口 |
| 虚拟机磁盘 | /dev/vda, /dev/xvda | 如阿里云、腾讯云使用的虚拟磁盘 |
例如:
/dev/sda # 第一块 SATA 硬盘 /dev/sda1 # 第一块 SATA 硬盘的第一个分区
3️⃣ 查看磁盘使用情况
以下是一些常用的查看磁盘信息的命令:
✅ 查看磁盘容量使用情况:
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 15G 5G 75% /
✅ 查看当前系统磁盘及分区信息:
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 20G 0 part / └─sda2 8:2 0 30G 0 part /home
✅ 查看磁盘详细信息(如扇区大小、型号):
hdparm -I /dev/sda
4️⃣ 基本分区工具:fdisk 与 parted
🔹 fdisk(适用于小于 2TB 的磁盘)
示例:为 /dev/sdb 创建一个主分区并格式化
sudo fdisk /dev/sdb # 输入命令: # n -> p -> 1 -> 默认起始扇区 -> +10G -> w
创建完分区后,需要格式化并挂载:
mkfs.ext4 /dev/sdb1 mkdir /mnt/data mount /dev/sdb1 /mnt/data
🔹 parted(支持 GPT 和大于 2TB 的磁盘)
sudo parted /dev/sdc mklabel gpt sudo parted /dev/sdc mkpart primary ext4 0% 100%
5️⃣ 文件系统与挂载
✅ 支持的常见文件系统:
| 文件系统 | 特点 |
|---|---|
| ext4 | Linux 默认,稳定可靠,支持大文件 |
| xfs | 高性能,适合大容量磁盘 |
| btrfs | 支持快照、压缩等功能,适合高级用途 |
| zfs | 功能强大但占用资源高,适合 NAS 或专业场景 |
✅ 挂载磁盘:
mount /dev/sdb1 /mnt/data
✅ 自动挂载(修改 /etc/fstab):
添加一行配置:
/dev/sdb1 /mnt/data ext4 defaults 0 0
6️⃣ 逻辑卷管理(LVM)
LVM 是 Linux 提供的一种高级磁盘管理方式,它允许你动态调整磁盘分区大小,非常适合生产环境。
🧱 LVM 架构层级:
-
PV(Physical Volume):物理卷,对应物理磁盘或分区
-
VG(Volume Group):卷组,由多个 PV 组成
-
LV(Logical Volume):逻辑卷,最终可被挂载使用的“虚拟分区”
🛠️ 示例:使用 LVM 扩展根分区
步骤 1:添加新磁盘或扩展已有磁盘(通过云平台)
假设新增了 /dev/vdb
步骤 2:创建物理卷
pvcreate /dev/vdb
步骤 3:扩展卷组(假设 VG 名为 centos)
vgextend centos /dev/vdb
步骤 4:扩展逻辑卷(假设 LV 为 /dev/centos/root)
lvextend -l +100%FREE /dev/centos/root
步骤 5:扩展文件系统(根据文件系统选择)
resize2fs /dev/centos/root # 如果是 ext4 xfs_growfs / # 如果是 xfs
7️⃣ 常见磁盘问题排查
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| 磁盘满了但 df 显示还有空间 | inode 耗尽 | 使用 df -i 查看 |
| 无法卸载挂载点 | 被进程占用 | 使用 lsof /mnt/data 查找并 kill 进程 |
| resize2fs 报错 | 文件系统损坏 | 先执行 fsck 检查修复 |
| 新磁盘未被识别 | 内核未更新分区表 | 使用 partprobe 刷新分区信息 |
8️⃣ 总结与建议
-
磁盘管理是 Linux 运维的基础技能,熟练掌握可以极大提升工作效率。
-
推荐使用 LVM 来实现更灵活的磁盘管理。
-
定期监控磁盘使用情况,防止因磁盘满导致服务异常。
-
学会使用 shell 脚本自动化磁盘检查和清理任务。
🧪 拓展学习(Bonus)
-
编写 Shell 脚本自动检测磁盘使用并发送告警邮件
-
使用
ncdu快速查找大文件和目录 -
配置 RAID 实现冗余和高性能存储
-
使用
rsync实现磁盘数据迁移或备份
1052

被折叠的 条评论
为什么被折叠?



