转载:使用命令行启动VirtualBox虚拟机

摘要:
使用命令行启动VirtualBox虚拟机。安装VirtualBox后,您可以找出如何使其在打开时自动启动,也可以通过命令行直接启动指定的虚拟机。您可以通过另一个子命令列表列出系统中现有的虚拟机:VBoxManagestartvm子命令可以通过–type参数指定启动方法,并使用gui类型启动虚拟机:使用headless类型启动虚拟计算机:从VirtualBox下载页面选择相应的版本以下载扩展包。

使用命令行启动VirtualBox虚拟机

装上VirtualBox就琢磨着如何让它开机自动启动,又或者能够通过命令行的形式直接启动指定的虚拟机。

看了下VirtualBox的官方文档,发现有一个命令可以满足我的需求,即VBoxManage。

VBoxManage提供了一系列的虚拟机管理命令,包括创建/删除/启动/修改等等,这里不一一列举。有点像Xen的XM命令。

不过这里只关心启动虚拟机的命令:VBoxManage startvm。VBoxManage的完整命令列表可以参考这里。

VBoxManage startvm子命令可以开启一台状态为关闭或者保存的虚拟机。该命令的语法为:
VBoxManage startvm uuid>|name... [--type gui|sdl|headless]

可以通过虚拟机的uuid或者name来指定某台虚拟机,可以通过另外一个子命令list列出系统已有的虚拟机:

$ VBoxManage list vms

"XP" {8842d793-228c-458e-a880-8051193fd2db}

我系统上已经安装了一台名为XP的虚拟机,后面括号内部的是它的UUID。

VBoxManage startvm子命令可以通过–type参数指定启动的方式,其中gui就是图形化界面,这和我们平时启动的方式一样。

sdl也是图形化界面,但是少掉了部分功能,比如没有菜单等,一般用于调试过程。最后headless是在后台运行,并且默认开启vrdp服务,可以通过远程桌面工具来访问。

关于这三种启动方式的介绍可以看手册中的这一篇。所以一般我们使用gui或者headless类型启动。

使用gui类型启动虚拟机:
$ VBoxManage startvm XP --type gui

执行结束后,就会启动指定的虚拟机,几乎和平时没什么区别。

使用headless类型启动虚拟机:


$ VBoxManage startvm "XP" --type headless

或者

$ VBoxHeadless --startvm "XP"

结果返回:


$ rdesktop -a 16 -N -g 1280x800 127.0.0.1:3389


Autoselected keyboard map en-us


ERROR: connect: Connection refused



翻了下手册,结果发现要获得VRDP的支持还需要安装额外的扩展包,详细说明可以参考这里。

从VirtualBox的下载页面选择相应的版本下载扩展包。下载完成后,双击即可以完成安装,或者在菜单中File-Preference-Extensions可以安装和查看已安装的扩展包。

安装好再次执行上面的远程命令,这下可以看见虚拟机界面了吧。

可以通过ctrl+alt+enter切换全屏。不过我这里用rdesktop全屏后,屏幕就黑了,只有点过的地方才会恢复。

不知道是什么原因,我就干脆用TigerVNC了,同时在启动headless的时候加上-n参数{$ VBoxHeadless -n -s winxp (VBoxHeadless -s winxp --vnc --vncport 5900 --vncpass password)},通过以下命令远程连接:

$ vncviewer localhost:5900

按下F8会出现一个菜单,里面可以切换全屏。

一切相关的命令:
$ VBoxManage list runningvms # 列出运行中的虚拟机


$ VBoxManage controlvm XP acpipowerbutton # 关闭虚拟机,等价于点击系统关闭按钮,正常关机


$ VBoxManage controlvm XP poweroff # 关闭虚拟机,等价于直接关闭电源,非正常关机


$ VBoxManage controlvm XP pause # 暂停虚拟机的运行


$ VBoxManage controlvm XP resume # 恢复暂停的虚拟机


$ VBoxManage controlvm XP savestate # 保存当前虚拟机的运行状态

免责声明:文章转载自《转载:使用命令行启动VirtualBox虚拟机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇k8s中设置探针-存活探针和就绪探针Beta 1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MacOS内核调试环境搭建

http://ddeville.me/2015/08/using-the-vmware-fusion-gdb-stub-for-kernel-debugging-with-lldbhttp://ddeville.me/2015/08/kernel-debugging-with-lldb-and-vmware-fusionhttps://blog.csdn....

CSC 命令编译cs文件

CSC 命令编译cs文件 编译 File.cs 以产生 File.exe: csc File.cs 编译 File.cs 以产生 File.dll: csc /target:library File.cs  可缩写成 csc /t:library File.cs  编译 File.cs 并创建 My.exe: csc /out:My.exe Fil...

JPS 命令详解

JPS 名称: jps - Java Virtual Machine Process Status Tool 命令用法: jps [options] [hostid]               options:命令选项,用来对输出格式进行控制               hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口。  ...

Mac 必备工具之 brew

brew 是 Mac 下的一个包管理工具,类似于 centos 下的 yum,可以很方便地进行安装/卸载/更新各种软件包,例如:nodejs, elasticsearch, kibana, mysql, mongodb 等等,可以用来快速搭建各种本地环境,程序员必备工具 安装 brew 首先要通过如下命令安装 brew /usr/bin/ruby -e "...

c# 构造tree下拉框,空格转化

c#代码写的空格如何在html中的select中展示出来呢? var str = ""; //父级菜单不缩进 for (var j = 1; j < i; j++) { s...

(转)linux 内存管理——内核的shmall 和shmmax 参数

内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好。SHMMIN= 最小的内存segment的大小 SHMMNI= 整个系统的内存segment的总个数 SHMSEG= 每个进程可以使用的内存segment的最大个数配置信号灯( semphor...