- Управление VirtualBox из командной строки.
- Для остановки машины существуют следующие команды
- Информация и настройки виртуальных машин VirtualBox.
- Записки программиста
- Управление VirtualBox из консоли с помощью vboxmanage
- Как запустить виртуальную машину безголовый с VBoxManager как служба Windows
- что я пробовал
- 1. Я пытался создать сервис используя sc команда
- 2. Назначьте Сценарии Запуска Компьютера
- то, что осталось
- часто задаваемые вопросы
- 2 ответов
- How to run a headless VM with VBoxManager as a windows service
- Objective
- What i’ve tried
- 1. I’ve tried to create a service using sc command
- 2. Assign Computer Startup Scripts
- What left
- 2 Answers 2
- virtualbox.org
- VBoxManage startvm VM —type headless vs VBoxHeadless
- VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
- Re: VBoxManage startvm VM —type headless vs VBoxHeadless
Управление VirtualBox из командной строки.
Опубликовано вт, 12/23/2014 — 19:15 пользователем goodigy
Управлять виртуальными машинами VirtualBox можно и бывает, что нужно из командной строки. Делается это с помощью утилиты VBoxManage.
Все команды доступные для использования, можно посмотреть тут.
Основные, для использования у себя на компьютере, рассмотрим ниже.
Для того, чтобы посмотреть список существующих виртуальных машин, нужно выполнить
список будет примерно таким
Запустить какую-либо машину
Запустить без графического окна, в фоне, только для удаленного подключения, нужно указать опцию type как headless
Для остановки машины существуют следующие команды
Простое выключение
Сброс, аналогично кнопке компьютера Reset
Сохранение состояния и выключение
машина сохранит состояние и выключится.
Запустить машины после этих команд, можно с помощью VBoxManage startvm imyaVM.
Посмотреть список запущенных виртуальных машин
Информация и настройки виртуальных машин VirtualBox.
Чтобы изменить какую-либо настройку виртуальной машины, можно воспользоваться командой ниже, пример изменения размера оперативной памяти
При изменении настроек с помощью modifyvm виртуальная машина, обязательно должна быть выключена.
Список опций для изменения можно посмотреть по этой ссылке (на английском).
Как создать виртуальную машину VirtualBox из командной строки можно почитать в следующей статье.
Записки программиста
Управление VirtualBox из консоли с помощью vboxmanage
Такие решения, как LXC и KVM, не всегда удобны, потому что они работают только под Linux. Используя их, вы не можете передать виртуалки пользователям каких-нибудь MacOS или Windows. По этой причине, а также потому что на практике у меня еще не возникало необходимости запускать больше пяти ВМ одновременно, я все еще предпочитаю VirtualBox. Им можно управлять из консоли при помощи Vagrant, но Vagrant всегда делал чуть-чуть не то, что мне на самом деле было нужно. Например, я хочу, чтобы по дэфолту все виртуалки всегда были в одной NAT-сети, без какой-либо правки Vagrantfile’ов. Все это сподвигло меня к изучению «родных» утилит VirtualBox, в частности, vboxmanage.
Давайте же посмотрим, как все, что вы когда-либо можете захотеть от виртуалок, делается с помощью vboxmanage.
Просмотреть настройки VirtualBox:
Изменение настроек, например, пути до каталога, гда хранятся виртуалки:
Список поддерживаемых типов виртуалок:
Создаем новую виртуалку:
Меняем параметры ВМ — указываем количество памяти и тд:
Создаем жесткий диск размером 10 Гб (место по дэфолту не преаллоцируется):
Цепляем созданный жесткий диск к виртуалке:
Цепляем к ВМ ISO-образ, с которого будет происходить установка системы:
Включаем доступ к ВМ по VNC:
Я лично для подключения использую TigerVNC (форк TightVNC):
Чтобы каждый раз не вводить пароль, можно сказать:
… и всегда использовать этот файл:
Посмотреть свойства виртуальной машины (узнать номер порта VNC):
# если на десктопе
vboxmanage startvm ubuntu1604
# если все это крутится на сервере и собираемся подрубаться по VNC
vboxmanage startvm —type headless ubuntu1604
Для некоторых систем установочный диск отключается от ВМ автоматически по окончанию установки. Если этого не произошло, говорим:
Pause, Resume, Poweroff:
Проброс портов настраивается так (ВМ должна быть остановлена):
После этого в виртуалку можно будет зайти по SSH таким образом:
Просмотр списка правил перенаправления портов:
Список всех виртуалок:
Список работающих виртуалок:
Переименовать ВМ (при этом переименовывается и ее каталог):
Создать полный клон ВМ:
Создание новой сети:
Подключение виртуалок к NAT-сети:
Важно! Скорее всего, гостевая операционная система окажется не настроена для использования второго интерфейса, если вы добавили его после установки. В Ubuntu для добавления нового интерфейса нужно отредактировать файл /etc/network/interfaces, для Arch Linux см заметку Как я устанавливал Arch Linux на свой ноутбук.
Удалить виртуалку и все ассоциированные с ней файлы, в том числе и диски:
Это, разумеется, далеко не полный список возможностей vboxmanage. Например, мы не рассмотрели использование снапшотов, соединение машин при помощи последовательного порта (например, для отладки ядра операционной системы), работу с разделяемыми каталогами, и многе другое. Подробности вы найдете в официальной документации и vboxmanage —help .
Вооруженный приведенными выше знаниями, я написал скрипт на Python под названием vm, который управляет виртуальными машинами в точности так, как мне это удобно. Поэтому я считаю, что Vagrant не нужен. А вы что скажете?
Как запустить виртуальную машину безголовый с VBoxManager как служба Windows
Я хочу запустить эту команду VBoxManage startvm MyVM —type headless в системе загрузки так же, как сервис (postgres, apache) делает.
что я пробовал
1. Я пытался создать сервис используя sc команда
Я нашел через интернет, что может быть решением, поэтому я попробовал все это версии:
sc create «vboxMyVMService» binPath= «C:Progman FilesOracleVirtualBoxVBoxManage.exe startvm MyVM —type headless»
sc create «vboxMyVMService» binPath= «C:Progman FilesOracleVirtualBoxVBoxManage startvm MyVM —type headless»
не удалось, поэтому я попытался подавить подробный вывод команды
sc create «vboxMyVMService» binPath= «C:Progman FilesOracleVirtualBoxVBoxManage.exe startvm MyVM —type headless > NUL»
sc create «vboxMyVMService» binPath= «C:Progman FilesOracleVirtualBoxVBoxManage startvm MyVM —type headless»
все еще нет результатов. Вся эта версия вернула мне 1053 ошибка. Таким образом, последний вызов должен был добавить команду Virtualbox к Path
sc create «vboxMyVMService» binPath= «VBoxManage.exe startvm MyVM —type headless»
sc create «vboxMyVMService» binPath= «VBoxManage startvm MyVM —type headless»
sc create «vboxMyVMService» binPath= «VBoxManage.exe startvm MyVM —type headless > NUL»
sc create «vboxMyVMService» binPath= «VBoxManage startvm MyVM —type headless > NUL»
нет положительного результата всегда 1053 ошибка.
2. Назначьте Сценарии Запуска Компьютера
я последовал этому учебник с моей последней надеждой, но нет успех.
то, что осталось
Я думаю о том, чтобы загрузить Visual Studio и попробовать что-то связанное с создать проект служб.
так, ребята, где моя ошибка? Есть ли надежда для меня?
часто задаваемые вопросы
вы можете переключить вас ОС linux?
зачем вам эта виртуальная машина для запуска в с системой?
- к сожалению, этот хост windows 7 представляет собой небольшой сервер для приложений, работающих на виртуальной машине. Машина не моя, и это единственный вариант, который они мне дали для развертывания.
почему вы не выполняете развертывание приложения внутри узла windows?
- я не запускаю PHP, или любой .NET материал, так что нет.
2 ответов
создать НССМ услуги в строке типа:
nssm/win64/nssm.exe install vbox
выберите exec VBoxHeadless.exe, как изображение:
используйте свою учетную запись Windows при входе в систему (это очень важно)
работает для меня.
Я не смог найти механизм запуска виртуальной машины как службы с помощью команды VBoxManager без необходимости входа в систему.
Я включил мою виртуальную машину Ubuntu Server для запуска в качестве службы с помощью инструмента VBoxVmService. http://vboxvmservice.sourceforge.net/
краткое описание: VBoxVmService-это приложение Windows, которое позволяет запуск виртуальных машин Oracle VirtualBox из собственной операционной системы Windows объект обслуживания.
основная причина, по которой я это требовал, — запустить виртуальную машину без необходимости входа в систему. Моя рабочая станция разработчика, она перезапускается для обновлений, и я иногда забываю запустить виртуальную машину, пока кто-то не ткнет меня.
вот как это работает:
- убедитесь, что требуемая виртуальная машина запускается и работает нормально без ошибок. Иначе будет сложно отлаживать копание по логам.
- по VMBoxService установки это исполняемый как Windows служба
- изменить его INI-файл конфигурации (см. здесь для полного документированного образца)
- перезагрузите компьютер или просто запустите установленную службу Windows VMBoxService
How to run a headless VM with VBoxManager as a windows service
Objective
I want to run this command VBoxManage startvm MyVM —type headless at the boot system just like a service (postgres, apache) does.
What i’ve tried
1. I’ve tried to create a service using sc command
I’ve found over the internet that could be the solution so i tried all this versions:
sc create «vboxMyVMService» binPath= «C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM —type headless»
sc create «vboxMyVMService» binPath= «C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM —type headless»
No success, so i tried to suppress the verbose output of the command
sc create «vboxMyVMService» binPath= «C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM —type headless > NUL»
sc create «vboxMyVMService» binPath= «C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM —type headless»
Still no results. All this version returned me a 1053 error. So the last call was to add the Virtualbox command to the Path
sc create «vboxMyVMService» binPath= «VBoxManage.exe startvm MyVM —type headless»
sc create «vboxMyVMService» binPath= «VBoxManage startvm MyVM —type headless»
sc create «vboxMyVMService» binPath= «VBoxManage.exe startvm MyVM —type headless > NUL»
sc create «vboxMyVMService» binPath= «VBoxManage startvm MyVM —type headless > NUL»
No positive result always 1053 error.
2. Assign Computer Startup Scripts
I followed this tutorial with my last hope, but no success.
What left
I’m thinking about to download the Visual Studio and try something related to create a service project.
So guys, where is my mistake? Is there hope to me?
Can you switch you OS to linux?
Why you need this VM to startup at with the system?
- Unfortunately this windows 7 host is a small server for the application running over the VM. The machine it’s not mine and it’s the only option they gave to me to make the deploy.
Why you are not making the deploy of the application inside the windows host?
- I’m not running PHP, or any .NET stuff, so no.
2 Answers 2
Create a NSSM service in prompt like:
nssm/win64/nssm.exe install vbox
Select exec VBoxHeadless.exe like image:
Use your Windows Account in Logon (this is very important)
I wasn’t able to find a mechanism to start a VM as service with VBoxManager command without anybody required to login first.
I enabled my Ubuntu Server VM to run as service using the VBoxVmService tool: https://github.com/onlyfang/VBoxVmService
Brief Description: VBoxVmService is a Windows application that allows you to run Oracle’s VirtualBox VMs from within a native Windows service entity.
The main reason i required this is, to start the VM without anybody required to login. Mine being a developer workstation, it get’s restarted for updates, and i sometimes forget to start the VM until someone pokes me.
Here’s how it works:
First, manually ensure the required VM starts and works fine without errors. Else will be tough to debug digging through the logs.
Upon installation VMBoxService set’s it’s executable as a windows service
Edit it’s configuration INI file (Refer here for full documented sample)
Reboot the machine or just start the VMBoxService’s installed windows service
virtualbox.org
End user forums for VirtualBox
- Board index‹General‹Using VirtualBox
- Change font size
- Print view
- FAQ
- Login
VBoxManage startvm VM —type headless vs VBoxHeadless
VBoxManage startvm VM —type headless vs VBoxHeadless
by riobard » 26. Apr 2010, 21:59
What’s the difference between the two ways to start a headless virtual machine?
Code: Select all Expand viewCollapse view VBoxHeadless —vrdp=off —startvm $vm vs
Code: Select all Expand viewCollapse view VBoxManage startvm $vm —type headless
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by hustille » 27. Apr 2010, 18:58
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by Perryg » 27. Apr 2010, 21:24
It’s in the book!
Chapter 7.1.2. VBoxHeadless, the VRDP-only server
To start a virtual machine with VBoxHeadless, you have two options:
- You can use VBoxManage startvm —type vrdp. The extra —type option causes the VirtualBox core to use VBoxHeadless as the front-end to the internal virtualization engine.
The recommended way, however, is to use VBoxHeadless directly, as follows:
VBoxHeadless —startvm
This is the recommended way, because when starting the headless interface through VBoxManage, you will not be able to view or log messages that VBoxHeadless may have output on the console. Especially in case of startup errors, such output might be desirable for problem diagnosis.
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by riobard » 27. Apr 2010, 22:01
I’ve read that part, just not so sure if the only difference is log messages. Now I assume I can safely use VBoxManage to start a headless if I don’t care about log messages.
Thanks for the clarification!
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by bluegroper » 21. Nov 2012, 12:43
I try to Autostart a VM on Linux host.
In /etc/rc.local :
Code: Select all Expand viewCollapse view su admin /usr/bin/VBoxHeadless -s
When I test this command from root login, the VM cannot be found.
How do I get Linux to autologin as admin, so that VM can autostart ?
Using VBox 4.2.4. Prefer to run VM as admin user so that compatible with phpvirtualbox.
TIA’s for any tips or clues.
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by Perryg » 21. Nov 2012, 16:00
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by bluegroper » 21. Nov 2012, 22:08
I agree completely, which is why I use admin user.
My question remains «How to autostart a VM at bootup of Linux host» ?
What syntax will work in /etc/rc.local ?
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by Perryg » 21. Nov 2012, 22:26
I would create a start script and put it in the startup applications (if you have GUI) but you can actually call this from rc.local if not
Things to consider:
- 1 that the user (normal) name is admin.
2 that admin installed VirtualBox as normal user using sudo
3 that your user name is in the vboxusers group
4 the script does not specify the su or sudo or the user name.
Specifying a different user name will require that you set the VBOX_USER_HOME environment and that user must have access to the control files of the user that installed VirtualBox.
Re: VBoxManage startvm VM —type headless vs VBoxHeadless
by Accumulator » 19. May 2013, 13:54
I know this is an old thread, but since I found it doing a search, I thought I would add the solution that worked for me.
Add the following line to your /etc/rc.local file:
su -c «VBoxHeadless -startvm vName» -s /bin/sh vUser &
Where vName = the name of the vb server you want to start automatically and vUser is the user VB requires.
Make sure there is a quote ( » ) before VBox and after the vName.
If the vName contains spaces, you can put single quotes ( ‘ ) around it, like so:
su -c «VBoxHeadless -startvm ‘winders xp’ » -s /bin/sh vUser &
Add as many of these lines as you need to the rc.local file to start multiple virtual machines.
Hopefully this will help the next frustrated individual to come along.