2009年3月26日星期四

VirtualBox的VRDP运行模式

其实没什么深奥的,所谓VRDP运行模式,就是虚拟机运行的时候,没有图形窗口,但可以用VirtualBox的RDP模式远程管理,说是远程其实在本机上用很方便,用起来和windows下的远程桌面一样。如果虚拟机上安装了vncserver之类的远程控制软件,并且从主机上能够通过tcp访问,也一样可以管理的。

我使用的是非开源的VirtualBox,开源版本少一些功能。以下操作在windows下也是可以参照使用的。

启动VM的命令:/usr/bin/VBoxManage startvm WinXP -type vrdp,默认是-type gui即以图形界面启动虚拟机。

控制VM比如保存状态关闭的命令:/usr/bin/VBoxManage controlvm WinXP savestate

以上命令中WinXP是虚拟机的名称,也可以用uuid替代。

开启VRDP后远程控制端口默认是3389,默认认证方式是null,即无认证,任何人都可以连接上随意控制,放在网络环境下是很不安全的。还有一种认证方式是external,可以使用主机上的用户机制来认证,不过使用之前要稍微作一下设置:

cd /lib sudo ln -s libpam.so.0 libpam.so 

不然认证无法进行,连接闪一下就关闭了。远程桌面的客户端在gnome中可以用Terminal Server Client(tsclient)或者rdesktop-vrdp -u fwolf -p - localhost

要想随重启或者关机自动关闭虚拟机,要稍微麻烦一些了,首先在/etc/init.d/下创建一个文件fwolfrc

#! /bin/sh  # Using LSB funtions: . /lib/lsb/init-functions set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Fwolf's Init" NAME=fwolfrc SCRIPTNAME=/etc/init.d/$NAME  # Function that starts the daemon/service. d_start() {     touch /var/lock/subsys/$NAME     log_daemon_msg "Starting $DESC" "$NAME" }  # Function that stops the daemon/service. d_stop() {     su -c "/usr/bin/VBoxManage controlvm WinXP savestate" fwolf     rm /var/lock/subsys/$NAME }  # Function that sends a SIGHUP to the daemon/service. case "$1" in   start)         d_start     ;;   stop)         d_stop     ;;   *)     log_warning_msg "Usage: $SCRIPTNAME {start|stop}" >&2     exit 3     ;; esac  exit 0 

我也是直接从/etc/init.d/里套过来修改的,详细信息可以看参考文章或者其它关于关机自动执行脚本的资料。然后把这个文件ln为以下几个:

  • /etc/rc0.d/K01fwolfrc
  • /etc/rc6.d/K01fwolfrc
  • /etc/rc3.d/S99fwolfrc
  • /etc/rc5.d/S99fwolfrc

可以看到开机时是最后执行,而关机时是最先执行。注意我上面的脚本里,在开机是并没有自动启动虚拟机,习惯手工开。

参考

Tags: , , , ,

Related posts

Source: http://www.fwolf.com/blog/post/425