转载:使用命令行启动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 # 保存当前虚拟机的运行状态

时间: 2024-10-12 22:03:16

转载:使用命令行启动VirtualBox虚拟机的相关文章

使用命令行启动VirtualBox虚拟机

$ VBoxManage list runningvms # 列出运行中的虚拟机$ VBoxManage controlvm <VMNAME> acpipowerbutton # 关闭虚拟机,等价于点击系统关闭按钮,正常关机$ VBoxManage controlvm <VMNAME> poweroff # 关闭虚拟机,等价于直接关闭电源,非正常关机$ VBoxManage controlvm <VMNAME> pause # 暂停虚拟机的运行$ VBoxManage

命令行启动kvm虚拟机

kvm虚拟机常用管理命令 查看启动中的kvm虚拟机: virsh  list 查看所有kvm虚拟机状态: virsh  list  --all 启动kvm虚拟机: virsh  start   FH-UMP-ZABBIX2(虚拟机名称) 原文地址:https://www.cnblogs.com/A121/p/12029026.html

vmware 命令行启动虚拟机

在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?/usr/bin/vmware[[email protected] ~]# /usr/bin/vmware --help-all用法:  vmware [选项...] [--] [configuration file(s)]帮助选项:  -?, --help                       显示帮助选项  --help-all               

从命令行启动虚拟机

从命令行启动虚拟机: 2.用命令列出虚拟机的ID: 1 vim-cmd vmsvc/getallvms |grep <vm name> 注意: 第一列输出是vmid. 2.用命令查看虚拟机启动状态: 1 vim-cmd vmsvc/power.getstate <vmid> 3.用命令启动虚拟机: 1 vim-cmd vmsvc/power.on <vmid>

VirtualBox与Genymotion命令行启动

一.VirtualBox命令行启动 1.添加环境变量: %programfiles%\Oracle\VirtualBox 2.用VBoxManage查看已存在vmname|uuid命令: VBoxManage list vms 3.用VBoxManage无界面启动vmname|uuid命令: VBoxManage startvm <uuid|vmname> [--type gui|sdl|headless|separate] 例如: VBoxManage startvm CentOS7 --t

Spring Boot通过命令行启动发生FileNotFoundException

Spring Boot + Jersey 通过命令行启动会发生错误FileNotFoundException异常 异常信息如下: ERROR o.a.c.c.C.[Tomcat].[localhost].[/] - StandardWrapper.Throwable org.glassfish.jersey.internal.ServiceConfigurationError: org.glassfish.jersey.internal.spi.AutoDiscoverable: : java.

让.Net程序支持命令行启动

很多时候,我们需要让程序支持命令行启动,这个时候则需要一个命令行解析器,由于.Net BCL并没有内置命令行解析库,因此需要我们自己实现一个.对于简单的参数来说,自己写一个字符串比较函数来分析args参数也未尝不可.但是如果需要配置的参数较多的话,就得好好设计一下这个解析器了. 秉着不重复造轮子的原则,我在网上搜了一下,在Stackoverflow上发现有人问了同样的问题:Best way to parse command line arguments in C#?.简单的看了一下,整理出了其中

如何设置fedora默认从命令行启动?

Sumary:因为在fedora中没有/etc/initab文件我们不方便从这里设置它的runlevel target,但是linux又给我们提供了一个强悍的工具systemd,我们可以用system来链接默认的启动级别,所以开始吧! 一.实现代码 (1)删除目标链接并创建新的符号链接(从命令行启动) ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target (2)从图形界面启动 把multi-

命令行启动win7系统操作部分功能

control.exe /name microsoft.folderoptions 启动资源管理器的 文件夹属性 选项卡 control.exe /name Microsoft.AddHardware 控制面板所有控制面板项设备和打印机 control.exe /name Microsoft.AdministrativeTools 控制面板所有控制面板项管理工具 control.exe /name Microsoft.PeopleNearMe 网络邻居 control.exe /name Mic