如何快速扩容CentOS VirtualBox虚拟机磁盘,有效提升系统性能?
- 内容介绍
- 文章标签
- 相关推荐
一、痛点概述:硬盘空间不足如何影响你的工作
VirtualBox CentOS 虚拟机常因硬盘空间耗尽而导致:
- 日志写入失败,程序报错。
- 软件包更新或编译过程被迫中止。
- 数据库写入卡顿,业务响应变慢。
- 无法再创建新文件,严重时甚至导致程序崩溃。
这些问题往往让使用者感到“**数据丢失风险大**”“**操作步骤繁琐**”。下面提供一套 **快速、可靠且安全** 的扩容方案,让你在几分钟内恢复硬盘空间并提高程序性能。
二、扩容前的准备工作
1. 数据备份
即使扩容过程是在线操作。也建议先对关键数据进行快照或备份,以防意外。
2. 关闭虚拟机
在对 .vdi 文件进行大小调整前。请务必关闭对应的 CentOS 虚拟机,避免磁盘损坏。
3. 确认 VirtualBox 版本支持动态磁盘扩容
VirtualBox 5.0 以上均已内置 VBoxManage modifyhd --resize 功能。如果使用旧版,请先升级,
三、使用 VBoxManage VDI 磁盘容量
# 打开 Windows 命令行
# 进入 VirtualBox 安装目录
cd "C:\Program Files\Oracle\VirtualBox"
# 查看已有虚拟硬盘信息
VBoxManage list hdds
# 假设要扩容的磁盘位于 E:\CentOS\CentOS.vdi。目标大小为 40 GB
VBoxManage modifyhd "E:\CentOS\CentOS.vdi" --resize 40960
# 参数说明:--resize 后的数值单位为 MB
# 完成后
查看确认新容量
VBoxManage showhdinfo "E:\CentOS\CentOS.vdi"
四、在 CentOS 中识别新增空间
1. 启动虚拟机并检查磁盘状态
# 查看当前磁盘分区表
sudo fdisk -l /dev/sda
# 或者使用更现代的工具
sudo lsblk
2. 使用 parted 创建新分区
# 启动交互式 parted
sudo parted /dev/sda
print # 查看当前分区布局
mkpart primary ext4 21GB 100% # 从旧分区结束位置到磁盘末尾创建新分区
quit
五、LVM 环境下的完整扩容流程
如果你的根文件程序是基于 LVM 的,这里提供一步步指令。
1. 将新分区标记为物理卷
# 假设新建的分区是 /dev/sda3
sudo pvcreate /dev/sda3
2. 将 PV 加入已有卷组
# 查看现有卷组名称,一般为 centos 或 vg01 等
sudo vgdisplay
# 示例:将 /dev/sda3 添加到名为 centos 的卷组
sudo vgextend centos /dev/sda3 # 替换为实际卷组名和设备名
3. 逻辑卷大小
# 常见的根 LV 名称为 centos-root,下面示例增加 20 GB
sudo lvextend -L +20G /dev/mapper/centos-root
# 如果想一次性占满所有剩余空间。
可使用 -l +100%FREE
# sudo lvextend -l +100%FREE /dev/mapper/centos-root
4. 根据文件程序类型执行相应的在线扩容命令
- XFS 文件程序
# 在线扩容,无需卸载文件程序
sudo xfs_growfs /dev/mapper/centos-root
# 在线扩容,需要先确保 LV 已经挂载,可直接执行:
sudo resize2fs /dev/mapper/centos-root
六、验证扩容是否成功 & 性能检查
# 查看磁盘使用情况,确认根分区已增长至预期值
df -hT /
# 检查 LVM 状态是否正常
sudo lvs # 列出逻辑卷大小
sudo vgs # 列出卷组剩余可用空间
# 可选:运行 fio 或 dd 做一次 I/O 基准测试,感受性能提高。# 示例:
dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct && sync
rm -f /tmp/testfile
七、常见错误及快速排查技巧
-
xfs_growfs 报 “device is busy”: 确认对应 LV 已挂载且没有只读限制;如仍报错,可尝试
suspend/resume -
LVM 找不到 PV: 检查
/dev/sdaX是否正确标记为 Linux LVM 分区;必要时重新运行wipefs -a /dev/sdaX && pvcreate /dev/sdaX - resize2fs 提示 Bad magic number: 说明目标 LV 并非 EXT4,请先确认文件程序类型再执行对应命令。
- VBoxManage 报 “Failed to open medium”: 确保 VirtualBox 已以管理员身份运行,而且 .vdi 文件未被其他进程占用。
八、完整步骤回顾
- 关闭 CentOS 虚拟机。
-
在宿主机命令行执行
。 -
/
确认出现未分配空间。- ` 创建新分区并标记为 LVM。说起来,
- /
/完成 LVM 扩容。xfs_growfs 或resize2fs。 - df -hT 验证结果,并做简单 I/O 测试。
- .
一、痛点概述:硬盘空间不足如何影响你的工作
VirtualBox CentOS 虚拟机常因硬盘空间耗尽而导致:
- 日志写入失败,程序报错。
- 软件包更新或编译过程被迫中止。
- 数据库写入卡顿,业务响应变慢。
- 无法再创建新文件,严重时甚至导致程序崩溃。
这些问题往往让使用者感到“**数据丢失风险大**”“**操作步骤繁琐**”。下面提供一套 **快速、可靠且安全** 的扩容方案,让你在几分钟内恢复硬盘空间并提高程序性能。
二、扩容前的准备工作
1. 数据备份
即使扩容过程是在线操作。也建议先对关键数据进行快照或备份,以防意外。
2. 关闭虚拟机
在对 .vdi 文件进行大小调整前。请务必关闭对应的 CentOS 虚拟机,避免磁盘损坏。
3. 确认 VirtualBox 版本支持动态磁盘扩容
VirtualBox 5.0 以上均已内置 VBoxManage modifyhd --resize 功能。如果使用旧版,请先升级,
三、使用 VBoxManage VDI 磁盘容量
# 打开 Windows 命令行
# 进入 VirtualBox 安装目录
cd "C:\Program Files\Oracle\VirtualBox"
# 查看已有虚拟硬盘信息
VBoxManage list hdds
# 假设要扩容的磁盘位于 E:\CentOS\CentOS.vdi。目标大小为 40 GB
VBoxManage modifyhd "E:\CentOS\CentOS.vdi" --resize 40960
# 参数说明:--resize 后的数值单位为 MB
# 完成后
查看确认新容量
VBoxManage showhdinfo "E:\CentOS\CentOS.vdi"
四、在 CentOS 中识别新增空间
1. 启动虚拟机并检查磁盘状态
# 查看当前磁盘分区表
sudo fdisk -l /dev/sda
# 或者使用更现代的工具
sudo lsblk
2. 使用 parted 创建新分区
# 启动交互式 parted
sudo parted /dev/sda
print # 查看当前分区布局
mkpart primary ext4 21GB 100% # 从旧分区结束位置到磁盘末尾创建新分区
quit
五、LVM 环境下的完整扩容流程
如果你的根文件程序是基于 LVM 的,这里提供一步步指令。
1. 将新分区标记为物理卷
# 假设新建的分区是 /dev/sda3
sudo pvcreate /dev/sda3
2. 将 PV 加入已有卷组
# 查看现有卷组名称,一般为 centos 或 vg01 等
sudo vgdisplay
# 示例:将 /dev/sda3 添加到名为 centos 的卷组
sudo vgextend centos /dev/sda3 # 替换为实际卷组名和设备名
3. 逻辑卷大小
# 常见的根 LV 名称为 centos-root,下面示例增加 20 GB
sudo lvextend -L +20G /dev/mapper/centos-root
# 如果想一次性占满所有剩余空间。
可使用 -l +100%FREE
# sudo lvextend -l +100%FREE /dev/mapper/centos-root
4. 根据文件程序类型执行相应的在线扩容命令
- XFS 文件程序
# 在线扩容,无需卸载文件程序
sudo xfs_growfs /dev/mapper/centos-root
# 在线扩容,需要先确保 LV 已经挂载,可直接执行:
sudo resize2fs /dev/mapper/centos-root
六、验证扩容是否成功 & 性能检查
# 查看磁盘使用情况,确认根分区已增长至预期值
df -hT /
# 检查 LVM 状态是否正常
sudo lvs # 列出逻辑卷大小
sudo vgs # 列出卷组剩余可用空间
# 可选:运行 fio 或 dd 做一次 I/O 基准测试,感受性能提高。# 示例:
dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct && sync
rm -f /tmp/testfile
七、常见错误及快速排查技巧
-
xfs_growfs 报 “device is busy”: 确认对应 LV 已挂载且没有只读限制;如仍报错,可尝试
suspend/resume -
LVM 找不到 PV: 检查
/dev/sdaX是否正确标记为 Linux LVM 分区;必要时重新运行wipefs -a /dev/sdaX && pvcreate /dev/sdaX - resize2fs 提示 Bad magic number: 说明目标 LV 并非 EXT4,请先确认文件程序类型再执行对应命令。
- VBoxManage 报 “Failed to open medium”: 确保 VirtualBox 已以管理员身份运行,而且 .vdi 文件未被其他进程占用。
八、完整步骤回顾
- 关闭 CentOS 虚拟机。
-
在宿主机命令行执行
。 -
/
确认出现未分配空间。- ` 创建新分区并标记为 LVM。说起来,
- /
/完成 LVM 扩容。xfs_growfs 或resize2fs。 - df -hT 验证结果,并做简单 I/O 测试。
- .

