热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

在命令行启动/关闭VirtualBox虚拟机的方法

SUNVirtualBox除了方面易用的图形界面外,还有功能强大的命令行管理工具。下面就先介绍下从命令行启动VirtualBox中虚拟主机的方法!通过命令行启动VirtualBox,可以省去直接启动虚拟机显示图形界面的那部分资源。这种形式非常适用于在服务器上虚拟n台

SUN VirtualBox 除了方面易用的图形界面外,还有功能强大的命令行管理工具。
下面就先介绍下从命令行启动VirtualBox 中虚拟主机的方法!

通过命令行启动 VirtualBox,可以省去直接启动虚拟机显示图形界面的那部分资源。这种形式非常适用于在服务器上虚拟 n 台机器同时提供服务。使用 Host Interface 网络连接方式,可以让虚拟机的虚拟网卡获取和主机一样的网络地址等信息,从而可以直接对外提供服务。

首先,我们可以使用VBxManager 命令行管理工具来查看当前的虚拟基设置和状态

QHo@qhoferrari1k:~$ VBoxManage list vms
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Name:            xitmdbmr
Guest OS:        Solaris (64 bit)
UUID:            3ce3fd01-7e17-46b3-8394-be9c1b17ee66
Config file:     /export/home/QHo/.VirtualBox/Machines/xitmdbmr/xitmdbmr.xml
Memory size:     1536MB
VRAM size:       16MB
Boot menu mode:  message and menu
ACPI:            on
IOAPIC:          on
PAE:             off
Time offset:     0 ms
Hardw. virt.ext: on
Nested Paging:   off
VT-x VPID:       off
State:           running (since 2009-03-31T20:15:45.711000000)
Monitor count:   1
3D Acceleration: on
Floppy:          empty
SATA:            enabled
SATA 0:          /vms/vdi/xitmdbmr01.vid.vdi (UUID: 21d2e947-8b2b-4ea1-813d-6e7c7624116b)
IDE Controller:  PIIX4
DVD:             empty
NIC 1:           MAC: 08002798DAFE, Attachment: Host Interface 'bge0 - Broadcom BCM57xx Gigabit Ethernet', Cable connected: on, Trace: off (file: none), Type: 82543GC, Reported speed: 0 Mbps
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
UART 1:          disabled
UART 2:          disabled
Audio:           disabled (Driver: Unknown, Controller: Unknown)
Clipboard Mode:  Bidirectional
VRDP:            disabled
Shared folders:  

Guest:

Statistics update:                   disabled

Name:            dcsvr08
Guest OS:        Windows 2008 (64 bit)
UUID:            cf34078e-29e3-4f4f-9a11-d77bac6efd04
Config file:     /export/home/QHo/.VirtualBox/Machines/dcsvr08/dcsvr08.xml
Memory size:     1024MB
VRAM size:       32MB
Boot menu mode:  message and menu
ACPI:            on
IOAPIC:          on
PAE:             off
Time offset:     0 ms
Hardw. virt.ext: on
Nested Paging:   off
VT-x VPID:       off
State:           powered off (since 2009-03-31T20:34:29.935000000)
Monitor count:   1
3D Acceleration: off
Floppy:          empty
SATA:            enabled
SATA 0:          /vms/vdi/dcsvr08vid01.vdi (UUID: 83486c52-9cc5-4910-8fc3-4a7c7ec0bbca)
IDE Controller:  PIIX4
DVD:             /opt/VirtualBox/amd64/additions/VBoxGuestAdditions.iso (UUID: 4f4f1b87-7a61-442a-b5e3-a624520af8c6)
NIC 1:           MAC: 080027EDB7E7, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
UART 1:          disabled
UART 2:          disabled
Audio:           disabled (Driver: Unknown, Controller: Unknown)
Clipboard Mode:  Bidirectional
VRDP:            disabled
Shared folders:  

Guest:

Statistics update:                   disabled

QHo@qhoferrari1k:~$

上面的 是在我Ferrari 上执行 VBoxManage list vms 命令的输出,
可以看到我的VBox里有两天虚拟机 ,xitmdbmr   Solaris (64 bit) 和dcsvr08 Windows 2008 (64 bit)
下面通过实例来说明如何从命令行启动和关闭VirtualBox 虚拟机的两种常用方式。

第一种:使用 VRDP 方式通过命令行启动虚拟机:
QHo@qhoferrari1k:~$ VBoxManage startvm dcsvr08 -type vrdp
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Waiting for the remote session to open...
Remote session has been successfully opened.
QHo@qhoferrari1k:~$

第二种 :使用 Headless 启动无前端图形界面方式:
QHo@qhoferrari1k:~$ VBoxHeadless -startvm "dcsvr08"
VirtualBox Headless Interface 2.1.4
(C) 2008-2009 Sun Microsystems, Inc.
All rights reserved.

Listening on port 3389

注意:此时如果用ctrl-C 键将导致虚拟机异常退出

3389是VRDP(远程桌面)监听端口。
启用VRDP后,一旦虚拟机启动完毕,我们就可以通过远程桌面/XManage等GUI远程管理工具来登录客户操作系统。

如下图所示,在opensolaris上使用“终端服务客户端”远程登录到刚才启动的虚机dcsvr08
VRDP.jpg

要确认虚拟机是否在运行,可以使用命令VBoxManage list runningvm 来查看。
QHo@qhoferrari1k:~$ VBoxManage list runningvms
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

