VMLite与VirtualBox实际上是一样的


VMLite 与VirtualBox实际上是一样的
 
 
 
    今天,想起来运行一下以前安装的VMLite 的虚拟机,但是,却无法启动。想修复一下,却说,已经安装了VirtualBox,我好像没有安装过。
 
    不过,既然说我装,干脆就把VMLite 卸载了,装VirtualBox。
 
    装了以后,但是,却不能导入原来由VMLite 创建的虚拟机。
 
    VMLite 的配置文件的扩展名是xml,而VirtualBox 的扩展名为vbox。
 
    不过,打开一看,原来格式是一样的。
 
    于是,把xml 改成vbox,就可以导入了。
 
    但是,有两个问题:
 
    1、就是要重新激活了。
 
    2、原来的共享空间的网络名称不同了:
 
\\.host\sfs\ 改成\\vboxsvr\
 
一、配置文件
 
VMLite 的配置文件在%USERPROFILE%\VMLite\ VirtualBox.xml
 
VirtualBox的配置文件在%USERPROFILE%\. VirtualBox\ VirtualBox.xml
 
如果要手工修改VMLite 的配置文件,必须中止两个进程:VMLite 和VBoxSvc,实际上,是要中止第二个进程就可以了。只要运行过VMLite 运行过,这两个进程就会常驻,且第一个进程,每运行一次,会增加一个,因此,也就顺便中止好了。如果不中止这两个进程,手工修改的配置无效,即,一启动VMLite 所有的配置全都恢复了。刚开始,我注意到这是进程没有中止的问题。所以,为了这个,我到处寻找,是否在其他地方还有配置文件。当然是没有。
 
第二,配置文件分成两部分,一是前面说的,即,全局的配置文件,其中,主要描述了每个虚拟机、虚拟硬盘、快照等的位置。另一个是具体的虚拟机的配置文件,保存在每个虚拟机的目录下,文件名,即虚拟机的名字,扩展名也是.xml。
 
第三,VMLite 没有打开虚拟机的功能,也就是说,一旦主配置文件丢失,会有很大的麻烦。但是,新版本的VirtualBox 就有打开的功能,比较方便。
 
 
 
二、让VMLite 与VirtualBox 共存
 
分别建两个批处理文件:
 
1、VMLite
 
d:
 
cd"D:\Program Files\VMLite\VMLite Workstation"
 
start /waittaskkill /f /im vboxsvc.exe
 
start /waittaskkill /f /im vmlite.exe
 
start /waittaskkill /f /im virtualbox.exe
 
 
 
regsvr32 /svboxc.dll
 
start vboxsvc
 
vmlite
 
 
 
2、VirtualBox
 
d:
 
cd"D:\Program Files\Oracle\VirtualBox"
 
start /waittaskkill /f /im vboxsvc.exe
 
start /waittaskkill /f /im vmlite.exe
 
start /waittaskkill /f /im virtualbox.exe
 
 
 
regsvr32 /s /uvboxc.dll
 
regsvr32 /svboxc.dll
 
start vboxsvc
 
virtualbox
 
 
 
上面加了start 的原因,一是为了结束不能正常退出的进程;二是为了不等vboxsvc 退出就执行下一条启动虚拟机的命令。因为,如果退出了,VirtualBox 就启动不了。
 
 
 
三、利用高版本的VBoxManage 进行管理
 
1、修改磁盘的uuid
 
用internalcommans sethduuid
 
老版本的命令只能重新uuid,但不能指定uuid。
 
由于在摸索VMLite 的过程中,没有注册已有虚拟机的功能,用了从磁盘新建虚拟机的方法,导致重新产生了磁盘的uuid,与配置文件中已有的描述不一致。当然,如果磁盘没有快照的话,改一下配置中的uuid,也就好了。但是,如果磁盘有快照,它不仅有uuid,还有一个叫parentuuid,指向父磁盘。这时候,如果不重设父磁盘的uuid 的话,快照就没有办法访问了。
 
2、修改磁盘的parentuuid
 
用internalcommanssethdparentuuid
 
但是,没有成功。虽然命令没有出错,好像没有效果。
 
3、打算修改一下默认配置文件的位置。
 
    暂时没有找到。

摘自 hadstj的专栏

相关内容

    暂无相关文章