Иногда бывает необходимость запустить одну виртуальную машину, да и та нужна не постоянно, а лишь иногда, для таких случае 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
- Ссылка на последнюю версию доступна в разделе загрузок.
- Раздел инструкции посвященный управлению расширениями для VirtualBox.
На этом установка завершена, далее рассмотрим создание и запуск виртуальной машины.
Создание виртуальной машины
С английской версией пошаговой инструкции можно ознакомиться здесь. Выше мы добавили пользователя 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).
-
Создадим новую виртуальную машину:
VBoxManage createvm --name winxp --ostype WindowsXP --register
короткое имяwinxp
позволит в будущем печатать поменьше при запуске / остановке виртуальной машины или при необходимости внести измения в конфигурацию. -
Изменим некоторые параметры только что созданной виртуальной машины:
VBoxManage modifyvm winxp --memory 512 --acpi on --boot1 dvd --nic1 nat
-
Создадим виртуальный жесткий диск (в нашем случае объемом 10Gb):
VBoxManage createhd --filename winxp.vdi --size 10000
обязательный ключ--size
позволяет указывать размер создаваемого виртуального hdd в мегабайтах. - Добавим на нашу машину IDE контроллер с именем «idectl0»:
VBoxManage storagectl winxp --name "idectl0" --add ide --controller PIIX4
- Подключим к виртуальной машине виртуальный hdd:
VBoxManage storageattach winxp --storagectl "idectl0" --port 0 --device 0 --type hdd --medium winxp.vdi
- Подключим ISO образ с дистрибутивом Windows XP в качестве DVD привода:
VBoxManage storageattach winxp --storagectl "idectl0" --port 0 --device 1 --type dvddrive --medium /full/path/to/iso.iso
- Запустим нашу виртуальную машину:
VBoxHeadless --startvm winxp & # нажав Ввод вернемся в командную строку, ВМ будет работать в фоне
выключить машину мы можем командой:
VBoxManage controlvm winxp acpipowerbutton
данная команда — эквивалент нажатия кнопки Power на физической машине, виртуальная машина должна корректно завершить работу, второй вариант:
VBoxManage controlvm winxp poweroff
более жесткий, эквивалентен выдергиванию кабеля питания из физической машины, возможна потеря данных в запущенной виртуальной машине. - Подключаемся с помощью 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
Ошибочка. Вместо
service vbdoxdrv start
должно быть
service vboxdrv start
Спасибо, исправил.