阅读量:14
CentOS下VirtualBox虚拟机磁盘扩容方法(LVM场景,常见于CentOS 7及以上)
一、前置准备
- 备份重要数据:扩容操作存在数据丢失风险,务必提前备份虚拟机内关键数据(如/home、/etc等目录)。
- 确认虚拟机状态:确保虚拟机处于完全关闭状态(非休眠或挂起),避免扩容过程中数据损坏。
- 确认磁盘类型:通过
lsblk命令查看磁盘分区结构,确认系统使用LVM(逻辑卷管理)(典型路径为/dev/mapper/centos-root,其中“centos”为卷组名)。
二、VirtualBox层面扩容虚拟磁盘
- 打开VirtualBox,选中目标CentOS虚拟机,点击顶部菜单栏【设置】。
- 进入【存储】选项卡,找到系统磁盘(通常为“Controller: SATA”下的虚拟磁盘文件,如
centos7-disk001.vdi)。 - 点击磁盘右侧的【属性】按钮(或直接选中磁盘后点击下方【调整大小】),在弹出窗口中输入新的磁盘大小(如从20G扩容至50G),点击【确定】保存设置。
三、CentOS虚拟机内部扩容操作
1. 查看当前磁盘与分区状态
启动虚拟机,登录系统后执行以下命令:
lsblk:查看磁盘与分区的层级关系(确认新增空间是否显示为未分配,如/dev/sda下是否有未划分的容量);fdisk -l:查看磁盘详细分区信息(确认磁盘总大小已更新,如/dev/sda从20G变为50G)。
2. 创建新分区(若未分配空间未划分)
若lsblk显示/dev/sda有未分配空间,使用fdisk工具创建新分区:
- 执行
sudo fdisk /dev/sda进入分区管理界面; - 输入
n创建新分区,选择p(主分区),分区号选3(若已有sda1、sda2),起始扇区默认,结束扇区默认(或手动指定大小,如+20G); - 输入
t修改分区类型,选择3对应的分区,输入8e(Linux LVM类型); - 输入
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)。
注意事项
- 分区连续性:若未分配空间不连续,需先调整现有分区(如删除并重建相邻分区),确保新分区能容纳新增空间(操作复杂,建议提前备份)。
- 非LVM场景:若系统未使用LVM(直接使用裸分区),扩容步骤需简化(直接扩展分区并格式化),但风险更高,不建议新手操作。
- 版本兼容性:确保VirtualBox版本≥6.0(支持虚拟磁盘动态扩容),CentOS系统版本≥7(支持LVM在线扩展)。
- 操作风险:若扩容后系统无法启动,可通过VirtualBox的“恢复默认设置”或使用Live CD修复引导(如GRUB)。