Post

Linux虚拟机磁盘分区调整与交换分区设置指南

2026-04-30

Linux虚拟机磁盘分区与交换分区调整指南

概述

本文详细说明如何在Linux虚拟机中扩展磁盘分区并重新配置交换分区,涵盖分区表调整、文件系统扩容及Swap分区的UUID绑定操作。操作涉及fdisk分区工具、swapoff/mkswap管理交换空间,以及resize2fs调整文件系统大小等核心步骤,适用于VMware等虚拟化平台下的Ubuntu系统。

核心概念

  • 磁盘分区表:记录硬盘分区起始位置、大小及类型(如Linux、Swap)的元数据,需在磁盘扩容后重新生成。
  • 交换分区(Swap):作为内存的扩展,需通过UUID在/etc/fstab中绑定挂载点,分区类型标识为82(Linux swap)。
  • 文件系统调整:使用resize2fs动态扩展ext文件系统大小,需确保分区表更新后执行。

操作流程

准备阶段

  1. 备份虚拟机:调整分区表前需完整备份,避免数据丢失。

  2. 检查当前状态

    • 使用df -h查看文件系统使用情况,fdisk -l确认分区布局。
    • 记录原有Swap分区的Blocks大小(如1046528)及起始扇区位置(如2048)。
  3. 关闭Swap

    swapoff -a && free -m  # 确认Swap已释放
    

分区表调整

  1. 删除旧分区

    • fdisk /dev/sda中依次删除原有分区(d命令),注意保留起始扇区位置。
    • 示例:删除/dev/sda1(根分区)和/dev/sda2(Swap分区)。
  2. 创建新分区

    • 新建两个分区:
      • 第一个分区(np → 起始扇区2048,结束扇区30410751)作为根分区(类型83)。
      • 第二个分区(np → 起始扇区30410752,结束扇区31457279)作为Swap分区(类型82)。
  3. 保存分区表

    • 输入w写入分区表,重启后生效(或运行partprobe强制更新)。

交换分区配置

  1. 绑定旧UUID到新分区

    • 通过awk '/swap/ { print $1 }' /etc/fstab获取原有Swap的UUID(如UUID=8bb62351-4436-47df-92fe-af2865f03461)。
    • 使用dd清空新Swap分区数据,再通过mkswap -U <UUID> /dev/sda2绑定UUID。
  2. 启用Swap

    swapon -a && free -m  # 验证Swap空间已恢复
    

文件系统扩容

  1. 调整根分区大小
    • 运行resize2fs /dev/sda1自动扩展文件系统,确保磁盘空间释放。
    • 检查df -h确认根分区容量更新(如从9.0G扩展至15G)。

注意事项

  1. 分区对齐:新建分区时需保持起始扇区与原分区一致(如2048),避免文件系统损坏。
  2. UUID冲突:若新Swap分区UUID未绑定,可能导致系统无法挂载,需强制覆盖旧UUID。
  3. 文件系统兼容性resize2fs仅适用于ext2/ext3/ext4文件系统,其他类型需使用对应工具(如xfs_growfs)。
  4. 虚拟机设置:扩展磁盘容量前,需在虚拟化平台(如VMware)中调整磁盘最大尺寸,否则分区表更新会失败。

总结

调整Linux虚拟机磁盘分区需严格遵循“备份→关闭Swap→分区表重写→UUID绑定→文件系统扩容”的流程。操作中需特别注意分区起始位置、Swap UUID一致性及文件系统类型适配性,避免因元数据错误导致系统无法启动。