Виртуализация · 4 min read · Dec 01, 2025
VBoxHeadless - Запуск виртуальных машин с VirtualBox 4.1 на безголовом сервере Fedora 17
VBoxHeadless - Запуск виртуальных машин с VirtualBox 4.1 на безголовом сервере Fedora 17
Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter
Этот гид объясняет, как вы можете запускать виртуальные машины с VirtualBox 4.1 на безголовом сервере Fedora 17. Обычно вы используете графический интерфейс VirtualBox для управления вашими виртуальными машинами, но сервер не имеет графической среды. К счастью, VirtualBox поставляется с инструментом под названием VBoxHeadless, который позволяет вам подключаться к виртуальным машинам через удаленное подключение к рабочему столу, так что нет необходимости в графическом интерфейсе VirtualBox.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Я протестировал это на сервере Fedora 17 (хост-система) с IP-адресом 192.168.0.100, где я вошел как обычный пользователь (имя пользователя admin в этом примере), а не как root.
Если у вас есть только учетная запись root, но нет обычной учетной записи пользователя, создайте одну следующим образом (пользователь admin, группа admin)…
# groupadd admin
# useradd -d /home/admin -m -g admin -s /bin/bash admin… создайте пароль для нового пользователя…
# passwd admin… и войдите как этот пользователь.
2 Установка VirtualBox
Чтобы установить VirtualBox 4.1 на наш сервер Fedora 17, нам нужны права root, поэтому мы выполняем
$ suЗатем мы устанавливаем зависимости для VirtualBox 4.1 следующим образом:
# yum groupinstall 'Development Tools'# yum groupinstall 'Development Libraries'# yum install SDL kernel-devel kernel-headers dkmsДалее загрузите и зарегистрируйте публичный ключ rpm VirtualBox:
# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
# rpm --import oracle_vbox.asc
# rm -f oracle_vbox.ascТеперь мы включаем репозиторий VirtualBox Fedora в нашей системе:
# cd /etc/yum.repos.d/
# wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repoТеперь мы можем просто установить VirtualBox 4.1 следующим образом:
# yum install VirtualBox-4.1Начиная с версии 4.0, VirtualBox ввел так называемые “расширения” и вынес некоторые функции, такие как поддержка удаленного подключения к рабочему столу (VRDP), которые были частью пакетов VirtualBox до версии 4.0, в эти расширения. Поскольку нам нужны удаленные подключения к рабочему столу для управления нашими виртуальными машинами, нам нужно установить соответствующий пакет расширения сейчас. Перейдите на http://www.virtualbox.org/wiki/Downloads, и вы найдете ссылку на следующий пакет расширения:
VirtualBox 4.1.18 Oracle VM VirtualBox Extension Pack
Поддержка USB 2.0 устройств, VirtualBox RDP и PXE загрузка для карт Intel.Скачайте и установите пакет расширения следующим образом:
# cd /tmp
# wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack(Убедитесь, что вы скачали последнюю версию с сайта VirtualBox.)
Теперь мы должны добавить пользователя, который будет запускать VirtualBox (admin в этом примере), в группу vboxusers:
# /usr/sbin/usermod -G vboxusers adminVirtualBox теперь установлен и готов к использованию.
Введите
# exitчтобы выйти из учетной записи root и снова стать обычным пользователем (admin).
3 Использование VirtualBox в командной строке
3.1 Создание ВМ
Чтобы создать ВМ в командной строке, мы можем использовать команду VBoxManage. Смотрите
$ VBoxManage --helpдля списка доступных параметров и (весьма рекомендуется!) посмотрите на http://www.virtualbox.org/manual/ch08.html.
Перед тем как создать виртуальную машину, нам нужно выяснить, как называется основное сетевое устройство на Fedora:
$ ifconfig[admin@server1 ~]$ ifconfig
lo: flags=73 mtu 16436
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p3p1: flags=4163 mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fe58:4256 prefixlen 64 scopeid 0x20
ether 00:0c:29:58:42:56 txqueuelen 1000 (Ethernet)
RX packets 1133921 bytes 963213128 (918.5 MiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 478361 bytes 28634802 (27.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[admin@server1 ~]$ Как вы видите, в данном случае оно называется p3p1 - пожалуйста, имейте это в виду.
Теперь я создам ВМ Ubuntu 12.04 Server с 1024MB памяти и 10GB жестким диском из образа iso Ubuntu 12.04 Server (который я сохранил в /home/ubuntu-12.04-server-amd64.iso):
$ VBoxManage createvm --name "Ubuntu 12.04 Server" --registerВ следующей команде мы должны указать правильный сетевой интерфейс (p3p1 в моем случае):
$ VBoxManage modifyvm "Ubuntu 12.04 Server" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 p3p1$ VBoxManage createhd --filename Ubuntu_12_04_Server.vdi --size 10000
$ VBoxManage storagectl "Ubuntu 12.04 Server" --name "IDE Controller" --add ide
$ VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_12_04_Server.vdi
$ VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-12.04-server-amd64.iso3.2 Импорт существующей ВМ
Предположим, у вас есть ВМ под названием examplevm, которую вы хотите повторно использовать на этом хосте. На старом хосте у вас должен быть каталог Machines/examplevm в каталоге VirtualBox; Machines/examplevm должен содержать файл examplevm.xml. Скопируйте каталог examplevm (включая файл examplevm.xml) в ваш новый каталог Machines (если ваше имя пользователя admin, это /home/admin/.VirtualBox/Machines - результат должен быть /home/admin/.VirtualBox/Machines/examplevm/examplevm.xml).
Кроме того, скопируйте файл examplevm.vdi из старого каталога VDI в новый (например, /home/admin/.VirtualBox/VDI/examplevm.vdi).
После этого вы должны зарегистрировать импортированную ВМ:
$ VBoxManage registervm Machines/examplevm/examplevm.xml3.3 Запуск ВМ с помощью VBoxHeadless
Независимо от того, создаете ли вы новую ВМ или импортируете старую, вы можете запустить ее с помощью команды:
$ VBoxHeadless --startvm "Ubuntu 12.04 Server"(Замените Ubuntu 12.04 Server на имя вашей ВМ.)
VBoxHeadless запустит ВМ и сервер VRDP (VirtualBox Remote Desktop Protocol), который позволяет вам видеть вывод ВМ удаленно на другом компьютере.
Чтобы остановить ВМ, выполните
$ VBoxManage controlvm "Ubuntu 12.04 Server" poweroffЧтобы приостановить ВМ, выполните
$ VBoxManage controlvm "Ubuntu 12.04 Server" pauseЧтобы перезагрузить ВМ, выполните
$ VBoxManage controlvm "Ubuntu 12.04 Server" resetЧтобы узнать больше о VBoxHeadless, посмотрите на
$ VBoxHeadless --helpи на http://www.virtualbox.org/manual/ch07.html#vboxheadless.
Get new posts in your inbox
No spam. Unsubscribe anytime.