第一、把虚拟磁盘设为只读。
我原来一直以为virtualbox没有这个功能。常常羡慕VMWare的只读虚拟磁盘功能,关机后对磁盘所作的修改全都不会保存。什么病毒木马,以及其他操作,一下子恢复到开机前的状态。
virtualbox并不能在GUI方式下设置只读的虚拟磁盘文件,要使用如下的命令来设置只读的虚拟磁盘文件:
代码: 全选
VBoxManage registerimage disk <虚拟磁盘文件名> -type immutable
但是你不能直接把一个空的虚拟磁盘设置为只读模式,因为这个时候你无法在上面安装任何操作系统,只要一关机你所做的操作全部付之东流。所以,正常的使用方法是这样的:
1、使用普通模式的虚拟磁盘安装完操作系统和自己需要的软件;
2、把虚拟磁盘从这个虚拟机上分离开,然后在虚拟存储管理器中取消注册,注意千万别删除物理文件;
3、再使用VBoxManage registerimage disk <虚拟磁盘文件名> -type immutable来注册到虚拟存储管理器中,然后挂载到虚拟机上。
这样的操作稍微有些麻烦,不过这些操作都可以通过使用VBoxManage命令来操作,我倒是写了两个脚本,来实现转换到只读磁盘和转换到普通磁盘的功能。
当然你也可以再为虚拟机挂载一个writethrough模式的虚拟磁盘文件来保存文档和数据,这样就不用担心被病毒木马骚扰了,也可以正常使用了。
第二、将原生磁盘转换为虚拟磁盘文件。(raw disk——我估计翻译为原生磁盘)
这是一个听起来激动人心的功能!可以把物理磁盘的内容原封不动的转移到虚拟机啦!!
同样这个功能也无法通过Virtualbox的GUI界面来实现,也必须通过VBoxManage命令行来实现:
代码: 全选
VBoxManage convertdd <filename> <virtualdiskfilename>
刚好,手头上有一个安装了ubuntu umpc版本的U盘,拿了做实验正好合适。把U盘插入电脑,然后运行命令:
代码: 全选
sudo dd if=/dev/sdb of=usbdisk.raw
代码: 全选
VBoxManage convertdd usbdisk.raw usbdisk.vdi
然后把这个虚拟磁盘挂载到虚拟机上,开机————OK,成功了!
VBoxManage convertdd还有另外一种形式:
代码: 全选
VBoxManage convertdd stdin <virtualdiskfilename> <size>
不过在实际使用这个命令的时候会遇到一些问题:
1、我不知道在windows系统有没有类似dd这样的程序来生成磁盘映像文件;
2、熟悉windows的人应该知道windows的硬件依赖特性——你不能把已经安装的windows从这台计算机转到那台计算机来运行。同样你也不能把安装好的windows系统从物理机转移到虚拟机来运行。
3、我做实验使用的是一个2G的U盘。要是一个真正的磁盘或者磁盘分区,生成的虚拟磁盘文件可是不小呀!!嘿嘿……