默认情况下,VirtualBox将所有数据存储在主目录下的目录中。我知道如何更改它,但是如何更改现有图像的位置(无需手动编辑VirtualBox.xml)?

我正在Windows上工作,不想尝试使用任何NTFS链接。

评论

噢,我要建议符号链接(它们解决了Everything™),但是您已经屏蔽了这个想法... :(

我根本不信任Windows上的链接。尽管NTFS可以胜任,但Windows XP对此一无所知,并且已经存在很多问题。我可能会变得胆怯...

嗯,是的,我不会在XP上接触它们。但是对7的支持非常扎实-您仍然必须从cmd行构建它们,但这并不是一件很麻烦的事情。我不确定Vista ...

更糟糕的是,XP版本的NTFS确实支持硬链接,但这些硬链接不能跨越卷。显然,我想将数据移动到另一个分区。

硬链接无法跨越卷,只有符号链接可以(例如,可以用于这种情况,我的用户文件夹都被符号链接到第二个HDD)。但是,就我个人而言,我仍然避免在XP中使用硬链接(即使它们是可选的)。

#1 楼

(编辑:从6.0.4版开始,现在有一个内置功能可以移动VM。请参见https://superuser.com/a/1401548/120738)
如果您打算将所有VM移动到全新的位置,您应该只需遵循以下2条回复:

https://forums.virtualbox.org/viewtopic.php?f=1&t=48258#p219275
https:// forums .virtualbox.org / viewtopic.php?f = 1&t = 48258#p219285

将帖子复制到此处:


关闭VirtualBox,备份.VirtualBox \ VirtualBox.xml文件。
找到现有的“ Virtualbox VM”文件夹,然后将包含内容的整个文件夹复制(而不移动)到新驱动器E:
运行VirtualBox,然后依次对每个VM:

3.1右键单击VM名称,然后从弹出菜单中选择“删除”。对“是否物理删除文件”回答“否”。问题。
3.1b从UI删除虚拟机后,必须关闭VirtualBox,并使其关闭足够长的时间,以使后台VBoxSVC任务
超时并终止。然后,您可以再次启动VirtualBox应用程序
,并使用Machine | Add重新添加在先前的
步骤中删除的VM。
3.2选择Machine | Add ..菜单项,导航至VM在驱动器E:上的新位置,然后选择.vbox文件。
3.3。对所有剩余的VM重复上述操作。
4。在“文件|首选项”中,将默认计算机路径设置为“ E:\ VirtualBox VMs”
5。测试每个虚拟机。只有在确定它们都能正常工作之后,才删除包含文件夹的旧VM,即删除“ C:\ VirtualBox VM”。




评论


当我对链接克隆计算机执行此操作时,它们无法启动

– Nam G VU
2012年5月3日,9:28

这对我有用,尽管我还需要通过编辑.VirtualBox \ VirtualBox.xml文件并执行查找/替换来更新每个硬盘和快照映像的路径。另外,我只移动了Machines和HardDisk文件夹,而不是.VirtualBox下包含的所有文件,因为这是所有全局配置和日志记录等。

–戴夫·安德森(Dave Andersen)
2012年7月23日在22:38

对于Mac OS X用户,VirtualBox.xml位于〜/ Library / VirtualBox / VirtualBox.xml。 VM位于〜/ VirtualBox VM中。

–小清庞-明日香贤治-
2014-09-25 3:45

Virtual Box 4.3.0+解决了“最后一件重要的事情”,我什至不需要关闭它-说明。

– PCaetano
2014-12-16 18:16



Virtualbox现在为VM提供了正式的“移动”选项。只需关闭您的VM,然后在UI中右键单击它,然后选择“移动”

– Shadoninja
20年6月4日在22:30

#2 楼

(编辑:从6.0.4版本开始,现在有一个内置功能可以移动VM。请参见https://superuser.com/a/1401548/120738)
我只有几个VM,而我发现我可以更改VirtualBox的默认存储位置,然后克隆我的VM。在我想要它们的新HD的新位置创建了这些克隆。一切完好无损,快照,无需重新映射虚拟HD的位置。

评论


+1我认为这是最好的方法。 VirtualBox会以整洁的小包装形式为您移动所有内容。

–戴夫·安德森(Dave Andersen)
2012年8月7日23:35

这是最好的方法,无需手动编辑cfg

– Bojan Bjelic
13年3月7日在23:01

你怎么做到这一点???

– FlipFloop
17年1月6日在20:58

警告:克隆不会产生完美的副本,并且随着机器/磁盘ID的更改,可能会触发需要更新已安装软件的许可证的需求。将VM上的Quicken的旧副本移动到新磁盘时遇到此问题。

– MZB
19年1月26日在15:36

@thomthom,已经有一个讨论“移动”选项的答案,但它只有3票,这意味着它隐藏在所有较旧的更复杂的答案下。

– AnthonyVO
20/11/15在15:54

#3 楼

最简单的方法不需要删除虚拟机并修改其设置。


将Virtualbox VMs文件夹复制到新驱动器。

运行虚拟机装箱机经理。运行媒体管理器文件->虚拟媒体管理器

2a。选择要为其移动存储的VM。单击释放按钮,然后单击删除按钮。在下一个对话框中,您可以删除或保留虚拟驱动器。关闭管理器,将您留在Virtualbox Machine Manager中。

选择刚删除了介质的VM,单击“设置”按钮,再单击“存储”部分。添加用于介质的控制器(通常是SATA),然后添加硬盘驱动器并选择现有磁盘,然后在新位置选择VD。
为要移动的每台计算机重复操作

Fire在新位置关闭虚拟机进行检查。下次访问Virtual Media Manager时,将鼠标悬停在VM条目上将显示VD的存储位置。

如果使用快照,请确保将快照文件夹更改为指向新驱动器。每台计算机都有一个快照文件夹设置,并且VM Manager在“文件”->“设置”中也有一个“默认计算机”文件夹设置,也需要更改。

此外,我还必须修改xml文件中的路径。之后,它可以完美地工作。

注意:自编写以来,情况有所改变,请参阅Rob的回答。现在非常简单。

评论


我认为这是到目前为止最简单的方法。

–PeterPerháč
16-10-4在20:18

我不想投票,但Virtualbox现在有一个官方的“移动”,使所有其他答案已过时。只需关闭您的VM并在UI中右键单击它,然后选择“移动”

– AnthonyVO
20-11-2在16:44



#4 楼

更简单。
1)移至新位置
2)右键单击从virtualbox菜单中删除
3)从计算机菜单中选择“添加”
4)找到带有一个“ virtualbox机器定义”的类型。选择它,它将添加到您的virtualbox列表中。双击虚拟机即可。

