Настройка VirtualBox без GUI

Иногда бывает необходимость запустить одну виртуальную машину, да и та нужна не постоянно, а лишь иногда, для таких случае VirtulBox на мой взгляд — лучший выбор, на системах с графическим
интерфейсом установка и конфигурация виртуальной машины занимает буквально несколько минут, без графического интерфейса запуск виртуальной машины может оказаться немного более сложным и главное долгим занятием, надеюсь приведенные ниже инструкции позволят запустить новую виртуальную машину существенно быстрее.

Я устанавливал VirtualBox на CentOS 5.6 без графического интерфейса, на этом примере и будут основаны дальнейшие инструкции, хотя настройки должны быть одинаковыми на всех linux системах, отличия только в установке. На FreeBSD и других *nix системах возможно есть какие-то еще тонкости.

Установка

Для установки вы должны обладать правами root на целевой машине, войдите в root shell командами su - или sudo -i Установку можно осуществить несколькими путями, скачав rpm файл из раздела загрузок сайта VirtualBox или же добавив в систему репозиторий VirtualBox и установить все необходимое из него, данный вариант мы и рассмотрим. Загрузим конфигурационный файл репозитория:

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

Установка VirtualBox требует «сборки» модулей ядра, если установлена dkms (Dynamic Kernel Module System IIRC), это упростит обновления ядра, рекмоендуется установить dkms из репозитория RPMforge до установки VirtualBox, что мы и сделаем. Подключим репозиторий RPMForge:

# вернемся в домашний каталог
cd
# для 32-х битных систем качаем
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# для 64-х битных
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# импортируем GPG ключ DAG
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# проверим скачанный ранее пакет
rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
# установим пакет
rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

Установим dkms:

yum --enablerepo rpmforge install dkms

Если же вы не хотите устанавливать dkms то можно установить исходные коды ядра и средства разработки (если они у вас еще не установлены):

yum groupinstall "Development Tools"
yum install kernel-devel

Если вы до этого обновляли ядро и до сих пор не перегружались — самое время сделать это, иначе установленные с dkms заголовки ядра не совпадут версией с загруженным ядром. Установим VirtualBox:

yum install VirtualBox-4.0

Установщик создаст группу vboxusers и необходимые модули ядра если средства разработки были предварительно корректно установлены и настроены. Разрешим пользователю username использовать VitrualBox:

usermod -G vboxusers username

Для проверки можно выполнить команду:

service vboxdrv start

не должно быть никаких ошибок, если есть ошибки то перед тем как продолжать, необходимо их устранить. Так же необходимо установить VirtualBox Extension Pack, который обеспечивает поддержку VirtualBox RDP, USB 2.0 и PXE загрузку для сетевых карт от Intel.

# установку необходимо выполнять с правами root
wget http://download.virtualbox.org/virtualbox/4.0.8/Oracle_VM_VirtualBox_Extension_Pack-4.0.8-71778.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.8-71778.vbox-extpack

На этом установка завершена, далее рассмотрим создание и запуск виртуальной машины.

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

С английской версией пошаговой инструкции можно ознакомиться здесь. Выше мы добавили пользователя username в группу vboxusers поэтому нам больше не нужны root права и все команды ниже можно выполнять от имени пользователя username. Для управления виртуальными машинами предназначена команда VBoxManage документация по ее использованию расположена здесь, если вы планируете активно менять параметры у виртуальных машин, рекомендую создать короткий алиас 1) для этой комманды, например:

# bash, sh и пр.
alias vbm="VBoxManage"
# csh и другие C Shell
alias vbm "VBoxManage"

Ниже рассмотрим пошаговую настройку виртуальной машине на примере Windows XP, но в качестве гостевой ОС может быть одна из многих поддерживаемых VirtualBox, список поддерживаемых гостевых ОС можно посмотреть командой:

VBoxManage list ostypes

