Virtualization · 5 min read · Dec 31, 2025

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

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

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

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

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

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

Я протестировал это на сервере CentOS 5.6 (хост-система) с 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.0 на наш сервер CentOS 5.6, нам нужны права root, поэтому мы выполняем

$ su

Теперь мы включаем репозиторий RPMforge на нашей системе CentOS, так как пакет dkms ( Dynamic Kernel Module Support Framework - этот пакет необходим для сборки модуля ядра VirtualBox), который мы собираемся установить, недоступен в официальных репозиториях CentOS 5.6:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# cd /tmp  
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm  
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

(Если вышеуказанная ссылка больше не работает, вы можете найти текущую версию rpmforge-release здесь: http://packages.sw.be/rpmforge-release/)

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

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

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

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

# uname -r
[root@server1 kernels]# uname -r  
2.6.18-238.el5  
[root@server1 kernels]#

… и архитектуру:

# uname -m
[root@server1 2.6.18-238.el5]# uname -m  
x86_64  
[root@server1 2.6.18-238.el5]#

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

# cd /usr/src/kernels/  
# ls -l
[root@server1 kernels]# ls -l  
total 4  
drwxr-xr-x 19 root root 4096 May 19 14:26 2.6.18-238.9.1.el5-x86_64  
[root@server1 kernels]#

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

# ln -s 2.6.18-238.9.1.el5-x86_64 `uname -r`-`uname -m`

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

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc  
# rpm --import oracle_vbox.asc  
# rm -f oracle_vbox.asc

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

# cd /etc/yum.repos.d/  
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

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

# yum install VirtualBox-4.0

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

[...]  
Запуск транзакции  
  Установка     : VirtualBox-4.0                        1/1  
  
Создание группы 'vboxusers'. Пользователи VM должны быть членами этой группы!  
  
Не найдено предварительно собранного модуля для этого ядра -- попытка собрать один. Сообщения  
выводимые во время компиляции модуля будут записаны в /var/log/vbox-install.log.  
  
Остановка модулей ядра VirtualBox [  OK  ]  
Удаление старых модулей ядра VirtualBox DKMS [  OK  ]  
Попытка зарегистрировать модули ядра VirtualBox с использованием DKMS [  OK  ]  
Запуск модулей ядра VirtualBox [  OK  ]  
  
Установлено:  
  VirtualBox-4.0.x86_64 0:4.0.8_71778_rhel5-1  
  
Готово!  
[root@server1 kernels]#

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

[...]  
Создание группы 'vboxusers'. Пользователи VM должны быть членами этой группы!  
  
Не найдено предварительно собранного модуля для этого ядра -- попытка собрать один. Сообщения  
выводимые во время компиляции модуля будут записаны в /var/log/vbox-install.log.  
  
Остановка модулей ядра VirtualBox [  OK  ]  
Удаление старых модулей ядра VirtualBox DKMS [  OK  ]  
Попытка зарегистрировать модули ядра VirtualBox с использованием DKMS  
Ошибка! Ваши заголовки ядра для ядра 2.6.18-238.el5 не могут быть найдены в /lib/modules/2.6.18-238.el5/build или /lib/modules/2.6.18-238.el5/source.  
 [FAILED]  
  (Неудача, попытка без DKMS)  
Перекомпиляция модулей ядра VirtualBox [FAILED]  
  (Посмотрите /var/log/vbox-install.log, чтобы узнать, что пошло не так)  
  
Установлено:  
  VirtualBox-4.0.x86_64 0:4.0.8_71778_rhel5-1  
  
Готово!  
[root@server1 yum.repos.d]#

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

# /etc/init.d/vboxdrv setup

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

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

# /usr/sbin/usermod -G vboxusers admin

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

Введите

# exit

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

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

3.1 Создание виртуальной машины

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

$ VBoxManage --help

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

Теперь я создам виртуальную машину Ubuntu 11.04 Server с 512 МБ памяти и жестким диском на 10 ГБ из образа iso Ubuntu 11.04 Server (который я сохранил в /home/ubuntu-11.04-server-amd64.iso):

$ VBoxManage createvm --name "Ubuntu 11.04 Server" --register  
$ VBoxManage modifyvm "Ubuntu 11.04 Server" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0  
$ VBoxManage createhd --filename Ubuntu_11_04_Server.vdi --size 10000  
$ VBoxManage storagectl "Ubuntu 11.04 Server" --name "IDE Controller" --add ide  
$ VBoxManage storageattach "Ubuntu 11.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_11_04_Server.vdi  
$ VBoxManage storageattach "Ubuntu 11.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-11.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 11.04 Server"

(Замените Ubuntu 11.04 Server на имя вашей виртуальной машины.)

VBoxHeadless запустит виртуальную машину и сервер VRDP (VirtualBox Remote Desktop Protocol), который позволяет вам видеть вывод виртуальной машины удаленно на другом компьютере.

Чтобы остановить виртуальную машину, выполните

$ VBoxManage controlvm "Ubuntu 11.04 Server" poweroff

Чтобы приостановить виртуальную машину, выполните

$ VBoxManage controlvm "Ubuntu 11.04 Server" pause

Чтобы перезагрузить виртуальную машину, выполните

$ VBoxManage controlvm "Ubuntu 11.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.