Post
Linux虚拟机磁盘分区调整与交换分区设置指南
Linux虚拟机磁盘分区与交换分区调整指南
概述
本文详细说明如何在Linux虚拟机中扩展磁盘分区并重新配置交换分区,涵盖分区表调整、文件系统扩容及Swap分区的UUID绑定操作。操作涉及fdisk分区工具、swapoff/mkswap管理交换空间,以及resize2fs调整文件系统大小等核心步骤,适用于VMware等虚拟化平台下的Ubuntu系统。
核心概念
- 磁盘分区表:记录硬盘分区起始位置、大小及类型(如Linux、Swap)的元数据,需在磁盘扩容后重新生成。
- 交换分区(Swap):作为内存的扩展,需通过UUID在
/etc/fstab中绑定挂载点,分区类型标识为82(Linux swap)。 - 文件系统调整:使用
resize2fs动态扩展ext文件系统大小,需确保分区表更新后执行。
操作流程
准备阶段
-
备份虚拟机:调整分区表前需完整备份,避免数据丢失。
-
检查当前状态
- 使用
df -h查看文件系统使用情况,fdisk -l确认分区布局。 - 记录原有Swap分区的
Blocks大小(如1046528)及起始扇区位置(如2048)。
- 使用
-
关闭Swap
swapoff -a && free -m # 确认Swap已释放
分区表调整
-
删除旧分区
- 在
fdisk /dev/sda中依次删除原有分区(d命令),注意保留起始扇区位置。 - 示例:删除
/dev/sda1(根分区)和/dev/sda2(Swap分区)。
- 在
-
创建新分区
- 新建两个分区:
- 第一个分区(
n→p→ 起始扇区2048,结束扇区30410751)作为根分区(类型83)。 - 第二个分区(
n→p→ 起始扇区30410752,结束扇区31457279)作为Swap分区(类型82)。
- 第一个分区(
- 新建两个分区:
-
保存分区表
- 输入
w写入分区表,重启后生效(或运行partprobe强制更新)。
- 输入
交换分区配置
-
绑定旧UUID到新分区
- 通过
awk '/swap/ { print $1 }' /etc/fstab获取原有Swap的UUID(如UUID=8bb62351-4436-47df-92fe-af2865f03461)。 - 使用
dd清空新Swap分区数据,再通过mkswap -U <UUID> /dev/sda2绑定UUID。
- 通过
-
启用Swap
swapon -a && free -m # 验证Swap空间已恢复
文件系统扩容
- 调整根分区大小
- 运行
resize2fs /dev/sda1自动扩展文件系统,确保磁盘空间释放。 - 检查
df -h确认根分区容量更新(如从9.0G扩展至15G)。
- 运行
注意事项
- 分区对齐:新建分区时需保持起始扇区与原分区一致(如
2048),避免文件系统损坏。 - UUID冲突:若新Swap分区UUID未绑定,可能导致系统无法挂载,需强制覆盖旧UUID。
- 文件系统兼容性:
resize2fs仅适用于ext2/ext3/ext4文件系统,其他类型需使用对应工具(如xfs_growfs)。 - 虚拟机设置:扩展磁盘容量前,需在虚拟化平台(如VMware)中调整磁盘最大尺寸,否则分区表更新会失败。
总结
调整Linux虚拟机磁盘分区需严格遵循“备份→关闭Swap→分区表重写→UUID绑定→文件系统扩容”的流程。操作中需特别注意分区起始位置、Swap UUID一致性及文件系统类型适配性,避免因元数据错误导致系统无法启动。