Запуск виртуальной машины в 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
    просмотр информации о виртуальной машине

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

    Поделиться публикацией
    Комментарии 20
      +5
      Если всеравно есть машина с иксами, мне кажется более простым вариантом подготовить образ на ней.
      И пусть некоторые говорят что это не nix way ;)
        +1
        Абсолютно согласен. Первая мысль, которая пришла в голову, это поднять мои образы ВМ на машине без иксов.
          0
          бывают ситуации где это неудобно(хотя и возможно).
            0
            А еще можно использовать параметры --help и все это там прочесть :)
            Ну а готовить образ на машине с иксами\виндой — само собой разумеется.
            0
            Хм. надо будет попробовать.
            Спасибо тему скопировал в блокнотик.
              +2
              без зависимостей VirtualBox всяко не запустится, либо что-нибудь где-нибудь будет периодически отваливаться
              а чтобы не тянуть лишнего, можно делать так:

              sudo aptitude -R install virtualbox-3.1

              ключ -R позволяет избавиться от «рекомендуемых» зависимостей
                0
                Вот вы лучше расскажите, как можно в сеть запустить ее, так что б она жила как еще один житель сети :)
                Если через нат пытаться, то доступ есть только у мастер хоста и только с под того пользователя который запускет vbox.
                Я вот хотел как то на FreeBSD поднять ubuntu, поднять то поднял, но в сеть никак :(
                  +1
                  делаете guest машине сеть типа bridged и даете ей IP из диапазона вашей сети
                  • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    ssh -Y login@srv.com и уж по крайней мере _установить_ систему можно через нормальный фейс =)
                      0
                      конечно если X-форвардинг включен
                      0
                      Вот тут нечто подобное писал:
                      seriyps.ru/blog/2009/01/23/how-to-ustanovit-virtualbox-v-ubuntu-vtoraya-redakciya/

                      Но вообще это все и правда есть в хелпе
                        0
                        А под виндой бы как так запустить, чтобы консольное окошко даже не маячило. ВМВаре и тот в трее умеет висеть.
                          0
                          отключить сервисное окно. виртуалка без него прекрасно работает.
                          0
                          еще бы написали как виртуальные машины прописывать в автозагрузку
                            0
                            можете про это прочитать тут
                            0
                            спасибо, слышал о такой возможности… заинтересовали

                            RDP клиенты бывают же консольные?!
                              0
                              если честно — не смотрел ничего на эту тему
                              0
                              Спасибо за мануал :)
                                0
                                Ещё можно VirtualBox вместе с phpVirtualBox установить. Иксы тоже не нужны, однако имеем тот же GUI через веб-броузер.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое