Post
掌握Linux磁盘管理:fdisk分区调整与文件系统扩容实战指南
概述
本文详细说明如何通过fdisk工具调整Linux系统磁盘分区表,涵盖交换分区UUID复用、文件系统扩容等关键操作。适用于虚拟机磁盘扩展后的分区调整场景,需谨慎操作以避免数据丢失。
核心概念
- fdisk:磁盘分区管理工具,用于创建、删除和调整分区表。
- swapoff/mkswap:分别用于禁用和创建交换分区。
- resize2fs:调整ext文件系统大小以适配新分区空间。
- UUID复用:通过保留原有交换分区的UUID,确保系统重启后能正确挂载swap分区。
操作流程
准备工作
- 备份虚拟机:调整分区前务必备份整个虚拟机镜像。
- 检查当前状态
- 使用
df -h查看文件系统占用情况。 - 通过
fdisk -l /dev/sda确认当前分区布局,记录交换分区(swap)的大小和起始位置。
- 使用
分区调整步骤
-
关闭swap分区
1swapoff -a确保
free -m显示Swap:为0。 -
删除旧分区
- 运行
fdisk /dev/sda,依次删除原有分区(sda1和sda2)。 - 记录分区起始位置(如
2048),用于后续新建分区。
- 运行
-
创建新分区
- 新建两个分区:
- 第一个分区(
sda1)作为根分区,占用大部分空间。 - 第二个分区(
sda2)作为交换分区,大小与原交换分区一致。
- 第一个分区(
- 修改
sda2的分区类型为82(Linux swap)。
- 新建两个分区:
-
处理交换分区UUID
- 通过
awk '/swap/ { print $1 }' /etc/fstab获取原UUID。 - 使用
dd清空新分区数据,再通过mkswap -U <UUID>绑定原UUID。 - 最后执行
swapon -a重新启用swap。
- 通过
-
扩容文件系统
- 运行
resize2fs /dev/sda1,使文件系统适配新分区空间。
- 运行
验证结果
- 通过
df -h确认根分区容量已更新。 - 检查
free -m确保swap分区正常启用。
注意事项
-
操作风险
- 分区表修改可能导致系统无法启动,务必提前备份。
fdisk操作需谨慎,确认分区起始位置和大小。
-
UUID复用技巧
- 若新分区UUID与原不一致,需手动修改
/etc/fstab文件。 dd清空分区时可能提示“磁盘空间不足”,此为正常现象。
- 若新分区UUID与原不一致,需手动修改
-
虚拟机扩展
- 扩展虚拟机磁盘后需重启虚拟机,使分区表生效。
总结
通过fdisk调整分区表并配合resize2fs扩容文件系统,可有效利用扩展后的磁盘空间。关键步骤包括关闭swap、分区重建、UUID复用及文件系统调整,操作时需严格遵循流程以避免数据丢失。对于复杂场景,建议结合parted或gparted工具辅助操作。
相关工具使用可参考:linux-tools。