环境: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,虽然为英文,但看起来也不是很难。
有两种方法:
- 用命令克隆已经存在的.vdi 文件,克隆后会自动更改 UUID。打开 cmd 窗口,cd 到 VirtualBox 的安装目录,命令如下:
VBoxManage clonevdi < 源 vdi 文件路径> < 目标 vdi 文件路径>
- 先手动复制.vdi 文件,然后用命令更改 UUID。用如下命令更改 UUID:
VBoxManage internalcommands sethduuid < 目标 vdi 文件路径>
注:注意有下划线的单词,网上搜索到的不是我这里这样的命令,而是 setvdiuuid,这个命令应该是针对 4.0 以前的 VirtualBox 适用。
如何禁用客户机的时间同步
默认情况下,客户机的日期和时间会自动与主机的同步,即使你更改了客户机的系统时间,它也会马上更正,以和主机时间保持一致。有时候需要让客户机的时间不一致的时候就很不方便了。VMWare 里面可以在 VMTooles 里直接禁用时间同步,VirtualBox 里虽然也有类似 VMTools 的工具(叫 VirtualBox Guest Additions),但是不能设置。
方法如下:
- 进入客户机系统,禁用 windows time 服务
- 打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VBoxService,修改 ImagePath 值为:system32\VBoxService.exe --disable-timesync(就是在原来的值后添加一个禁用时间同步的参数)
- 重启后生效
但即使这样设置了,虚拟机启动的时候还是会与主机做时间同步,所以每次启动还得手动修改时间。
经测试,如此设置后,客户机的日期还是会与主机的同步,但是时间就不会同步了。个人感觉基本没用。
所以我现在如要调整客户机的时间,就首先调整主机的时间,马上就会自动同步过去。
如何将几台虚拟机组建成局域网
只要你将虚拟机的几种网络配置方式(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 下的安装步骤为:
- 先启动虚拟机,在点击 「设备」 下的 「安装增强功能」(以加载镜像文件)
- 打开 「终端」,依次执行如下命令(注意区分大小写):
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 后正常
参考资料: