温馨提示×

CentOS下VirtualBox虚拟机磁盘扩容方法

小樊
43
2025-11-09 18:54:47
栏目: 云计算

CentOS下VirtualBox虚拟机磁盘扩容方法(LVM场景,常见于CentOS 7及以上)

一、前置准备

  1. 备份重要数据:扩容操作存在数据丢失风险,务必提前备份虚拟机内关键数据(如/home、/etc等目录)。
  2. 确认虚拟机状态:确保虚拟机处于完全关闭状态(非休眠或挂起),避免扩容过程中数据损坏。
  3. 确认磁盘类型:通过lsblk命令查看磁盘分区结构,确认系统使用LVM(逻辑卷管理)(典型路径为/dev/mapper/centos-root,其中“centos”为卷组名)。

二、VirtualBox层面扩容虚拟磁盘

  1. 打开VirtualBox,选中目标CentOS虚拟机,点击顶部菜单栏【设置】。
  2. 进入【存储】选项卡,找到系统磁盘(通常为“Controller: SATA”下的虚拟磁盘文件,如centos7-disk001.vdi)。
  3. 点击磁盘右侧的【属性】按钮(或直接选中磁盘后点击下方【调整大小】),在弹出窗口中输入新的磁盘大小(如从20G扩容至50G),点击【确定】保存设置。

三、CentOS虚拟机内部扩容操作

1. 查看当前磁盘与分区状态

启动虚拟机,登录系统后执行以下命令:

  • lsblk:查看磁盘与分区的层级关系(确认新增空间是否显示为未分配,如/dev/sda下是否有未划分的容量);
  • fdisk -l:查看磁盘详细分区信息(确认磁盘总大小已更新,如/dev/sda从20G变为50G)。

2. 创建新分区(若未分配空间未划分)

lsblk显示/dev/sda有未分配空间,使用fdisk工具创建新分区:

  1. 执行sudo fdisk /dev/sda进入分区管理界面;
  2. 输入n创建新分区,选择p(主分区),分区号选3(若已有sda1sda2),起始扇区默认,结束扇区默认(或手动指定大小,如+20G);
  3. 输入t修改分区类型,选择3对应的分区,输入8e(Linux LVM类型);
  4. 输入w保存分区表并退出(若系统提示需重启,可跳过,后续用partprobe刷新分区信息)。

3. 刷新分区表

执行sudo partprobe命令,让系统立即识别新分区(避免重启虚拟机)。

4. 扩展物理卷(PV)

将新分区初始化为物理卷:

sudo pvcreate /dev/sda3  # 替换为实际新分区(如/dev/sda3)

执行pvdisplay命令,确认新物理卷已创建。

5. 扩展卷组(VG)

将新物理卷添加到现有卷组(默认卷组名为“centos”):

sudo vgextend centos /dev/sda3  # 替换为实际卷组名(通过`vgs`命令查看)

执行vgdisplay命令,确认卷组总容量已增加。

6. 扩展逻辑卷(LV)

扩展逻辑卷(默认逻辑卷名为“root”,路径为/dev/mapper/centos-root):

sudo lvextend -L +20G /dev/mapper/centos-root  # 扩展20G(可根据需求调整,如`-l +100%FREE`使用全部剩余空间)

执行lvdisplay命令,确认逻辑卷容量已增加。

7. 扩展文件系统

根据文件系统类型选择对应命令:

  • XFS文件系统(CentOS 7及以上默认):
    sudo xfs_growfs /dev/mapper/centos-root  # 在线扩展文件系统,无需卸载
    
  • EXT4文件系统
    sudo resize2fs /dev/mapper/centos-root  # 扩展EXT4文件系统
    

8. 验证扩容结果

执行df -h命令,查看/dev/mapper/centos-root的容量是否已增加至预期值(如从18G增至50G)。

注意事项

  1. 分区连续性:若未分配空间不连续,需先调整现有分区(如删除并重建相邻分区),确保新分区能容纳新增空间(操作复杂,建议提前备份)。
  2. 非LVM场景:若系统未使用LVM(直接使用裸分区),扩容步骤需简化(直接扩展分区并格式化),但风险更高,不建议新手操作。
  3. 版本兼容性:确保VirtualBox版本≥6.0(支持虚拟磁盘动态扩容),CentOS系统版本≥7(支持LVM在线扩展)。
  4. 操作风险:若扩容后系统无法启动,可通过VirtualBox的“恢复默认设置”或使用Live CD修复引导(如GRUB)。

0