Для запуска Windows XP в виртуальной машине нам понадобиться:

  • Установленный на сервер VirtualBox
  • Установленный пакет расширений VirtualBox Extension Pack
  • ISO образ с дистрибутивом операционной системы (в нашем случае Windows XP)
  • Терминальное подключение к серверу (ssh)
  • RDP клиент для подключения к VRDP серверу (в Windows это «Подключение к удаленному рабочему столу» aka mstsc).
  1. Создадим новую виртуальную машину:

    VBoxManage createvm --name winxp --ostype WindowsXP --register 
    короткое имя winxp позволит в будущем печатать поменьше при запуске / остановке виртуальной машины или при необходимости внести измения в конфигурацию.
  2. Изменим некоторые параметры только что созданной виртуальной машины:

     VBoxManage modifyvm winxp --memory 512 --acpi on --boot1 dvd --nic1 nat 
  3. Создадим виртуальный жесткий диск (в нашем случае объемом 10Gb):

    VBoxManage createhd --filename winxp.vdi --size 10000
    обязательный ключ --size позволяет указывать размер создаваемого виртуального hdd в мегабайтах.
  4. Добавим на нашу машину IDE контроллер с именем «idectl0»:
    VBoxManage storagectl winxp --name "idectl0" --add ide --controller PIIX4
  5. Подключим к виртуальной машине виртуальный hdd:
    VBoxManage storageattach winxp --storagectl "idectl0" --port 0 --device 0 --type hdd --medium winxp.vdi
  6. Подключим ISO образ с дистрибутивом Windows XP в качестве DVD привода:
    VBoxManage storageattach winxp --storagectl "idectl0" --port 0 --device 1 --type dvddrive --medium /full/path/to/iso.iso
  7. Запустим нашу виртуальную машину:
    VBoxHeadless --startvm winxp &
    # нажав Ввод вернемся в командную строку, ВМ будет работать в фоне

    выключить машину мы можем командой:

    VBoxManage controlvm winxp acpipowerbutton

    данная команда — эквивалент нажатия кнопки Power на физической машине, виртуальная машина должна корректно завершить работу, второй вариант:

    VBoxManage controlvm winxp poweroff
    более жесткий, эквивалентен выдергиванию кабеля питания из физической машины, возможна потеря данных в запущенной виртуальной машине.
  8. Подключаемся с помощью RDP клиента на любой доступный IP 2) серверной (хост) машины

Кое-что еще

Guest Additions

Подключим ISO образ с «Гостевыми дополнениями», установка этих дополнений позволит улучшить передачу графики с виртуальной машины, а так же расшарить папку с серверной системы в гостевую.

VBoxManage storageattach winxp --storagectl "idectl0" --port 0 --device 1 --type dvddrive --medium
/usr/share/virtualbox/VBoxGuestAdditions.iso
# путь к файлу образа может отличатся в другой ОС отличной от CentOS

В гостевой системе необходимо выполнить установку ПО с виртуального DVD привода, затем перезагрузить виртуальную машину. После установки GuestAdditions можно расшарить папку с серверной (хост) машины в гостевой системе, это позволит с легкостью передавать файлы между системами.

VBoxManage sharedfolder add winxp --name "sharename" --hostpath "/home/username/share"

Подключим «шару» как диск N:

net use n: \\vboxsvr\sharename

Так же можно сделать это вручную, открыв «Мой компьютер» > меню «Сервис» > «Подключить
сетевой диск» > указать буквы диска, нажать «Обзор», раскрыть «Вся сеть» > «VirtualBox Shared
Folders» > «\\Vboxsvr», выбрать \\VBOXSVR\sharename
Подробнее про общие папки в инструкции

NAT network

Настроим возможность подключаться к «Удаленному рабочему столу» (порт 3389) в гостевой машине.
Для этого осуществим переадресацию портов с серверной (хост) машины:

VBoxManage modifyvm winxp --natpf1 "guestrdp,tcp,,23389,,3389"

Указанный выше пример будет отправлять весь TCP трафик, прибывающих на порт 23389 любого
интерфейса хост машины, на порт 3389 в гостевой.

  • tcp — обязательный параметр, определяющий какой протокол используется для пересылки, так же можно указать udp
  • guestrdp — название правила, будет сгенерировано автоматически если его не задать вручную
  • Число после --natpf обозначает номер сетевой карты, как и в других местах VBoxManage

Для удаления правила можно воспользоваться командой:

VBoxManage modifyvm winxp --natpf1 delete "guestrdp"

Подробнее о NAT сети винструкции

Ссылки

1) подробнее про алиасы читайте здесь alias (command)
2) по умолчанию VRDP порт 3389

Похожие публикации
  1. Ошибочка. Вместо

    service vbdoxdrv start

    должно быть

    service vboxdrv start

Ответить на ramses ¬
Отменить ответ


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>