转载:使用命令行启动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虚拟机的更多相关文章
- 使用命令行操控VirtualBox虚拟机
(1)启动虚拟机:$ VBoxManage startvm <VMNAME> --type gui #执行结束后,就会启动指定的虚拟机,几乎和平时没什么区别. $ VBoxManage ...
- vmware 命令行启动虚拟机
在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?/usr/bin/vmware[root@node0 ~]# /usr ...
- VirtualBox与Genymotion命令行启动
一.VirtualBox命令行启动 1.添加环境变量: %programfiles%\Oracle\VirtualBox 2.用VBoxManage查看已存在vmname|uuid命令: VBoxMa ...
- 命令行安装kvm虚拟机、桥接网络、用virt-manager管理
宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...
- scrapy 源码解析 (一):启动流程源码分析(一)命令行启动
前言 虽然爬虫的入门级编写并不难,但要让爬虫真正稳定可靠的运行起来,真不是一件容易的事.首先,要用到scrapy,就必须要读懂scrapy这个爬虫框架,如果连这个框架的执行逻辑都搞不懂,那么爬虫也很难 ...
- Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式
昨天通过几个小程序以及Hangout源码学习了CLI的基本使用,今天就来尝试翻译一下CLI的官方使用手册. 下面将会通过几个部分简单的介绍CLI在应用中的使用场景. 昨天已经联系过几个基本的命令行参数 ...
- sublime text2在windows中以命令行启动
sublime text2在windows中以命令行启动 把执行文件添加到PATH中即可,如图: 如果你和我一样习惯了mac下的简写subl,那么需要在程序目录中新建一个批处理文件subl.bat ...
- Apache Commons CLI命令行启动
今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式--比如可以从命令行启动,也可以从web端启动.今天就看看如何设计命令行启动... Apache Commons CLI Apac ...
- 记一次使用命令行启动部署在tomcat上的应用
在Eclipes进行程序开发完成后,一般都会直接在Eclipse部署启动,其中的一些启动参数设置都会在其中进行,若用命令行启动,则需要手动配置. 程序开发完成后打成的war包,需要部署到Tomcat应 ...
随机推荐
- 5 分钟上手 ECharts
获取 ECharts 你可以通过以下几种方式获取 ECharts. 从官网下载界面选择你需要的版本下载,根据开发者功能和体积上的需求,我们提供了不同打包的下载,如果你在体积上没有要求,可以直接下载完整 ...
- VRP
VRP系统命令采用分级保护方式,命令被划分为参观级.监控级.配置级.管理级4个级别. 参观级:网络诊断工具命令(ping.tracert).从本设备出发访问外部设备的命令(包括:Telnet客户端.S ...
- Selenium for C#的入门Demo
原文转载:http://www.cnblogs.com/halia/p/3562132.html?utm_source=tuicool 最近刚开始接触Selenium, 发现很多例子都是用java写的 ...
- 51nod 1135 原根
题目链接:51nod 1135 原根 设 m 是正整数,a是整数,若a模m的阶等于φ(m),则称 a 为 模m的一个原根.(其中φ(m)表示m的欧拉函数) 阶:gcd(a,m)=1,使得成立的最小的 ...
- ocp 1Z0-051 141题---感觉有问题
141. View the Exhibit and examine the structure of CUSTOMERS and GRADES tables. You need to display ...
- [转]CSS,font-family,常用网页字体
http://www.zreading.cn/ican/2014/10/css-font-family/ CSS,font-family,好看常用的中文字体 2014-10-14 例1(小米米官网): ...
- @HTML.checkboxFor()用法
<%=Html.CheckBox("chk1",true) %> <%=Html.CheckBox("chk1", new { @class= ...
- Android 自动生成表格
Layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...
- hive的基本操作
1.创建表 First, create a table with tab-delimited text file format: (1)CREATE TABLE u_data ( userid INT ...
- Objective-C学习笔记-第一天(1)
.h头文件,用于声明一些公开的属性.方法.头文件一般不会放太多的东西,没必要暴露太多接口,私有和封装. .m主文件,用于实现.h文件中的方法,以及一些其它的方法. -(返回值)方法名参数1名称:(参数 ...