使用虚拟机[VMwareServer,v1.0.5]的几点技巧
● 使用的时候才启动虚拟机相关的注册服务
虚拟机有几个系统服务(我安装的是 VMware Server 1.0.5),一般在启动的时候同时跟着启动,实际上这样会把系统启动时间大大拖慢了(有时候还会莫名其妙的提示系统服务启动不成功)。
其实可以这样,我们可以在使用的过程中,根据需要来启动这两个服务(VMAuthdService 和 vmserverdWin32)。
在运行菜单里键入 "services.msc" 把上述两个服务的启动类型改为 "手动",然后就可以重启(或直接停掉这两个服务)。
感受一下,是不是重启速度快了不少?~
把系统服务设置成手动模式,写成了一个 windows 脚本 [scVMwareService,SetManual.cmd] ,内容如下:
-------------------------------------------------
@cmd /D /C "(sc config VMAuthdService start= demand & sc config vmserverdWin32 start= demand)"
@cmd /D /C "(sc config vmnetdhcp start= demand & sc config "VMware NAT Service" start= demand)"
@cmd /D /C "sc config vmount2 start= demand"
@pause
好了,现在尝试打开虚拟机主界面,会提示登陆(本机)不成功,此时在 运行菜单里输入下列(只要输入成功,就会保留在命令历史里的,不必每次都重输):
@cmd /D /C "(net start VMAuthdService & net start vmserverdWin32 ) || pause"
或打开 VMnet 的 dhcp 和 nat 服务
@cmd /D /C "(net start vmnetdhcp & net start "VMware NAT Service") || pause "
以上,如果启动服务不成功,命令窗口就 pause 在那里等待用户确认; 如果两服务都成功,则 "一笑而过" 了。
/D 是为了屏蔽可能机器中了 命令行启动加载的病毒 (见 cmd /? 介绍)
(批处理编写技巧,请参考官方网站:http://technet.microsoft.com/zh-cn/library/bb491071(en-us).aspx )
嗯,重新尝试打开虚拟机主界面,得左!
● 在 Linux 下 VMware Server (,v1.0.5) 里直接用命令行启动虚拟机(PowerOn)的方法
把这句加在 ~/.bash_profile 文件里面,这样就生成了一个 alias 命令: VMXX 了,随时随地执行这个 VMXX 就可以启动你要的虚拟机在后台。
alias VMXX="(nohup /usr/lib/vmware/bin/vmware-vmx -q -x -s ide1:0.present=FALSE /var/VMIMG/VMSv1.05,WinXPSP2,I183/WinXP_Pro_SP2.vmx &); sleep 1; rm -f nohup.out "
注 -q 的意思是 虚拟机PowerOff的时候会自动Close掉(释放占用的内存);
-x 的意思是 加载虚拟机后,马上 powerOn ;
-s 后面的 ide1:0.present 实际上是虚拟机文件里面的配置项,这里让其值 == FALSE ,实际上是为了屏蔽光驱
(有时因为没有对应的光盘镜像,导致虚拟机提示,就挂在那里了);
----------------------------------------
更详细的介绍请看: /usr/lib/vmware/bin/vmware-vmx --help 会有说明。
一般来说,如果执行失败,那么可能是以下原因之一:
一个是因为 X11 的问题(X Server还没打开);另一个原因就是设备没就绪(如虚拟光驱没找到镜像),所以卡在了(虚拟机)启动过程里。
那么根据上面有可能出现的情况,改造一下就是:
alias VMXX="DISPLAY=127.0.0.1:0.0; (nohup /usr/lib/vmware/bin/vmware-vmx -q -x -s ide1:0.present=FALSE /var/VMIMG/VMSv1.05,WinXPSP2,I183/WinXP_Pro_SP2.vmx &); sleep 1; rm -f nohup.out "
顺便加上这一句喇, 可以方便的查找 指定程序名的相关信息:
------------------------------------------------------
alias GreProc="ps -ef |grep -v grep |grep /$1"
● 在虚拟机里面直接访问主机的磁盘空间
尽管虚拟机提供了共享文件夹的功能,但一般我都会让虚拟机和主机之间保留快速的网络通道 (子网: VMnet1=192.168.11.1 ),所以直接用建立网络共享磁盘的方式访问主机共享出来的目录,也是一种比较灵活的方式和尝试。
方法很简单,首先主机要共享一个目录出来啦,(Win32 和 Linux 不一,网上搜很多就不详细说了,哈哈 可以参考我写的 《`海风的Linux开发环境介绍》[在http://blog.csdn.net/temp77上] )
虚拟机里面连接了子网1就可以看到共享目录, //192.168.11.1/users (注:有密码的,admin 是用户和密码 abc123 ):
① 如果 虚拟机里是 Linux 就用 smb mount 就可以搞掂了(可以放在 ~/.bash_profile 脚本里):
"smbmount //192.16.11.1/users /mnt/smbmnt -o noatime,username=admin,password=abc123,fmask=0666,dmask=0765,rw"
或在 /etc/fstab 里面追加这么一条 (要想访问得爽一点,那么这个 noatime, 参数就不能少! ):
//192.16.11.1/users /mnt/smbmnt smbfs noatime,username=admin,password=abc123,fmask=0666,dmask=0765,rw 1 1
--- 要铲除已经建立的共享, 用 umount 命令就可以了(略)
② 如果 虚拟机里是 Windows (如 WinXP ),也可以用 net use 命令来一次搞定(登进时自动运行):
命令可以这样用:
net use N: //192.168.11.1/users abc123 /USER:local/admin /PERSISTENT:NO
--- 要铲除已经建立的共享,可以用 net use /y /delete * 来清除!!!
------------------------------------
总结: 就两个字,"方便" 啊~ [/cy]