如何为固定大小的Virtualbox虚拟硬盘扩容

上一篇文章讨论了如何为动态分配的Virtualbox虚拟硬盘扩容,这一篇文章将介绍如何为固定大小的Virtualbox虚拟硬盘扩容。这篇文章假设宿主机的系统是Linux.客户机可以是Linux或Windows.

查看虚拟硬盘是否是固定大小的

打开虚拟机的设置界面,在左侧栏点击存储(Storage).在存储树(Stroarge Tree)下面选择你的虚拟硬盘.在右边可以看见虚拟硬盘的信息.在下面可以看见,我的虚拟硬盘是固定大小的(Fixed size).

查看虚拟硬盘是否是固定大小的

备份虚拟硬盘

在我们为virtualbox虚拟硬盘扩容之前,最好是要先备份一下虚拟硬盘以防出错导致数据丢失.

右击位置(location)那一行,将虚拟硬盘的路径复制下来.

备份虚拟硬盘

在宿主机上打开一个终端,输入下面的命令备份虚拟硬盘.

cp /location-of-virtual-disk /location-of-backup-virtual-disk

将location替换为虚拟硬盘的具体路径.例如,我输入的命令如下.

cp /media/matrix/sdb9/VMs/openSUSE.vdi /media/matrix/sdb9/VMs/openSUSE-bakcup.vdi

注意,备份的虚拟硬盘名称要与原来的名称不同。

为固定大小的Virtualbox虚拟硬盘扩容

首先,我们要在虚拟机里添加一个新的虚拟硬盘,这个新的虚拟硬盘容量要大于旧的虚拟硬盘。然后使用dd命令行工具将原来虚拟硬盘上的操作系统复制到新的虚拟硬盘。再为新虚拟硬盘的操作系统扩容,以使用全部硬盘空间。最后我们将旧虚拟硬盘从虚拟机中移除。

添加一个新的虚拟硬盘

打开虚拟机的设置界面,在左侧栏选择存储,在存储树(Storage Tree)下面,点击IDE控制器(Controller: IDE). 然后点击加号图标,选择添加硬盘

添加新的虚拟硬盘

在下一个窗口中选择创建新的硬盘

创建新的硬盘

然后选择虚拟硬盘的格式。我选择的是VDI格式。

虚拟硬盘的格式

在一下窗口中,选择虚拟硬盘是要动态分配容量还是固定大小。我选择了动态分配大小,因为创建的速度快。但你也可以选择固定大小。

动态分配容量还是固定大小

给新的虚拟硬盘命名,并分配大小。记住要比原来的虚拟硬盘容量大。

创建新的虚拟硬盘

点击创建按钮。创建完成后,你的虚拟机就有两块虚拟硬盘了。

虚拟硬盘

使用dd命令行工具将操作系统复制到新的虚拟硬盘

为了能够用dd复制操作系统到新的虚拟硬盘,我们需要用一个Linux ISO镜像文件启动虚拟机。

点击IDE控制器(Controller: IDE), 再点击右边的光盘图标,从宿主机里选择一个Linux ISO镜像文件。

选择iso文件

保存设置后启动虚拟机。进入Linux Live系统环境后,打开一个终端窗口,输入下面的命令将/dev/sda复制到/dev/sdb

sudo dd if=/dev/sda of=/dev/sdb

旧的虚拟硬盘是/dev/sda,新的虚拟硬盘是/dev/sdb。如果你需要确认一下,可以打开gparted分区管理器来查看。

复制过程会比较漫长。当复制完成后,在Linux Live系统里打开gparted分区管理工具。选择新的虚拟硬盘。你可以看见操作系统从旧的虚拟硬盘复制到了新的虚拟硬盘上。但有一些未分配的空间(unallocated),因为新的虚拟硬盘容量更大。

gparted分区管理工具

我们可以用gparted来扩展根分区文件系统的大小,以使用全部的硬盘空间。扩展文件系统完成后,关闭虚拟机,打开虚拟机设置窗口,将旧的虚拟硬盘以及Linux ISO镜像文件从虚拟机里移除。

移除虚拟硬盘

保存设置后启动虚拟机。这次虚拟机是从新的虚拟硬盘启动。如果你的guest OS是Linux,那么可以输入下面的命令查看新的虚拟硬盘大小。

sudo fdisk -l

为这篇文章评分
[Total: 4 Average: 3]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here