让VirtualBox虚拟机实现开机自动后台运行
转至:http://www.cnblogs.com/top5/archive/2012/01/19/2326234.html
测试环境:
Host OS: Windows 7 x64
Guest OS: Ubuntu、Windows XP
开启远程登录,并设置用户密码,XP用control userpasswords2设置自动登录(取消“要使
用本机,用户必需输入服务器密码”)
虚拟机软件:VirtualBox-4.0.2-69518-Win
目的:开机后自动后台运行虚拟机,只有进程,不显示GUI界面。
由于VMware Server 2只支持到Windows 2008 Server系统,Windows 7系统不便使用,即使
能安装也可能会有问题。VMware Workstation不免费,本身也没有后台运行虚拟机的功能,
只能通过第三方软件把启动虚拟机做成系统服务,或者设置了“在关闭后在后台运行电源
已打开的虚拟机”用批处理启动虚拟机再杀进程,或者用计划任务。因此选择使用免费的
VirtualBox。
后台启动VirtualBox虚拟机的命令有2个:
VBoxHeadless -s|--startvm <uuid>|<name> [--vrde=on|off|config]
VirtualBox 1.6后的版本里,VBoxVRDP只是VBoxHeadless的快捷方式,不再是单独的命令。
防止VRDP端口(虚拟机设置里的远程桌面)被外界访问到,用参数--vrde=off,虚拟机用桥接
网络时,虚拟机系统自带的远程桌面不受此参数影响。
VBoxManage [-q|--nologo] startvm <uuid>|<name> [--type gui|sdl|headless]
The following values are allowed:
gui - Starts a VM showing a GUI window. This is the default.
headless - Starts a VM without a window for remote display only.
启动虚拟机的脚本(虚拟机的名称为XP):
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxHeadless --startvm "XP"
:: VBoxManage startvm "XP" --type headless
直接启动批处理脚本的话(包括脚本放到“启动”里),无论用哪条命令启动虚拟机都会有
一个headless的cmd窗口,用start ""也不能消去,关闭了该cmd窗口后虚拟机也退出了,而
且属于不正常关闭。可以一次启动多个虚拟机系统。
关闭虚拟机的脚本:
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxManage controlvm "XP" acpipowerbutton
:: send {Enter} to VM, for Windows Guest OS only.
VBoxManage controlvm "XP" keyboardputscancode 1c
打开gpedit.msc组策略,在用户的登录/注销脚本里,分别添加上面2个脚本。这里不能使用
计算机的启动/关机脚本,测试过是不能启动虚拟机的,可能和SYSTEM用户执行的脚本不能
访问网络等权限有关。使用登录脚本启动虚拟机不会显示headless的cmd窗口(系统组策略
里默认是隐藏运行脚本),未测试计划任务的方式。
远程登录Windows系统的虚拟机后,如果远程未注销,用关闭虚拟机的脚本就无法关闭虚拟
机,原因是关闭计算机时会提示“其他用户登录到这台计算机,关闭WINDOWS会使他们丢失
数据,您要继续关机吗?”造成acpi关机方式失败。在Guest系统里设置关机/注销脚本,用
shutdown -s -t 0也无效。解决方法是向虚拟机发送回车键,模拟“确定”操作,当然也可
以用shutdown远程关闭系统,但设置和操作更麻烦了。
虚拟机是Linux时,避免用VboxHeadless.exe和VirtualBox.exe交替登录,两者的不同步可
能会造成虚拟机的filesystem损坏。
让VirtualBox虚拟机实现开机自动后台运行的更多相关文章
- Windows Redis 开机启动后台运行
1. 从 Redis 的安装目录进入 cmd 2. 在 cmd 中输入, 将Redis绑定为 Windows 服务, 并设置为后台启动: redis-server --service-install ...
- tomcat 开机后台运行
引用:http://jingyan.baidu.com/article/a65957f4b12b8724e77f9b5a.html Tomcat是Apache 软件基金会(Apache Softwar ...
- win7下 VirtualBox虚拟机开机后台自启动
win7下安装个linux虚拟机,学习下非常好. 但是每次使用linux的时候,都是打开virtualBox-->启动安装的linux系统-->再用远程桌面(SSH等)连接 每次手动打开比 ...
- 将VirtualBox里安装的虚拟机在后台运行方法(在状态栏隐藏窗口)
由于工作和学习需要,经常要开一个虚拟机开测试和开发,虚拟机我选择Oracle公司的VirtualBox(用了几年了,感觉不错的一款产品),经常开着这个窗口感觉有些浪费资源,这样隐藏窗口就在需求了. 将 ...
- VirtualBox虚拟机运行Ubuntu如何不卡
VirtualBox虚拟机运行Ubuntu如何不卡 转自http://www.xuzefeng.com/post/85.html 上一篇文章<VirtualBox虚拟机安装Ubuntu详细教程& ...
- Android---让你的APK程序开机自动运行(转)
转自: http://blog.sina.com.cn/s/blog_72f6e45701014l6t.html 有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service. ...
- 设置tomcat开机自启和后台运行
前言:程序登录遇到了问题,重启服务器上的tomcat后程序可以正常的使用,是通过进入bin目录,双击startup.bat运行启动的程序,此时会弹出启动窗口,而且该窗口不能关闭,这个窗口是tomcat ...
- Vbox隐藏虚拟机,实现后台运行
Vbox隐藏虚拟机,实现后台运行 1.进入vBox安装位置的命令行 D:\Program Files\VirtualBox> 2.执行命令: .\VBoxManage startvm Xp_ ...
- tomcat设置开机自启动和后台运行
前言:当浏览器页面显示不出来的时候,重启装在服务器上的tomcat可以正常使用,是通过进入tomcat的bin目录,双击startup.bat运行启动的程序,这时会弹出启动窗口(tomcat的运行日志 ...
随机推荐
- spring boot添加logging不能启动且不报错
1.问题: application.yml中添加logging启动失败,不报错,去除后又正常 logging: config: classpath:test-logback-spring.xml报错 ...
- 接口自动化之get/post请求
本篇旨在对get和post请求做一个总结 目录 1.get请求 2.post请求 1.get请求 get请求一般形式相同,仅带url即可发送请求 对于https协议的请求,加一个特殊处理即可(veri ...
- Spring学习01——HelloSpring
这是一个spring入门demo: package com.su.test; public class HelloWorld { public void say(){ System.out.print ...
- type动态创建类
在一些特定场合,需要动态创建类,比如创建表单,就会用到type动态创建类,举个例子: class Person(object): def __init__(self,name,age): self.n ...
- [Web 前端] 015 css 三种元素的介绍
1. 块元素,内联元素,内联块元素 元素就是标签 布局中常用的有三种标签 块元素 内联元素 内联块元素 1.1 块元素 也称为行元素 布局中常用的标签,如 div.p.ul.li.h1~h6.dl.d ...
- 老技术记录-C#+SqlServer使用SqlDependency监听数据库表变化
开发环境: .net / C# (.net core理论上也可以) 数据库:MS SQL Server 2005 以上 (我用的sqlserver2012) 功能:SqlDependency提供了一种 ...
- AtCoder Beginner Contest 133-C - Remainder Minimization 2019
https://atcoder.jp/contests/abc133/tasks/abc133_c 思路:由于L,R区间太大,所以不能暴力枚举.由于求(i*j)%2019的最小值,那么2019的倍数对 ...
- centos安装httprunner方法
测试脚本执行的环境部署(在jenkins服务器中,要求jenkins服务器和目标的灰度环境是连通的): 一.安装python3.8 $python#看见2.6.6Python 2.6.6 (r266: ...
- C# ListView添加DragDrop
先建立好ListView,ImageList,然后编写一个比较类在就是添加DragDrop事件了具体实现看代码吧 public partial class Form1 : Form { public ...
- vue路由守卫配合权限,白名单
router.beforeEach(async(to, from, next) => { // 进度条开始 NProgress.start() // 确认用户是否已登录(获取它的token值,这 ...