如何转移VirtualBox下的虚拟机到其他磁盘

本文详细介绍如何将VirtualBox虚拟机从C盘迁移到其他磁盘,以及如何通过修改VDI文件来扩容虚拟机磁盘空间。包括使用命令行设置VDI UUID、修改虚拟机配置、磁盘分区与格式化等步骤。

前言

我们知道VirtualBox给我们提供了很多方便,可以在上面建立不同操作系统的虚拟机,并方便我们搭建集群等等作为测试。但是VirtualBox默认的虚拟机创建在C盘,当我们建立大量虚拟机后,磁盘空间就变的不足。如何转移VirtualBox下的虚拟机到其他磁盘。

迁移方法

(1)在其他磁盘创建一个目录用来存放要迁移的虚拟机。

(2)打开VirtualBox的安装目录,一般在“C:\Program Files\Oracle\VirtualBox”下,然后输入如下命令“VBoxManage internalcommands sethduuid “G:\新建文件夹\ubuntu16-02\ubuntu16-0vdi”。结果会输出这个VDI的UUID

(3)点击要移动的虚拟机,然后点击“管理”菜单下的“全局设定”。

(4)选择想要存放VDI的路径。我们知道VDI 是虚拟机磁盘,虚拟机主要占用空间在这里。

(5)打开虚拟机的设置,选择“存储”。删除之前的VDI,添加新目录下的VDI即可。

VirtualBox 虚拟机扩容

第一种方法可以直接挂载磁盘的方法扩容,可以通过在Virtual Box的面板里进行操作。第二种可以扩展已经存在的磁盘。下面介绍如何通过命令进行基于原来磁盘的扩容。

(1)打开cmd 窗口。切换到VirtualBox的安装目录下。

(2)可以查看所有的VDI的UUID

VBoxManage list hdds

(3)然后使用VBoxManage modifyhd [虚拟机vdi文件位置] –-resize [102400]  进行扩容。如图,VBoxManage modifyhd是命令,D:\virtual\xxxx是要扩容的虚拟机vdi文件路径  40860是以M为单位,也就是更改为40G

(4)操作成功后该虚拟的硬盘即变成了40G,但要注意了,此40G空间还没有分配

(5)打开虚拟机查看磁盘情况:df –lh

(6)不是已经扩容为50G了吗?怎么还是提醒我空间不够用?原来虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统[格式化],所以linux操作系统无法识别(其实就相当于你插入了一块新硬盘,但是你并没有对其进行分区、格式化是一个道理)

sudo fdisk –l /dev/sda

(7)开始分区,输入命令$sudo fdisk /dev/sda,然后按m查看帮助文档如下所示:

(8)如上图所示,按n命令的话就增加一个分区,如下所示

 

(9)如上图所示: 

     首先输入命令:n(添加新分区)之后回车: 
     接着输入命令:p 
     剩下步骤全按回车默认, 
     最后输入命令w保存分区信息。再查看下分区信息:sduo fdisk -l 

发现多了一个分区 /dev/sda4。(之前重复做了一次分区操作,划了一个分区/dev/sda3) 
然后重启Ubuntu虚拟机。

(10)格式化分区,格式化刚才划好的分区/dev/sda4

sudo mkfs -t ext4 /dev/sda4

(11)挂载分区 

创建目录 /home/ouyangpeng/sda4

sudo mkdir sda4

将分区 /dev/sda4 挂载到 /home/wenchuangliu/sda4

sudo mount /dev/sda4 /home/wenchuangliu/sda4

(12)开机自动挂载,则修改/etc/fstab文件,在这个文件里面添加一行: 
使用vim命令编辑/etc/fstab文件

sudo vim /etc/fstab

增加如下一行代码

/dev/sda4 /home/ouyangpeng/sda4/ ext4 defaults 0 1

(13)至此,容量扩展完成了,再次查看下刚刚挂载好的分区

df –H

 

