在使用 VirtualBox 虚拟机时,可能会遇到磁盘空间不足的问题,直接对原有的 vdi 文件进行扩容,当然也可以直接为虚拟机添加一块新的存储介质。记录下如何扩展 VirtualBox 虚拟机的vdi磁盘大小,以及遇到的问题
有些步骤没有截图,关键的地方都有描述
在虚拟机关闭的情况下,通过gui界面,选择工具 -> 介质,点击需要扩容的磁盘,右下角选择扩容的大小,点击应用,之后启动虚拟机使用 fdisk 查看和管理磁盘,这里直接对 vdi 文件进行了扩容, 并不是直接对虚拟机内部的磁盘进行了扩容,所以通过 df -h 查看磁盘大小时,还是原来的大小
需要注意的是,如果虚拟机存在快照,是无法正常进行扩容的,虽然可以对 vdi 介质进行扩容,但是在虚拟机内部无法通过 fdisk 查看到变化,需要将快照删除后才能正常进行扩容


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
┌─[wxj@darkstar-ob]─[~]
└──╼ $ sudo fdisk -l
[sudo] wxj 的密码:
Disk /dev/sda:201 GiB,215822106624 字节,421527552 个扇区 ## 磁盘从100G扩容到201G
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16d33828
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 251658239 249559040 119G 8e Linux LVM
Disk /dev/mapper/ao-root:70 GiB,75161927680 字节,146800640 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/ao-swap:7.9 GiB,8468299776 字节,16539648 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/ao-home:41.1 GiB,44140855296 字节,86212608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
## 磁盘并未扩容,需要通过 fdisk 分配
└──╼ $ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.8G 0 5.8G 0% /dev/shm
tmpfs 5.8G 8.6M 5.8G 1% /run
tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup
/dev/mapper/ao-root 70G 3.6G 67G 6% /
/dev/sda1 1014M 231M 784M 23% /boot
/dev/mapper/ao-home 42G 35G 6.5G 85% /home
tmpfs 1.2G 0 1.2G 0% /run/user/1000
还需要注意的目前仅支持扩容,不支持缩容

1
2
## 进入 vmbox 的安装目录下,通过 vboxmanage 命令进行扩容为 30000 M
VBoxManage modifymedium vmfilesname.vdi --resize 30000
扩容之后启动虚拟机,使用 fdisk 管理磁盘分区
不想管理多块虚拟机磁盘的时候,可以直接对现有的 vdi 文件进行扩容,扩容完成后需要在虚拟机内部使用 fdisk 进行分区和格式化操作,才能正常使用。如果是对《动态分配存储》类型的 vdi文件扩容,只是表示可以使用的最大磁盘大小,也不会立即分配空间

如果当前虚拟机存在快照,也无法对 vdi 进行扩容,虽然不会报错,但是实际在虚拟机内部无法看到扩容的空间