Иногда возникает необходимость запустить виртуальную машину на хосте без иксов. Я расскажу о том как это сделать, имея доступ к хостовой системе только по 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просмотр информации о виртуальной машине
таким образом на одной машине с минимально установленной системой можно поднимать несколько виртуальных для различных целей и экспериментов
