Linux 磁盘管理实操:LVM 与 fdisk 笔记
背景
服务器上磁盘空间不够用了,需要扩容。这看似是个简单操作,但如果不熟悉磁盘管理的工具链,很容易出错。这篇文章记录完整的操作流程。
查看当前磁盘状态
# 查看磁盘使用情况
df -h
# 查看磁盘分区表
fdisk -l
# 查看 LVM 状态
vgs # 查看卷组
lvs # 查看逻辑卷
pvs # 查看物理卷
fdisk 分区操作
新挂载一块 500GB 的数据盘,需要先分区:
fdisk /dev/sdb
# 交互操作:
# n - 新建分区
# p - 主分区
# 1 - 分区号
# 回车 - 使用默认起始扇区
# 回车 - 使用默认结束扇区(整块盘)
# w - 写入并退出
# 格式化
mkfs.ext4 /dev/sdb1
# 挂载
mkdir /data
mount /dev/sdb1 /data
# 写入 fstab 实现开机自动挂载
echo '/dev/sdb1 /data ext4 defaults 0 0' >> /etc/fstab
LVM 逻辑卷管理
LVM 的优势在于可以动态扩缩容,比传统分区灵活得多。
创建 LVM
# 创建物理卷
pvcreate /dev/sdc
# 创建卷组(命名为 data_vg)
vgcreate data_vg /dev/sdc
# 创建逻辑卷(100GB)
lvcreate -L 100G -n data_lv data_vg
# 格式化并挂载
mkfs.ext4 /dev/data_vg/data_lv
mount /dev/data_vg/data_lv /data2
在线扩容
# 扩展逻辑卷到 200GB(同时扩展文件系统)
lvextend -L 200G -r /dev/data_vg/data_lv
# 或者增加 50GB
lvextend -L +50G -r /dev/data_vg/data_lv
-r 参数会自动扩展文件系统,省去了单独执行 resize2fs 的步骤。
向卷组添加新磁盘
# 将新磁盘加入已有卷组
pvcreate /dev/sdd
vgextend data_vg /dev/sdd
# 然后就可以继续扩展逻辑卷了
常见问题
- 扩容后 df -h 看不到变化:没有加
-r参数,需要手动执行resize2fs /dev/data_vg/data_lv - fdisk 看不到新分区:执行
partprobe刷新分区表 - LVM 命令找不到:安装
lvm2包
总结
磁盘管理是运维的基本功。fdisk 适合简单的分区需求,LVM 适合需要灵活扩容的场景。生产环境推荐使用 LVM。