- How to create and start VirtualBox VM without GUI
- Prerequisite for starting VirtualBox VM without GUI
- Create a VirtualBox VM From the Command Line
- Start VirtualBox VM From the Command Line
- Connect to Headless VirtualBox VM via Remote Desktop
- Support Xmodulo
- Установка VirtualBox на Debian без GUI (графического интерфейса)
- Установка VirtualBox
- Создание виртуальной машины
- Установка и настройка операционной системы в виртуальной машине
- Запуск виртуальной машины в VirtualBox без GUI
How to create and start VirtualBox VM without GUI
Suppose you want to create and run virtual machines (VMs) on VirtualBox. However, a host machine does not support X11 environment, or you only have access to a terminal on a remote host machine. Then how can you create and run VMs on such a host machine without VirtualBox GUI? This can be a common situation for servers where VMs are managed from remotely.
In fact, VirtualBox comes with a suite of command line utilities, and you can use the VirtualBox command line interfaces (CLIs) to manage VMs on a remote headless server. In this tutorial, I will show you how to create and start a VM without VirtualBox GUI.
Prerequisite for starting VirtualBox VM without GUI
First, you need to install VirtualBox Extension Pack. The Extension Pack is needed to run a VRDE remote desktop server used to access headless VMs. Its binary is available for free. To download and install VirtualBox Extension Pack:
$ wget http://download.virtualbox.org/virtualbox/4.2.36/Oracle_VM_VirtualBox_Extension_Pack-4.2.36-104064a.vbox-extpack $ sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-4.2.36-104064a.vbox-extpack
Verify that the Extension Pack is successfully installed, by using the following command.
Extension Packs: 1 Pack no. 0: Oracle VM VirtualBox Extension Pack Version: 4.2.36 Revision: 84980 Edition: Description: USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support. VRDE Module: VBoxVRDP Usable: true Why unusable:
Create a VirtualBox VM From the Command Line
I assume that the VirtualBox’ VM directory is located in ~/VirtualBox VMs .
First create a VM. The name of the VM is testvm in this example.
$ VBoxManage createvm --name "testvm" --register
Specify the hardware configurations of the VM (e.g., Ubuntu OS type, 1024MB memory, bridged networking, DVD booting).
$ VBoxManage modifyvm "testvm" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0 --ostype Ubuntu
Create a disk image (with size of 10000MB ). Optionally, you can specify disk image format by using —format [VDI|VMDK|VHD] option. Without this option, VDI image format will be used by default.
$ VBoxManage createvdi --filename ~/VirtualBox VMs/testvm/testvm-disk01.vdi --size 10000
Add an IDE controller to the VM.
$ VBoxManage storagectl "testvm" --name "IDE Controller" --add ide
Attach the previously created disk image as well as CD/DVD drive to the IDE controller. Ubuntu installation ISO image (found in /iso/ubuntu-12.04.1-server-i386.iso ) is then inserted to the CD/DVD drive.
$ VBoxManage storageattach "testvm" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium ~/VirtualBox VMs/testvm/testvm-disk01.vdi $ VBoxManage storageattach "testvm" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /iso/ubuntu-12.04.1-server-i386.iso
Start VirtualBox VM From the Command Line
Once a new VM is created, you can start the VM headless (i.e., without VirtualBox console GUI) as follows.
$ VBoxHeadless --startvm "testvm" &
The above command will launch the VM, as well as VRDE remote desktop server. The remote desktop server is needed to access the headless VM’s console.
By default, the VRDE server is listening on TCP port 3389 . If you want to change the default port number, use -e option as follows.
$ VBoxHeadless --startvm "testvm" -e "TCP/Ports=4444" &
If you don’t need remote desktop support, launch a VM with —vrde off option.
$ VBoxHeadless --startvm "testvm" --vrde off &
Connect to Headless VirtualBox VM via Remote Desktop
Once a VM is launched with remote desktop support, you can access the VM’s console via any remote desktop client (e.g., rdesktop ).
To install rdesktop on Ubuntu or Debian:
$ sudo apt-get install rdesktop
To install rdesktop on CentOS, RHEL or Fedora, configure Repoforge on your system, and then run the following.
$ sudo yum install rdesktop
To access a headless VM on a remote host machine, run the following.
If you use a custom port number for a remote desktop server, run the following instead.
Once rdesktop is successfully connected to the VM via remote desktop, you will see the initial installation screen.
Support Xmodulo
This website is made possible by minimal ads and your gracious donation via PayPal or credit card
Please note that this article is published by Xmodulo.com under a Creative Commons Attribution-ShareAlike 3.0 Unported License. If you would like to use the whole or any part of this article, you need to cite this web page at Xmodulo.com as the original source.
Установка VirtualBox на Debian без GUI (графического интерфейса)
Понадобилось мне как-то поднять виртуальную машину с операционной системой Windows Server на компьютере с установленным на нем Debian. Ситуация усложнялась (на первый взгляд) тем, что Debian был установлен без какого-либо установленного графического интерфейса. Однако не все оказалось таким сложным, как оказалось на первый взгляд. Как оказалось, VirtualBox — один из самых известных продуктов для виртуализации, умеет прокидывать RDP прямо в гостевую систему, поэтому установка и первоначальная настройка Windows не создаст никаких проблем.
Установка VirtualBox
Первым делом необходимо установить сам VirtualBox. Репозитории Debian содержат достаточно старую версию, поэтому лучшим решением будет подключить репозитории разработчиков. Для этого открываем файл /etc/apt/sources.list и вписываем туда следующую строку:
deb http://download.virtualbox.org/virtualbox/debian codename contrib
Вместо codename следует вписать кодовое имя используемого дистрибутива — например версия 8 имеет имя jessie, 7 — wheezy, и т. д. Затем качаем ключ:
wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
Если во время скачивания появляется ошибка «ERROR: The certificate of `www.virtualbox.org’ is not trusted.», то следует озаботиться установкой набора корневых сертификатов, как описано в этой статье.
apt-key add oracle_vbox_2016.asc
apt-get install virtualbox-5.0
По умолчанию, все новые виртуальные машины будут храниться в папке пользователя, из под которого они созданы. Если нет желания складировать там виртуальные машины, то можно легко поменять директорию по умолчанию на любую другую — например в примере ниже устанавливается директория /var/vbox.
VBoxManage setproperty machinefolder /var/vbox/
Качаем экстеншен пак — набор дополнений, расширяющих функционал VirtualBox, например необходимый в этой статье виртуальный удаленный рабочий стол (VRDP) внутрь гостевой системы.
wget http://download.virtualbox.org/virtualbox/5.0.22/Oracle_VM_VirtualBox_Extension_Pack-5.0.22-108108.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.22-108108.vbox-extpack
Создание виртуальной машины
Создаем виртуальную машину с именем CrazyServer, укажем тип операционной системы Windows Server 2012 (полный список поддерживаемых операционных систем можно получить командой VBoxManage list ostypes):
VBoxManage createvm --name CrazyServer --ostype Windows2012_64 --register
Редактируем её свойства — включим расширенный контроллер прерываний, дадим виртуальной системе 4 ГБ оперативной памяти, включим HPET (таймер событий высокой точности), выключим USB и включим доступ по удаленному рабочему столу на порт 3390.
vVBoxManage modifyvm CrazyServer --ioapic on --memory 4096 --hpet on --usb off --vrde on --vrdeport 3390
Настраиваем сеть для гостевой системы — прокинем её сетевой адаптер напрямую в сеть, к которой имеет компьютер-хост.
VBoxManage modifyvm CrazyServer --nic1 bridged --bridgeadapter1 eth1
VBoxManage createhd --filename /var/vbox/CrazyServer.vdi --size 100000
VBoxManage storagectl CrazyServer --name "SATA Controller" --add sata --controller IntelAHCI
VBoxManage storageattach CrazyServer --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /var/vbox/CrazyServer.vdi
Подключаем ISO образ — сначала создадим IDE контроллер, а потом к нему подключим виртуальный привод с указанным iso файлом:
VBoxManage storagectl CrazyServer --name "IDE Controller" --add ide VBoxManage storageattach CrazyServer --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "windows.iso"
VBoxManage startvm CrazyServer --type headless
Установка и настройка операционной системы в виртуальной машине
Для захода через удаленный рабочий стол необходимо присоединиться к ip адресу компьютера, на котором запущен VirtualBox, с указанным выше портом (3390). В большинстве случаев при работе через RDP будут отображаться два курсора — для того, чтобы исправить такое положение дел, необходимо будет после установки системы, скачать и установить гостевые дополнения. Скачиваем их с официального сайта VirtualBox (поискать их можно по этой ссылке). Впрочем, на сайте может не оказаться нужной версии гостевых дополнений (с версией совпадающей с версией VirtualBox), и в таком случае последнюю версию стоит поискать здесь — http://download.virtualbox.org/virtualbox/
wget http://download.virtualbox.org/virtualbox/5.0.22/VBoxGuestAdditions_5.0.22.iso
VBoxManage storageattach CrazyServer --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium VBoxGuestAdditions_5.0.22.iso
VBoxManage storageattach CrazyServer --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium emptydrive
Теперь можно смело пользоваться операционной системой как реальной. В случае чего, удалить виртуальную машину можно следующей командой:
VBoxManage unregistervm CrazyServer --delete
Запуск виртуальной машины в VirtualBox без GUI
Иногда возникает необходимость запустить виртуальную машину на хосте без иксов. Я расскажу о том как это сделать, имея доступ к хостовой системе только по ssh + rdp (Remote Desktop Protocol). процесс я буду описывать для OC Ubuntu 9.10 в качестве хоста.
Начнем с установки VirtualBox.
Предварительно нужно установить пакет dkms (Dynamic Kernel Module Support Framework):
На сайте VirtualBox-а предлагается 2 варианта: прописать источник пакетов ( deb download.virtualbox.org/virtualbox/debian karmic non-free ) в /etc/apt/sources.list либо скачать и установить deb-пакет. Когда я прописал источник и сделал sudo apt-get install virtualbox-3.1 у меня потянулась куча пакетов из зависимостей (в том числе и каких-то для GUI интерфейса). Поэтому лучше скачать deb-пакет. Качаем, устанавливаем:
sudo dpkg -i virtualbox-3.1_3.1.0-55467_Ubuntu_karmic_i386.deb
возможно тут также потребуются зависимости (какие-то библиотеки для парсинга xml, в котором хранятся конфиги, но их значительно меньше чем в первом случае). Если установка не завершилась из-за зависимостей, можно просто сделать
при этом установятся зависимости и VirtualBox
ок. VirtualBox поставили. Начнем создавать guest-машины.
VBoxManage createvm —name ubuntu —ostype Ubuntu —register
(name — имя машины, ostype — тип системы. полный список всех типов можно узнать командой VBoxManage list ostypes )
VBoxManage modifyvm ubuntu —memory 512 —floppy disabled —audio none —nic1 bridged —bridgeadapter1 eth0 —vram 4 —accelerate3d off —boot1 disk —acpi on —cableconnected1 on —usb off —vrdp on —vrdpport 3390
тут с большего все понятно. в качестве типа сети можно указать также NAT ( —nic1 nat ). также включаем rdp
создаем hdd диск для виртуальной машины:
VBoxManage createhd —filename /home/user/vbox/ubuntu.vdi —size 20000 —register
добавляем контроллер IDE в нашу машину
VBoxManage storagectl ubuntu —name «IDE Controller» —add ide
цепляем на IDE0 созданный ранее hdd
VBoxManage storageattach ubuntu —storagectl «IDE Controller» —port 0 —device 0 —type hdd —medium /home/user/vbox/ubuntu.vdi
на IDE1 цепляем установочный образ
VBoxManage storageattach ubuntu —storagectl «IDE Controller» —port 1 —device 0 —type dvddrive —medium /home/user/vbox/iso/ubuntu-9.10-alternate-i386.iso
говорим машине грузиться с диска
VBoxManage modifyvm ubuntu —boot1 dvd
nohup VBoxHeadless —startvm ubuntu &
для того чтобы поставить базовую систему воспользуемся rdp-клиентом (у меня KDE, в стандартную поставку входит KRDC). коннектимся на хостовую машину на порт, который указали в настройках ( —vrdpport 3390 ), ставим систему, делаем sudo apt-get install openssh-server . теперь на виртуальную машину можно попасть по ssh
останавливаем виртуальную машину
VBoxManage controlvm ubuntu acpipowerbutton
через acpi
VBoxManage controlvm ubuntu poweroff
VBoxManage modifyvm ubuntu —boot1 disk
можно также отцепить установочный диск
VBoxManage storageattach ubuntu —storagectl «IDE Controller» —port 1 —device 0 —medium none
nohup VBoxHeadless —startvm ubuntu &
VBoxManage list runningvms
просмотр всех запущенных машин
VBoxManage showvminfo ubuntu
просмотр информации о виртуальной машине
таким образом на одной машине с минимально установленной системой можно поднимать несколько виртуальных для различных целей и экспериментов