评论


要将虚拟机添加回VirtualBox时,比这更简单,只需单击其文件夹中的* .vbox文件即可。

–乔尔·梅隆(Joel Mellon)
2015年9月4日在17:28

三年后情况如何变化...那时真希望如此轻松。在我的答案中添加了注释,以使他们能够看到这一点。

–惨败实验室
2015年11月20日在3:36



这确实应该更高。我无所事事,无法正常工作。只需删除UI中的“无法访问的”文件,然后双击.vbox文件,即可使用新位置重新添加该文件。

–温伯特
17年4月21日在0:18

在Linux主机上不起作用。收到此错误:在尝试打开虚拟机会话之前,已将其关闭。结果代码:NS_ERROR_FAILURE(0x80004005)组件:SessionMachine接口:ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}

–最大N
17年5月16日在11:14

该方法的“删除”部分感觉很糟糕,它会导致设置丢失,但事实并非如此。此方法维护您的所有设置,并且是我尝试过的所有方法中最简单的方法。它可以在Windows 10主机上使用Windows 7和Windows Sever 2016来宾。

–夜猫子
18/12/26在0:50

#5 楼

在Mac上,编辑此文件中的路径:

/Users/pleddy/Library//VirtualBox/VirtualBox.xml

这很容易,很容易!

评论


他正在使用Windows,也不想编辑VirtualBox.xml。

– ChristN
13年5月5日在23:29

不过,这对我很有帮助,因为如果您使用的是Mac,这个问题仍然可以解决。

– NReilingh
13年11月22日在7:54

我是mac用户,google登陆了我,这个解决方案是所有解决方案中最简单的,很有意义,并且为我工作:)

– Mohit Singh
17-10-28在9:26

我在linux上,并且喜欢这个答案的声音,但是由于文件顶部的警告而被推迟。您是否仍建议直接编辑XML?警告说:**请勿编辑该文件。如果您在运行任何与VirtualBox相关的应用程序时对此文件进行更改,则所做的更改将在以后被覆盖,而不会生效。使用VBoxManage或VirtualBox Manager GUI进行更改。 **

