Linux磁盘分卷操作指南
一、概念与准备
- 在 Linux 中,“分卷”常见两类做法:
- 传统分区:用 fdisk/parted 对磁盘进行分区,格式化后挂载使用。
- LVM(逻辑卷管理):将磁盘或分区做成 PV(物理卷),加入 VG(卷组),再划分 LV(逻辑卷),便于在线扩容与灵活管理。
- 操作前务必确认目标磁盘或分区(如 /dev/sdX、/dev/sdXY),并先做好数据备份。
- 常用查看命令:lsblk、fdisk -l、df -h、pvs、vgs、lvs、vgdisplay、lvdisplay。
二、方案一 传统分区方式(fdisk 或 parted)
- 步骤概览:
- 查看磁盘与分区:lsblk、fdisk -l。
- 创建分区:
- 使用 fdisk /dev/sdX:交互中输入 n 新建分区,选择主/扩展分区与大小,最后 w 保存。
- 或使用 parted /dev/sdX:如执行 mkpart primary ext4 1MiB 10GiB 创建分区,再 print 查看、quit 退出。
- 格式化文件系统:如 mkfs.ext4 /dev/sdXY(或 mkfs.xfs /dev/sdXY)。
- 挂载使用:创建目录 mkdir -p /mnt/data,挂载 mount /dev/sdXY /mnt/data。
- 开机自动挂载:编辑 /etc/fstab,添加一行(示例):
- ext4:/dev/sdXY /mnt/data ext4 defaults 0 2
- xfs:/dev/sdXY /mnt/data xfs defaults 0 2
为避免设备名变动,推荐用 UUID 或 LABEL 替代 /dev/sdXY。
- 调整分区大小(谨慎):使用 parted 的 resizepart PART_NUMBER NEW_END 调整分区结束位置;随后用文件系统工具(如 resize2fs/xfs_growfs)调整文件系统到新分区大小。
三、方案二 LVM方式(推荐,便于后续扩容)
- 步骤概览:
- 准备磁盘/分区:识别新盘(如 /dev/sdb),必要时用 fdisk/parted 创建分区(类型选择 Linux LVM 更规范)。
- 创建物理卷:pvcreate /dev/sdb1(或整盘 /dev/sdb)。
- 创建卷组:vgcreate vg_data /dev/sdb1(可同时加入多块盘/分区)。
- 创建逻辑卷:lvcreate -L 10G -n lv_data vg_data(也可用 -l 100%FREE 占满卷组)。
- 格式化文件系统:mkfs.ext4 /dev/vg_data/lv_data(或 mkfs.xfs /dev/vg_data/lv_data)。
- 挂载使用:mkdir -p /data && mount /dev/vg_data/lv_data /data。
- 开机自动挂载:编辑 /etc/fstab,建议使用 UUID(可通过 blkid 获取),示例:
- ext4:UUID=xxxx-xxxx /data ext4 defaults 0 2
- xfs:UUID=xxxx-xxxx /data xfs defaults 0 2
- 在线扩容(最常见场景):
- 卷组有空闲空间:先扩 LV:lvextend -L +10G /dev/vg_data/lv_data(或 -l +100%FREE 用尽剩余空间);再扩文件系统:
- ext2/ext3/ext4:resize2fs /dev/vg_data/lv_data
- xfs:xfs_growfs /data(XFS 对挂载点操作)
- 卷组空间不足:先新增磁盘/分区并做成 PV:pvcreate /dev/sdc1;再扩卷组:vgextend vg_data /dev/sdc1;随后按上步扩 LV 与文件系统。
- 缩容(风险高,务必先备份并卸载):先调整文件系统到目标大小(ext4 用 resize2fs,XFS 不支持在线缩容),再缩 LV:lvreduce -L -10G /dev/vg_data/lv_data;最后检查挂载。
四、常用命令速查表
| 操作 |
命令示例 |
| 查看磁盘/分区 |
lsblk、fdisk -l |
| 传统分区 |
fdisk /dev/sdX;或 parted /dev/sdX mkpart primary ext4 1MiB 10GiB |
| 创建 PV |
pvcreate /dev/sdb1 |
| 创建 VG |
vgcreate vg_data /dev/sdb1 |
| 创建 LV |
lvcreate -L 10G -n lv_data vg_data |
| 扩展 LV |
lvextend -L +10G /dev/vg_data/lv_data 或 -l +100%FREE |
| 扩展文件系统 |
ext4:resize2fs /dev/vg_data/lv_data;xfs:xfs_growfs /data |
| 扩 VG |
vgextend vg_data /dev/sdc1 |
| 格式化 |
mkfs.ext4 /dev/sdXY 或 mkfs.xfs /dev/sdXY |
| 挂载 |
mount /dev/vg_data/lv_data /data |
| 开机自动挂载 |
在 /etc/fstab 添加条目(优先用 UUID) |
| 查看信息 |
pvs、vgs、lvs、vgdisplay、lvdisplay |
五、注意事项与最佳实践
- 操作前务必备份重要数据;对系统盘操作风险更高,建议在维护窗口进行,并确保有控制台/救援环境可回滚。
- 使用 LVM 能获得更好的弹性与可扩展性;传统分区适合简单、固定容量场景。
- 文件系统选择:需要在线扩容优先 ext4/xfs;XFS 不支持在线缩容,缩容需离线并严格按流程执行。
- 生产环境建议用 UUID/LABEL 配置 /etc/fstab,避免设备名变化导致挂载失败。
- 扩容顺序务必正确:先扩 LV,再扩文件系统;缩容则相反,且必须先缩文件系统再缩 LV。