Virtualization · 5 min read · Dec 26, 2025

VBoxHeadless - Запуск виртуальных машин с VirtualBox 4.1 на безголовом сервере CentOS 6.2

VBoxHeadless - Запуск виртуальных машин с VirtualBox 4.1 на безголовом сервере CentOS 6.2

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

Этот гид объясняет, как вы можете запускать виртуальные машины с VirtualBox 4.1 на безголовом сервере CentOS 6.2. Обычно вы используете графический интерфейс VirtualBox для управления вашими виртуальными машинами, но сервер не имеет графической среды. К счастью, VirtualBox поставляется с инструментом под названием VBoxHeadless, который позволяет вам подключаться к виртуальным машинам через удаленное подключение к рабочему столу, так что нет необходимости в графическом интерфейсе VirtualBox.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я протестировал это на сервере CentOS 6.2 (хост-система) с IP-адресом 192.168.0.100, где я вошел как обычный пользователь (имя пользователя admin в этом примере), а не как root.

Если у вас есть только учетная запись root, но нет обычной учетной записи пользователя, создайте одну следующим образом (пользователь admin, группа admin)…

… создайте пароль для нового пользователя…

# passwd admin

… и войдите как этот пользователь.

2 Установка VirtualBox

Чтобы установить VirtualBox 4.1 на наш сервер CentOS 6.2, нам нужны права root, поэтому мы запускаем

$ su

Затем мы устанавливаем зависимости для VirtualBox 4.1 следующим образом:

# yum groupinstall 'Development Tools'
# yum install SDL kernel-devel kernel-headers dkms

С последней командой мы установили заголовки ядра нашего текущего используемого ядра. Заголовки находятся в каталоге /usr/src/kernels/, но вероятно, что его каталог не называется -, а имеет другое имя, так что модуль ядра VirtualBox не может быть построен позже, потому что ожидаемый каталог заголовков ядра не может быть найден. Мы собираемся это исправить сейчас:

Проверьте вашу версию ядра…

# uname -r

[root@server1 ~]# uname -r
2.6.32-220.el6.x86_64
[root@server1 ~]#

Это означает, что должен быть каталог с именем 2.6.32-220.el6.x86_64 в каталоге /usr/src/kernels/. Мы можем проверить это сейчас:

[root@server1 kernels]# ls -l
total 4
drwxr-xr-x 22 root root 4096 Июн 25 17:30 2.6.32-220.23.1.el6.x86_64
[root@server1 kernels]#

Как вы видите, у меня есть каталог 2.6.32-220.23.1.el6.x86_64, но нет 2.6.32-220.el6.x86_64. Поэтому мы создаем символическую ссылку с именем 2.6.18-238.el5-x86_64, которая указывает на 2.6.18-238.9.1.el5-x86_64:

# ln -s 2.6.32-220.23.1.el6.x86_64 `uname -r`

Затем загрузите и зарегистрируйте публичный ключ rpm VirtualBox:

Теперь мы включаем репозиторий VirtualBox CentOS в нашей системе:

Теперь мы можем просто установить VirtualBox 4.1 следующим образом:

# yum install VirtualBox-4.1

Если установка прошла успешно, вывод должен закончиться следующим образом:

[…]
Запуск транзакции
Установка : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64                                                                                                 1/1

Создание группы ’vboxusers’. Пользователи VM должны быть членами этой группы!

Не найдено предварительно собранного модуля для этого ядра – попытка построить один. Сообщения
выводимые во время компиляции модуля будут записаны в /var/log/vbox-install.log.

Остановка модулей ядра VirtualBox [  OK  ]
Удаление старых модулей ядра VirtualBox DKMS [  OK  ]
Попытка зарегистрировать модули ядра VirtualBox с использованием DKMS [  OK  ]
Запуск модулей ядра VirtualBox [  OK  ]

Установлено:
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Готово!
[root@server1 kernels]#

(Если установка не удалась, потому что правильный каталог заголовков ядра не может быть найден, вывод закончится следующим образом:

[…]
Запуск транзакции
Установка : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64                                                                                                 1/1

Создание группы ’vboxusers’. Пользователи VM должны быть членами этой группы!

Не найдено предварительно собранного модуля для этого ядра – попытка построить один. Сообщения
выводимые во время компиляции модуля будут записаны в /var/log/vbox-install.log.

Остановка модулей ядра VirtualBox [  OK  ]
Удаление старых модулей ядра VirtualBox DKMS [  OK  ]
Попытка зарегистрировать модули ядра VirtualBox с использованием DKMS
Ошибка! Ваш исходный код ядра для ядра 2.6.32-220.el6.x86_64 не может быть найден в /lib/modules/2.6.32-220.el6.x86_64/build или /lib/modules/2.6.32-220.el6.x86_64/source.
[FAILED]
(Неудача, попытка без DKMS)
Перекомпиляция модулей ядра VirtualBox [FAILED]
(Посмотрите на /var/log/vbox-install.log, чтобы узнать, что пошло не так)

Установлено:
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Готово!
[root@server1 kernels]#

В этом случае попробуйте создать правильную символическую ссылку на ядро (как показано ранее), а затем выполните

# /etc/init.d/vboxdrv setup

чтобы создать модуль ядра VirtualBox.)

Теперь мы должны добавить пользователя, который будет запускать VirtualBox (admin в этом примере), в группу vboxusers:

# /usr/sbin/usermod -G vboxusers admin

VirtualBox теперь установлен и готов к использованию.

Начиная с версии 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.

Скачайте и установите пакет расширений следующим образом:

(Убедитесь, что вы скачали последнюю версию с веб-сайта VirtualBox.)

Введите

# exit

чтобы выйти из учетной записи root и снова стать обычным пользователем (admin).

3 Использование VirtualBox в командной строке

3.1 Создание ВМ

Чтобы создать ВМ в командной строке, мы можем использовать команду VBoxManage. Смотрите

$ VBoxManage --help

для списка доступных переключателей и (весьма рекомендуется!) взгляните на http://www.virtualbox.org/manual/ch08.html.

Теперь я создам ВМ 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
$ VBoxManage modifyvm “Ubuntu 12.04 Server” –memory 1024 –acpi on –boot1 dvd –nic1 bridged –bridgeadapter1 eth0
$ 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.iso

3.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.xml

3.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.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.