–craq
18 Mar 4 '18 at 0:58



#6 楼

经过一整天的时间(在Arch Linux上使用Virtualbox 5.0.12),我终于以thomthom的答案所建议的方式解决了它。对于不确定确切过程的用户,克隆整个计算机(包括快照)的命令为:

VBoxManage clonevm --mode all --basefolder </new/path/> --register <VM_to_clone>


使用
<<获取虚拟机的名称br />
VBoxManage list vms


如有必要,请引用路径和名称。

最后,检查是否一切都很好,并取下原稿。

就这些,真的。
无需麻烦xml文件或十六进制编辑器。也不需要使用GUI。

http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm

评论


这是唯一对我有用的答案。应该更高。

–最大N
17年5月16日在15:16

VM_to_clone是VM的UUID或名称。使用给定的命令(使用UUID),在/ new / path / _ _ Clone中创建目录,并且包含的​​文件也使用_ _ Clone作为名称。要明确使用更好的名称,请使用--name“此处的首选名称”标志。

– Rob W
17年8月27日在9:19

...并通过CLI删除原始VM,VBoxManage unregistervm UUID(通过VBoxManage列表vms获得的VM的UUID,请不要使用VM名称,因为如果使用--name保留原始名称,则多个具有相同名称的VM)

– Rob W
17年8月27日在9:27

警告:克隆不会产生完美的副本,并且随着机器/磁盘ID的更改,可能会触发需要更新已安装软件的许可证的需求。将VM上的Quicken的旧副本移动到新磁盘时遇到此问题。

– MZB
19年1月26日在15:36

无论如何,现在似乎有一个专用命令:virtualbox.org/manual/ch08.html#vboxmanage-movevm

–迈克尔P
19年3月22日在7:01

#7 楼

要执行与Lucas Pottersky答案相同的操作,但要通过命令行(在Windows上,将vboxmanage替换为VBoxManage.exe):



列出所有虚拟机:

vboxmanage list vms


或仅运行:

vboxmanage list runningvms


每台机器的输出名称和UUID。

执行请为要移动的每台计算机执行以下步骤。


正常关闭它:

vboxmanage controlvm UUID acpipowerbutton



取消注册:

vboxmanage unregistervm UUID


将虚拟机文件夹移动到新位置。

通过提供.vbox文件的路径将其注册回:

vboxmanage registervm /path/to/machine.vbox




评论


假设文件已被移动,则可以一次在`VBoxManage list vms |中取消注册所有机器。切-c 19-54`;做VBoxManage unregistervm $ v;完成。但是,重新注册并不是那么简单,因为媒体管理器有点混乱。

–贾科莫·拉卡瓦(Giacomo Lacava)
19-10-22在17:37

#8 楼

在Oracle VM VirtualBox(经过6.0.4版测试)中,只需关闭您的VM->右键单击VirtualBox Manager中的VM->单击“移动...”->选择新目录。就这样!

评论


@Moreaki:顺便说一句,“易读性”(和“易读性”)的拼写没有“ D”。

–斯科特
19年2月4日在4:36

这个答案需要冒顶。这是现在100%正确和最简单的方法。

– Shadoninja
20年6月4日在22:32

只有一个缺点。复制单个文件时,进度表不显示任何进度。当文件大小为100 Gig时,有点讨厌。查看Taskmanager中的磁盘活动以验证事情是否正在发生。

– AnthonyVO
20-11-14在0:31

#9 楼

这也适用于MacOS版本的VirtualBox(版本4.1.12)。在重新启动之前,我等待5到10秒让VirtualBox退出。我查看了活动监视器,以确保VBoxSVC正确退出。

如果不执行此操作,则会收到类似于以下内容的错误(我正在复制并粘贴其他人的错误)来自Windows的消息)。如果收到此错误,则仅仅是因为您没有退出VirtualBox或等待了足够长的时间才退出VBoxSVC。

Failed to open virtual machine located in E:/<path>/<machine_name>/<machine_name>.vbox.

Cannot register the hard disk 'E:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' {0ece4bff-9185-4cff-9069-b3d1f4536394} 
because a hard disk 'C:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' with UUID {0ece4bff-9185-4cff-9069-b3d1f4536394} already exists.

Result Code: E_INVALIDARG (0x80070057)
Component: VirtualBox
Interface: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}


#10 楼

