【解决虚拟机根目录空间不足】VirtualBox Ubuntu扩容实践

写在前面:

  • 我是在windows11上安装了便携的VirtualBox,也就是把虚拟机安装在U盘上了,这样相当于一个可插拔的linux系统

第一步,在本地分配空间

1.1 资源管理器找到下图所示目录

1.2 查看要扩容的虚拟机的UUID,输入 VBoxManage list hdds

VBoxManage list hdds

1.3 进行扩容

VBoxManage modifyhd UUID --resize xxxx

以我这里为例,我现在想要扩容上述第二个虚拟机,那么我的命令是

VBoxManage modifyhd 5e059d95-434a-47bd-ad55-e089e1715678 --resize 35690

这里的35690指的是,给这个虚拟机一共分配35GB,那么我这里是已经分配好了

1.4 验证结果

再重新输入一遍 VBoxManage list hdds, 查看是否分配成功

第二步,使用 Live CD驱动 来从外部调整新分配的空间

理由:我们之前已经已经虚拟磁盘的总容量,但虚拟机内部的分区并没有随之扩大。这一步就是在调整分区的大小,使其占据整个虚拟磁盘的可用空间。

2.1 打开管理器页面的“设置” -> "存储" -> "点击下图光盘位置"

2.2 更换驱动,选择我们一开始下载的Ubuntu ISO 文件

2.3 启动虚拟机,使用光盘驱动,

在启动虚拟机的时候,在显示VirtualBox的界面, 迅速按“F12”,进入下图页面,并输入“c”,选择光盘驱动

2.4 选择 “Try Ubuntu” 进入 Live 环境

之后,启动成功后,选择 "Try Ubuntu"

这里我就不截图了,启动后勾选即可

2.5 进入 Live 环境后,打开终端并执行以下操作:

  1. 检查当前磁盘状态

    # 1. 查看磁盘情况
    sudo fdisk -l
    • 确认磁盘总容量已增加

    • 识别根分区(通常是最大的 Linux 分区)

  2. 扩容分区(以 /dev/sda5 为例)

    # 扩展扩展分区(如果根分区在扩展分区内)
    sudo parted /dev/sda resizepart 2 100%
    
    # 扩展逻辑分区
    sudo parted /dev/sda resizepart 5 100%
  3. 检查并扩容文件系统

# 检查文件系统类型
sudo blkid /dev/sda5

# 强制检查文件系统(ext4)
sudo e2fsck -f /dev/sda5

# 扩容文件系统
sudo resize2fs /dev/sda5

   

 4. 验证扩容结果

# 挂载根分区查看
sudo mkdir /mnt/root
sudo mount /dev/sda5 /mnt/root
df -h | grep sda5
sudo umount /mnt/root

三、按照正常方式,重启虚拟机

去虚拟机管理器那里查看,按照正常的方式启动虚拟机

搜索gpa,打开磁盘应用,发现已经扩容完毕了

