盆盆罐罐

上海邦麦信息科技有限公司旗下子网站;POS系统、计算机技术资料搜集

VirtualBox使用中遇到的问题和解决方法

文章目录
[隐藏]

环境:VirtualBox+Windows 宿主系统

如何复制已经安装好的虚拟机

VirtualBox中已经安装好的虚拟系统为.vdi文件,直接复制后是不能使用的,因为两个.vdi文件的UUID一样,VirtualBox中要求UUID不能一致,所以解决办法就是更改.vdi文件的UUID。

什么是UUID?参考wikipedia的UUID条目。我们使用的Windows操作系统就有UUID这个东西,只是我们平时使用的网络环境很少提及它。Ghost的系统就存在UUID重复的情况。工作组环境,UUID重复不会有任何问题,但在域环境中,重复的UUID是不允许的。

VirtualBox没有图形化的更改UUID的操作界面,网上搜索到的命令也是老版本的VirtualBox适用,新版本的VirtualBox的命令已经有所变化。由于VirtualBox有很详细的UserGuide,虽然为英文,但看起来也不是很难。

有两种方法:

  1. 用命令克隆已经存在的.vdi文件,克隆后会自动更改UUID。打开cmd窗口,cd到VirtualBox的安装目录,命令如下:

    VBoxManage clonevdi <源vdi文件路径> <目标vdi文件路径>

  2. 先手动复制.vdi文件,然后用命令更改UUID。用如下命令更改UUID:

    VBoxManage internalcommands sethduuid <目标vdi文件路径>

注:注意有下划线的单词,网上搜索到的不是我这里这样的命令,而是setvdiuuid,这个命令应该是针对4.0以前的VirtualBox适用。

如何禁用客户机的时间同步

默认情况下,客户机的日期和时间会自动与主机的同步,即使你更改了客户机的系统时间,它也会马上更正,以和主机时间保持一致。有时候需要让客户机的时间不一致的时候就很不方便了。VMWare里面可以在VMTooles里直接禁用时间同步,VirtualBox里虽然也有类似VMTools的工具(叫VirtualBox Guest Additions),但是不能设置。

方法如下:

  1. 进入客户机系统,禁用windows time服务
  2. 打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VBoxService,修改ImagePath值为:system32\VBoxService.exe –disable-timesync(就是在原来的值后添加一个禁用时间同步的参数)
  3. 重启后生效

但即使这样设置了,虚拟机启动的时候还是会与主机做时间同步,所以每次启动还得手动修改时间。

经测试,如此设置后,客户机的日期还是会与主机的同步,但是时间就不会同步了。个人感觉基本没用。

所以我现在如要调整客户机的时间,就首先调整主机的时间,马上就会自动同步过去。

如何将几台虚拟机组建成局域网

只要你将虚拟机的几种网络配置方式(VMWare、VirtualBox等都是这几种方式)弄明白了就很容易。一般将所有虚拟机网络连接方式设置成Bridged Adapter,这样虚拟机就相当于真实的计算机了,只要与主机设置在同一网络,他们相互之间就能访问。

另外,要注意Windows系统的防火墙,你设置了IP在同一网络,却发现还是不能互相访问,关闭防火墙就OK了。

如何设置虚拟机访问主机上的数据

在VirtualBox中设置“共享文件夹”。如果想虚拟成一个分区并自动挂载,设置共享文件夹的时候勾选“自动挂载”和“固定分配”。

使可以安装64位操作系统的虚拟机

默认情况,VirtialBox只能安装32位的系统。

要使能安装64位系统,需要开启主机BIOS中的虚拟化技术(VT)。

主机开机进入BIOS->Security->Virtualization,选择Enable,然后开机打开VirtualBox,就可以选择安装64位系统了

Ubuntu下如何安装增强功能

Windows虚拟机下安装增强功能很简单:先点击“设备”下的“安装增强功能”,以加载一个叫“VBoxGuestAdditions”的ISO镜像文件到光驱中,然后双击安装程序即可。

Ubuntu下也是这么个过程,只是明白Windows系统下程序安装的人,却不一定明白Ubuntu下程序的安装。所以Ubuntu下的安装步骤为:

  1. 先启动虚拟机,在点击“设备”下的“安装增强功能” (以加载镜像文件)
  2. 打开“终端”,依次执行如下命令(注意区分大小写):

    cd /media/VBOXADDITIONS_4.4.4_70112(根据实际修改)

    sudo ./VBoxLinuxAdditions.run

    输入管理密码,等待安装完成即可。

如何设置可以直接拖动主机上的文件到虚拟机中

这个是不行的,VMWare可以,VirtualPC可以,就是VirtualBox不行,没有办法。只能使用“数据空间”来相互复制粘贴文件。

新版本已经可以,在“设置”里开启拖放即可(默认禁用)。共享粘贴板也是一样,默认禁用。

VDI镜像文件压缩

这里针对虚拟机系统为Windows系统的。其他系统参考“参考资料”的链接。

1、首先进入虚拟机系统,下载微软的SDelete工具做清零操作

SDelete的使用方法,命令:

sdelete -z C:  \\C:表示C盘,如果还有其他分区,同样操作。

搜索出来的别人的文章用的命令都是使用参数-c,我看了参数说明,-c表示Clean free space,-z表示Zero free space(good for virtual disk optimizaton)。经测试,使用-z参数能极大的压缩空间。

2、关闭虚拟机

3、物理主机上执行命令(cd到VirtualBox的安装目录):

VBoxManage modifyhd /the-path-of-VDI.vdi --compact  \\执行命令时出错的话,重启一下物理主机试试

4、完成

平时遇到的一些错误

1、启动虚拟电脑的时候提示错误:VT-x is disabled in the BIOS for all CPU modes

Windows XP环境,这个是由于32位Windows XP最大支持3.25G内存,将分配给此虚拟电脑的内存降低到3.25G以内即可

2、升级Windows后,虚拟机找不到宿主主机的网卡

卸载VirtualBox,重启电脑,然后重新安装VirtualBox后正常

参考资料:

  1. Oracle VM VirtualBox® User Manual
  2. VirtualBox: 如何复制已安装好系统的VDI文件作为新的Guest系统磁盘使用?
  3. Wikipedia条目:UUID
  4. 如何禁用VirtualBox的时间同步
  5. virtual box 安装增强功能 (Ubuntu10.04)
  6. VirtualBox VDI 磁盘镜像 – 压缩

对本文发表评论





3 + 9 = ?

注意:
1、请勿单纯发表顶啊、打酱油之类无任何意义的评论,否则将被视为spam!谢谢合作!
2、但欢迎你留下对本文的看法或技术上的任何疑问,我会及时回复你。