在带有VirtualBox v4.3.14的OS X中,我要做的就是从新位置双击.vbox文件,它打开VirtualBox并将其添加到可用VM列表中。

评论


请不要添加“谢谢”作为答案。相反,请对您认为有帮助的答案进行投票。

–斯科特
2014年8月8日在21:35

我的回答不是“谢谢”。我对措辞进行了编辑,使其更加明显。谢谢。

–泰森·菲尔普(Tyson Phalp)
2014年8月8日在22:45

#11 楼

VirtualBox下的设置中有一个默认的存储位置:http://mattvelic.com/default-vm-location/

现在已失效。 Wayback机器具有以下内容:

http://web.archive.org/web/20131116130725/http://mattvelic.com/default-vm-location


...检查“文件”菜单中的“首选项”。看哪!
常规选项卡中的第一项是默认计算机文件夹。
http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/ 11 / VB_Preferences.png
我编辑了指向存储驱动器的位置,并迅速重新制作了我的VM。这次VirtualBox在正确的位置创建了计算机文件和VDI
。这里真正的教训是,有时
解决方案不必是技术性的。我认为作为IT专业人员,我们
倾向于认为对问题的答案会很复杂。睁大眼睛寻找明显的解决方案!


评论


现在该链接已失效。尽量不要发布链接作为答案。当他们死了时,SU会被遗留下来清理。

–mrtsherman
15年3月23日在21:24

更新了archive.org中的内容

–丽贝卡
15年3月24日在16:26

#12 楼

我认为这是不可能的。

您可以将VDI移到新位置,但我认为您不能避免XML修改。作为替代方案(但实际上与XML版本相同),是否可以使用GUI创建新的虚拟机并选择移动的映像作为磁盘满足您的需求?

评论


我再看了一下xml,它实际上非常简单。创建新机器并不好,因为我想保留自己的设置(我不记得自己所做的更改,可能完全不重要)。

– maaartinus
2011年3月11日在11:29

#13 楼

我尝试了原始方法(删除VDI,附加新副本),得到的消息是旧副本仍然存在,即使重新启动操作系统(在Mac OS X El Capitan上)也无法附加新副本。 br />
该修复程序在菜单/文件/虚拟媒体管理器中,删除了现有的VDI。即使有快照,此操作也有效;只需以相反的顺序删除所有快照VDI。无需关闭并重新打开VirtualBox。

#14 楼

我从未在Windows上使用过virtualbox,但在ubuntu上,您移动了VDI,在virtualbox GUI中,右键单击了VM,然后使用“配置菜单”->“存储”,可以在其中将VDI本地化更改为移动文件的位置。
其他计算机文件定义,请移动它们,然后在GUI中转到“首选项”,并将默认计算机目录的位置更改为移动的目录。

#15 楼

我使用这种方法:


从VirtualBox GUI中,选择您的VM并删除附加的HDD
将文件(即vdi)复制到新位置

通过命令
在新位置为.vdi生成新的UUID。
vboxmanage internalcommands sethduuid“ myhdd.vdi的我的路径” 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

(在上一个示例中,请使用您自己的UUID,或者根本不添加它:该命令将自动生成一个。同样,如果省略此步骤,则在从新位置添加.vdi时,您将得到一个错误,指出UUID已经存在)。

现在返回VirtualBox GUI,选择您的VM,然后在“设置/存储”中,从新位置附加HD(.vdi文件)。

并完成。

#16 楼


关闭Oracle VM VirtualBox Manager的所有实例
将VM文件夹移动到所需位置(例如D:\vboxproE:\NAS\datapro
在XML编辑器中打开文件%USERPROFILE%\.VirtualBox\VirtualBox.xml
找到相应的MachineEntry密钥并更改到新路径的路径(例如,将<MachineRegistry><MachineEntry uuid="{686ad360-b203-4fd6-bdd3-7d9ed6835e88}" src="D:\vboxpropro.vbox"/>更改为<MachineRegistry><MachineEntry uuid="{686ad360-b203-4fd6-bdd3-7d9ed6835e88}" src="E:\NAS\datapropro.vbox"/>

启动Oracle VM VirtualBox Manager
无需进行任何其他修改,也无需在xml文件中或在Oracle VM VirtualBox Manager中进行任何修改

/>这将与级联快照一起使用,甚至可以访问多个驱动器配置甚至VM日志。已在5.2.30r130521版本上测试(还安装了扩展包)