先扩展虚拟机硬盘容量,再分配新增空间。关闭虚拟机并删除快照后,在VMware或VirtualBox中扩大硬盘大小;进入系统,通过growpart、pvresize、lvextend等命令(LVM)或gparted工具(非LVM)将未分配空间加入目标分区,最后用df -h验证扩容结果。

虚拟机磁盘空间不足是常见问题,解决方法分两步:先在虚拟机软件中扩大硬盘总容量,再进入系统内将新增的空间分配给需要的分区。整个过程不难,但操作前务必备份重要数据。
第一步:在虚拟机软件中扩展硬盘容量
这是扩容的基础,必须先完成。
- 关闭虚拟机:确保虚拟机完全关机,不能是挂起状态。
- 删除快照:如果有快照,VMware等软件的“扩展”功能会变灰。需先通过“管理” -> “快照”删除所有快照。
-
执行扩展:
- VMware:右键虚拟机 -> 设置 -> 硬件 -> 硬盘 -> 扩展,输入目标大小(如从20GB改为50GB)并确认。
- VirtualBox:在主机终端运行命令 VBoxManage modifyhd "虚拟机路径.vdi" --resize 51200(51200单位为MB,即50GB)。
此时,虚拟硬盘的总容量已增加,但系统内的分区大小并未改变,需要下一步操作。
第二步:在操作系统内分配新增空间
根据你的Linux发行版和文件系统类型,选择合适的方法。
如果根分区是 /dev/mapper/centos-root 这种形式,说明使用了LVM,操作更安全。
- 安装必要工具:sudo yum install cloud-utils-growpart -y(或 sudo apt install cloud-guest-utils for Ubuntu)。
- 查看磁盘:sudo fdisk -l,确认新空间已加入且未被分配。
- 扩展分区:sudo growpart /dev/sda 2(假设要扩展的是第二个分区,如/dev/sda2)。
- 刷新分区表:sudo partprobe /dev/sda。
- 扩展物理卷:sudo pvresize /dev/sda2。
- 扩展逻辑卷:sudo lvextend -l +100%FREE /dev/mapper/centos-root(将所有空闲空间分配给根分区)。
- 扩展文件系统:
- XFS格式(默认):sudo xfs_growfs /。
- ext4格式:sudo resize2fs /dev/mapper/centos-root。
- 验证结果:df -h 查看根目录容量是否增加。
对于直接分区的磁盘,可以使用图形化工具gparted,简单直观。
- 安装gparted:sudo apt install gparted -y(Ubuntu/Debian)或 sudo yum install gparted(CentOS/RHEL)。
- 启动工具:sudo gparted。
- 在gparted界面中,选中需要扩展的分区(如/dev/sda1),右键选择“调整大小/移动”。
- 拖动滑块,将分区扩展到包含所有未分配空间,点击“调整大小”,然后点击左上角的绿色对勾应用操作。
- 完成后重启虚拟机,用 df -h 验证。
特殊情况处理
如果遇到无法安装软件(如提示/var/cache/apt/archives空间不足),可先清理缓存:sudo apt-get clean。对于使用fdisk手动调整分区的情况,风险较高,建议只在没有其他选择时进行,并严格按步骤操作(备份、记下起始扇区、删除重建分区)。基本上就这些。