<think>我们正在处理用户关于扩展VirtualBox虚拟机Linux系统分区容量的问题。据引用内容,我们可以总结出以下步骤: 1. 关闭虚拟机,使用VBoxManage工具调整虚拟磁盘大小。 2. 启动虚拟机,调整分区和文件系统大小。 具体步骤如下: ### 步骤1: 调整虚拟磁盘大小 1. 关闭虚拟机。 2. 打开命令提示符(cmd),使用VBoxManage修改虚拟硬盘大小。命令格式: ``` VBoxManage.exe modifyhd "虚拟磁盘文件路径" --resize 新大小(单位MB) ``` 例如,将磁盘扩展到20GB(20*1024=20480MB): ``` VBoxManage.exe modifyhd "D:\VirtualBox VMs\rac1\rac1.vdi" --resize 20480 ``` ### 步骤2:虚拟机中分配新增空间 调整虚拟磁盘大小后,新增的空间还未分配。需要进入Linux系统进行分区和文件系统扩展。 #### 对于使用LVM的情况(如CentOS、Ubuntu等): 1. 启动虚拟机,查看磁盘情况: ```bash sudo fdisk -l ``` 通常,磁盘为`/dev/sda`,新增的空间是未分配的。 2. 使用`fdisk`或`parted`工具创建新分区(例如`/dev/sda3`),类型为Linux LVM(8e)。 3. 将新分区添加到组(VG): ```bash sudo pvcreate /dev/sda3 sudo vgextend <组名> /dev/sda3 ``` 4. 扩展逻辑(LV)和文件系统: ```bash sudo lvextend -l +100%FREE /dev/mapper/<组名>-<逻辑名> sudo resize2fs /dev/mapper/<组名>-<逻辑名> # 对于ext4文件系统 ``` 或者对于xfs文件系统: ```bash sudo xfs_growfs /dev/mapper/<组名>-<逻辑名> ``` #### 对于不使用LVM的情况(如直接分区): 1. 使用`fdisk`或`parted`调整原有分区大小(例如`/dev/sda2`)以占用新增空间。 - 删除原有分区(注意:不会丢失数据,但操作前建议备份)并重新创建更大的分区(起始扇区相同)。 2. 使用`resize2fs`(ext4)或`xfs_growfs`(xfs)扩展文件系统。 ### 注意事项 - 操作前建议备份重要数据。 - 如果分区是LVM逻辑,则推荐使用LVM扩展方法,因为更安全且无需删除分区。 - 扩展文件系统前,确保分区大小已经调整。 ### 示例:扩展LVM管理的分区 假设分区在逻辑`/dev/centos/root`上,组名为`centos`,磁盘新增空间已分配为`/dev/sda3`。 ```bash # 创建物理 sudo pvcreate /dev/sda3 # 扩展组 sudo vgextend centos /dev/sda3 # 扩展逻辑(占用所有空闲空间) sudo lvextend -l +100%FREE /dev/centos/root # 扩展文件系统(假设为ext4) sudo resize2fs /dev/centos/root ``` ### 相关问题 1. 如何检查Linux系统中的磁盘空间使用情况? 2. 在VirtualBox中扩展虚拟磁盘后,为什么在Linux系统中看不到新增的空间? 3. 除了使用命令行,是否有图形化工具可以调整Linux分区? 4. 扩展分区时遇到文件系统不支持在线调整怎么办? 5. 如何备份虚拟机磁盘以防止操作失误导致数据丢失? 请据实际系统情况调整操作步骤。如果遇到问题,请提供具体的Linux发行版和分区情况。 [^1]: 引用[1] [^2]: 引用[2] [^3]: 引用[3] [^4]: 引用[4]</think>### 扩展VirtualBox虚拟机Linux系统分区容量的步骤 #### 步骤1:调整虚拟磁盘大小(宿主机操作) 1. **关闭虚拟机** 确保虚拟机处于完全关闭状态。 2. **执行磁盘扩容命令** 打开命令提示符(Windows)或终端(macOS/Linux),执行: ```powershell # 语法:VBoxManage modifyhd "虚拟磁盘路径" --resize 新大小(MB) VBoxManage.exe modifyhd "D:\VirtualBox VMs\your_vm\disk.vdi" --resize 30720 ``` - 示例:扩展到30GB(30*1024=30720MB) - 路径需替换为实际虚拟磁盘文件路径(.vdi或.vhd) - 扩容成功会显示进度条:`0%...10%...100%` [^1][^2][^3] #### 步骤2:在Linux系统中分配新增空间 > **注意**:以下操作需在虚拟机内执行,建议使用Live CD/USB启动或直接登录系统 3. **识别新增空间** ```bash sudo fdisk -l # 查看磁盘,通常为/dev/sda ``` 输出示例: ``` Disk /dev/sda: 30 GiB, 32212254720 bytes # 确认新容量生效 ``` 4. **扩展分区(两种场景)** **场景A:使用LVM(推荐)** ```bash sudo pvresize /dev/sda2 # 扩展物理 sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-root # 扩展逻辑 sudo resize2fs /dev/mapper/ubuntu--vg-root # 扩展文件系统(ext4) # 或 xfs_growfs / # 若为XFS文件系统 ``` **场景B:无LVM(需分区工具)** ```bash sudo cfdisk /dev/sda # 交互式分区工具 ``` 1. 删除原分区(如`/dev/sda2`)→ **不保存** 2. 新建分区:起始位置相同,结束位置拉满新增空间 3. 分区类型设为`Linux filesystem`(代码83) 4. 保存退出 → 重启系统 5. **扩展文件系统** ```bash sudo resize2fs /dev/sda2 # 扩展ext4分区 # 或 sudo xfs_growfs / # XFS文件系统 ``` #### 步骤3:验证结果 ```bash df -h / # 查看分区容量 ``` 输出示例: ``` Filesystem Size Used Avail Use% Mounted on /dev/sda2 30G 15G 14G 52% / # 确认容量已扩展 ``` ### 关键注意事项 1. **备份数据**:操作前务必备份虚拟机快照或重要文件 2. **分区对齐**:使用`cfdisk`时保持起始扇区与原分区一致 3. **LVM优势**:使用LVM可避免步骤4的复杂分区操作[^4] 4. **文件系统支持**:`resize2fs`适用于ext2/3/4,XFS需用`xfs_growfs` > 扩容后若遇到GRUB问题,可尝试:`sudo update-grub && sudo grub-install /dev/sda` ### 相关问题 1. 如何在不重启虚拟机的情况下扩展VirtualBox虚拟磁盘? 2. LVM与直接分区的优缺点比较? 3. 扩展分区时遇到"Couldn't find valid filesystem superblock"错误如何解决? 4. 如何将新增空间分配为独立分区而非扩展分区? 5. VirtualBox虚拟机快照对磁盘扩容操作有何影响? [^1]: 引用[1] [^2]: 引用[2] [^3]: 引用[3] [^4]: 引用[4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值