<think>好的,我现在需要帮助用户解决如何将现有的VirtualBox7.0虚拟机迁移到新磁盘的问题。用户之前已经询问过如何安装到其他盘,现在进一步想迁移虚拟机到新磁盘。我需要结合之前的回答和提供的引用内容来给出解决方案。首先,回顾用户的历史问题,之前我指导了如何安装VirtualBox到非系统盘以及修改默认存储路径。现在用户需要迁移现有的虚拟机到新磁盘,这可能涉及到虚拟机文件的位置移动或克隆。接下来,查看用户提供的站内引用。引用[1]提到将VDI文件导入VMware ESXi,可能需要格式转换,但用户的问题是关于VirtualBox自身的迁移,所以这可能不是直接相关,但里面的VDI文件操作可能有参考价值。引用[2]提到了使用VBoxManage命令克隆虚拟机并修改UUID,这直接关联到克隆和修改磁盘路径,应该是关键信息。 用户的需求是将虚拟机一个磁盘迁移一个磁盘,比如从C盘移到D盘。我需要分步骤说明如何操作,可能需要关闭虚拟机、复制文件、修改配置文件或使用命令行工具。需要注意的关键点:1.关闭虚拟机以确保文件不被占用。2.复制虚拟机文件到新位置,包括VDI和其他配置文件。 3.更新VirtualBox的注册信息,可能需要使用VBoxManage工具。 4.处理可能的UUID冲突,引用[2]中的sethduuid命令可以解决。5.修改虚拟机存储设置,指向新路径。 外,用户可能希望保留原有虚拟机的配置,所以需要指导如何正确迁移而不仅仅是重新创建。可能还需要验证迁移后的虚拟机是否正常运行,以及处理权限问题。 现在需要将这些步骤整理成清晰的结构,包括关闭虚拟机、复制文件、注册新位置、修改UUID等。同时,引用[2]中的命令示例需要正确应用,确保用户能顺利执行。此外,可能需要提醒用户注意路径是否正确,是否有足够的空间,以及如何处理快照或差分磁盘等问题。 最后,生成相关问题,可能涉及迁移后的验证、处理快照、使用命令行工具的其他功能等。</think>### 将现有VirtualBox虚拟机迁移到新磁盘的方法(VirtualBox 7.0) #### **步骤1:关闭虚拟机并定位文件** 1. 在VirtualBox界面中**彻底关闭**目标虚拟机(非暂停状态)。 2. 找到虚拟机文件存储路径: - 右键虚拟机 > **设置 > 存储**,查看`.vdi`虚拟磁盘文件的位置。 - 默认路径通常为`C:\Users\<用户名>\VirtualBox VMs\<虚拟机名>`,包含`.vdi`、`.vbox`等文件[^2]。 #### **步骤2:复制虚拟机文件到新磁盘** 1. 将整个虚拟机文件夹(如`<虚拟机名>`)**完整复制**到新磁盘的目标路径(例如`D:\VirtualBox_VMs`)。 2. 确保新路径满足以下条件: - 剩余空间大于原文件总大小 - 路径不含中文或特殊字符(推荐全英文路径) - 权限允许当前用户读写(右键文件夹 > **属性 > 安全**中检查) #### **步骤3:重新注册虚拟机** 1. **删除旧虚拟机**(仅删除注册信息,不删除文件): - 右键虚拟机 > **移除**,选择**仅删除机器**。 2. **导入新虚拟机**: - 点击菜单**控制 > 注册**,选择新路径下的`.vbox`配置文件。 - 或使用命令行注册: ```bash VBoxManage registervm "D:\VirtualBox_VMs\<虚拟机名>\<虚拟机名>.vbox" ``` #### **步骤4:处理虚拟磁盘UUID冲突(可选)** 若迁移后出现UUID冲突错误(如`VERR_VD_IMAGE_READ_ONLY`),需修改虚拟磁盘UUID: 1. 打开命令行工具,进入VirtualBox安装目录(例如`C:\Program Files\Oracle\VirtualBox`)。 2. 执行以下命令(替换实际路径): ```bash VBoxManage internalcommands sethduuid "D:\VirtualBox_VMs\<虚拟机名>\<磁盘名>.vdi" ``` 此操作会生成新的UUID以解决冲突[^2]。 #### **步骤5:验证迁移结果** 1. 启动迁移后的虚拟机,检查系统是否正常。 2. 确认虚拟机的**存储设置**中所有文件路径均指向新磁盘位置: - 进入**设置 > 存储**,检查控制器下的`.vdi`文件路径。 3. 若存在快照(snapshot),需一并迁移其关联的差分磁盘文件(如`.vdi`)。 --- ### **常见问题解决** - **权限不足**:对新路径的文件夹赋予当前用户**完全控制权限**(右键文件夹 > 属性 > 安全 > 编辑)。 - **文件占用导致复制失败**:彻底关闭VirtualBox进程或重启系统后操作。 - **路径错误**:使用`VBoxManage list hdds`命令查看所有已注册虚拟磁盘的路径[^2]。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值