linux virtualbox更换virtualbox vms目录位置

原创
2016/10/12 11:19
阅读数 2.6K

今天服务器报错,上去一看 ,根分区满了,由于根分区只划分了50g,而virtualbox默认把虚拟机文件保存在 ~/Virtualbox VMS/ 目录下,导致该问题。

幸好目前虚拟机数量不是很多 ,暂时关闭所有虚拟机,然后开始想办法转移。

首先,为了尽快恢复服务,我先把 virtualbox vms 移动到另外一个大容量磁盘分区

move ~/Virtualbox\ VMS  /storage1/

然后在原位置建立软连接

ln -s /sotrage1/Virtualbox\ VMS ~/Virtualbox\ VMS

然后赶紧重新启动各虚拟机吧。

如果没有什么追求,到这里问题其实也已经解决了,但我想改变虚拟机配置,让它真实指向 /storage1/Virtualbox\ VMS

首先查找手册,发现有一个命令

VBoxManage setproperty machinefolder  /sotrage1/Virtualbox\ VMS

这样可以改变默认设置,我想当创建新的虚拟机时,就会采用新的目录。

但是这样并不会影响旧的虚拟机,蛋疼。

继续找资料,在官方论坛上找到一个帖子,按照说明,找到这两个文件

~/.config/VirtualBox/VirtualBox.xml
~/.config/VirtualBox/VirtualBox.xml-prev

关于各虚拟机位置的位置就在 <MachineRegistry> 段里,就像:

<MachineEntry uuid="{6e59a994-d6b9-4248-a3ed-b0c858496651}" src="/storage/VirtualBox VMs/vm2-master/vm2-master.vbox"/>

更改src配置就行了

要使得配置生效,你必须先关闭所有虚拟机,这个是因为有一个后台服务进程 VBOXSVC 一直在运行,只要有虚拟机在运行,它就存在,只有关闭所有虚拟机,它才会退出,当再启动虚拟机时,它又会自动启动并读取新的配置信息.

重启一个虚拟机,然后使用 VBoxManage showvminfo 看一下,发现基本上所有路径都已经指向了新的位置,但如果你之前外挂过虚拟磁盘,那么会发现磁盘的位置还是指向到 ~/Virtualbox VMS

到这里真有点累觉不爱啊,劳资想改个位置有那么难么。

首先,我要看下目前有哪些虚拟磁盘

VBoxManage list hdds

找到 Parent uuid:base 的那个存储,进入 location 对应的目录,在该目录下又 .vbox.vbox-prev 结尾的文件,依次打开他们并修改:

里面 <HardDisks> 定义了所有的hdd路径,修改location字段即可,指向新的 virtualbox vms 目录。

最后关闭或挂起所有虚拟机,再依次启动虚拟机即可。

展开阅读全文
打赏
1
1 收藏
分享
加载中
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部