3ce3fd01-7e17-46b3-8394-be9c1b17ee66
cf34078e-29e3-4f4f-9a11-d77bac6efd04
QHo@qhoferrari1k:~$
注意: 这里显示的是正在运行的虚拟主机 UUID。

从命令行关闭虚拟机
通过VBoxManage 命令行工具的VBoxManage controlvm   | 子命令可以改变虚拟机的运行状态,
其中常用的几个选项是:

pause resume reset poweroff savestate acpipowerbutton acpisleepbutton
下面示例使用 poweroff 选项关闭虚拟机 dcsvr08

QHo@qhoferrari1k:~$ VBoxManage controlvm dcsvr08 poweroff
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

QHo@qhoferrari1k:~$ VBoxManage list runningvms
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

3ce3fd01-7e17-46b3-8394-be9c1b17ee66
QHo@qhoferrari1k:~$
在poweroff 后马上list runningvms ,可以看到dscvr08已经被关闭,现在只有一台虚机处于运行状态。

SUN VirtualBox 的命令行启动/关闭方法简介就到此结束。

在了解了如何从命令行启动VirtualBox虚机以后,我们就可以通过启动脚本(UNIX/Linux)或启动任务(Windows)让 VirtualBox的虚机随宿主操作系统的启动而启动,通过编写关闭脚本、批处理、计划任务等,就可以对VirtualBox的虚机的运行进行灵活调 度。
这里仅为抛砖引玉,具体如何灵活运用大家可以自己实践和揣摩!

 

**************************************************************************************************

作为一款功能强大的开源虚拟机软件,VirtualBox 不仅提供有图形化的用户界面,而且也包含命令行界面。VirtualBox 的命令行界面程序为 VBoxManage,通过它你可以完成从命令行创建虚拟机、修改虚拟机的选项设置、对虚拟机进行控制等几乎所有的操作。如果在 Headless Server 上,你将发现 VirtualBox 的命令行界面非常有用。

通过执行 VBoxManage --help 命令,你可以获得 VBoxManage 的完整用法。本文并不打算解释其中的每一个选项,仅给出创建一个虚拟机的必要步骤。如果你感兴趣,不妨亲自去探索 VBoxManage 的其他用法。

要从命令行创建虚拟机,你可以执行以下三步,我们以 Ubuntu 9.10 为例:

创建一个新的虚拟机,虚拟机的名称通过 --name 选项指定:

VBoxManage createvm --name "Ubuntu 9.10" --register

创建该虚拟机所用的虚拟硬盘,用 --filename 指定虚拟硬盘的名称,--size 选项指定虚拟硬盘的大小,本例为 5 GB:

VBoxManage createhd --filename "Ubuntu910.vdi" --size 5000 --remember

修改虚拟机的选项设置:

VBoxManage modifyvm "Ubuntu 9.10" --memory "512MB" --hda "Ubuntu910.vdi" --dvd /home/linuxtoy/karmic-desktop-i386.iso --acpi on --accelerate3d on --boot1 dvd --nic1 nat

其中,

--memory 指定内存的大小

--hda 指定所用的虚拟硬盘

--dvd 指定所用的 ISO 映像

--acpi on 启用 ACPI

--accelerate3d on 启用 3D 加速

--boot1 引导次序

--nic1 网络设置

如果你愿意,那么现在便可以通过 VBoxManage startvm "Ubuntu 9.10" 来启动虚拟机。

 

*********************************************************************************************

通过命令行启动 VirtualBox,可以省去直接启动虚拟机显示图形界面的那部分资源。这种形式非常适用于在服务器上虚拟 n 台机器同时提供服务。使用 Host Interface 网络连接方式,可以让虚拟机的虚拟网卡获取和主机一样的网络地址等信息,从而可以直接对外提供服务。

下面以 Solaris 10 主机上运行虚拟 Windows XP 为例。

1. 查看主机上的可用虚拟机:

2. 使用 VRDP 方式通过命令行启动虚拟机:

当然也可以用 Headless 启动无前端图形界面方式:

$ VBoxHeadless -startvm "winxp"

3. 查看已经运行虚拟机:

这一串编号是虚拟机的 UUID。

4. 在另外一台计算机上远程桌面连接该 XP 虚拟系统,顺利登陆:

5. 下面是一些配置示例:

(1) 修改虚拟机配置:

$ VBoxManage modifyvm "winxp" -memory "256MB" -acpi on -boot1 dvd -nic1 nat

(2) 创建一个虚拟磁盘:

$ VBoxManage createhd -filename "WinXP.vdi" -size 10000 ?register

(3) 将虚拟磁盘和虚拟机关联:

$ VBoxManage modifyvm "winxp" -hda "WinXP.vdi"

(4) 挂载光盘镜像 ISO:

$ VBoxManage openmedium dvd /full/path/to/iso.iso

(5) 将光盘镜像 ISO 和虚拟机关联

VBoxManage modifyvm "winxp" -dvd /full/path/to/iso.iso

6. 如果需要创建另外一个虚拟系统,可以通过 createvm 命令,这是一个 SUSE 的例子:


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 本文详细介绍了在 Windows 2000 系统中启用 TELNET 服务时需要注意的 NTLM 配置问题,帮助用户解决常见的身份验证失败错误。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
author-avatar
狗狗水灵灵_266
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有