Поиск по этому блогу

понедельник, 18 января 2010 г.

Запуск виртуальной машины в VirtualBo...

Запуск виртуальной машины в VirtualBox без GUI

VirtualBoxИногда
возникает необходимость запустить виртуальную машину на хосте без
иксов. Я расскажу о том как это сделать, имея доступ к хостовой системе
только по ssh + rdp (Remote Desktop Protocol). процесс я буду описывать
для OC Ubuntu 9.10 в качестве хоста.



Начнем с установки VirtualBox.


Предварительно нужно установить пакет dkms (Dynamic Kernel Module Support Framework):

sudo apt-get install dkms


На сайте VirtualBox-а предлагается 2 варианта: прописать источник пакетов (deb download.virtualbox.org/virtualbox/debian karmic non-free) в /etc/apt/sources.list либо скачать и установить deb-пакет. Когда я прописал источник и сделал sudo apt-get install virtualbox-3.1
у меня потянулась куча пакетов из зависимостей (в том числе и каких-то
для GUI интерфейса). Поэтому лучше скачать deb-пакет. Качаем,
устанавливаем:


sudo dpkg -i virtualbox-3.1_3.1.0-55467_Ubuntu_karmic_i386.deb



возможно тут также потребуются зависимости (какие-то библиотеки для
парсинга xml, в котором хранятся конфиги, но их значительно меньше чем
в первом случае). Если установка не завершилась из-за зависимостей,
можно просто сделать



sudo apt-get -f install



при этом установятся зависимости и VirtualBox


ок. VirtualBox поставили. Начнем создавать guest-машины.



создаем саму машину:



VBoxManage createvm --name ubuntu --ostype Ubuntu --register

(name — имя машины, ostype — тип системы. полный список всех типов можно узнать командой VBoxManage list ostypes)

настраиваем



VBoxManage modifyvm ubuntu --memory 512 --floppy disabled --audio
none --nic1 bridged --bridgeadapter1 eth0 --vram 4 --accelerate3d off
--boot1 disk --acpi on --cableconnected1 on --usb off --vrdp on
--vrdpport 3390




тут с большего все понятно. в качестве типа сети можно указать также NAT (--nic1 nat). также включаем rdp



создаем hdd диск для виртуальной машины:



VBoxManage createhd --filename /home/user/vbox/ubuntu.vdi --size 20000 --register



добавляем контроллер IDE в нашу машину



VBoxManage storagectl ubuntu --name "IDE Controller" --add ide



цепляем на IDE0 созданный ранее hdd



VBoxManage storageattach ubuntu --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/user/vbox/ubuntu.vdi



на IDE1 цепляем установочный образ



VBoxManage storageattach ubuntu --storagectl "IDE Controller"
--port 1 --device 0 --type dvddrive --medium
/home/user/vbox/iso/ubuntu-9.10-alternate-i386.iso




говорим машине грузиться с диска



VBoxManage modifyvm ubuntu --boot1 dvd



запускаем машину



nohup VBoxHeadless --startvm ubuntu &



для того чтобы поставить базовую систему воспользуемся rdp-клиентом (у
меня KDE, в стандартную поставку входит KRDC). коннектимся на хостовую
машину на порт, который указали в настройках (--vrdpport 3390), ставим систему, делаем sudo apt-get install openssh-server. теперь на виртуальную машину можно попасть по ssh



останавливаем виртуальную машину



VBoxManage controlvm ubuntu acpipowerbutton

через acpi


или более жестко



VBoxManage controlvm ubuntu poweroff


говорим грузится с hdd



VBoxManage modifyvm ubuntu --boot1 disk



можно также отцепить установочный диск



VBoxManage storageattach ubuntu --storagectl "IDE Controller" --port 1 --device 0 --medium none



и снова запускаем



nohup VBoxHeadless --startvm ubuntu &



еще полезные команды:



VBoxManage list runningvms

просмотр всех запущенных машин



VBoxManage showvminfo ubuntu

просмотр информации о виртуальной машине



таким образом на одной машине с минимально установленной системой можно
поднимать несколько виртуальных для различных целей и экспериментов