Как перезапустить virtualbox ubuntu

Обновлено: 04.07.2024

Недавно столкнулся с задачей быстрого и простого развертывания серверов на основе связки Ubuntu Server 16.04 и pHpVirtualBox 5.0.5 для дальнейшей виртуализации всяческих OS.
Задача тривиальная, но быстрого, простого и самое главное — пошагового рецепта не нашел, поэтому по итогам успешной инсталляции решил выложить примитивный FAQ для всех интересующихся.

И так, сперва устанавливаем систему — в моем случае это Ubuntu Server 16.04 LTS 64-bit. Процесс описывать не буду, здесь все стандартно.

Далее не забываем обновить нашу систему:


Ждем завершения и перезагружаемся:


Следующий шаг после перезагрузки — необходимо добавить репозитарий и ключ:


После этого устанавливаем сам VirtualBox и дополнительные модули:


Дождавшись окончания инсталляции, проверяем версию установленного VirtualBox командой:


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


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


После этого можно создать и занести в группу пользователя, из под которого будет стартовать наш VirtualBox:


Теперь установим Apache2 и PHP:


Не забудем разрешить права на папку:


И еще немного шаманства:


Дожидаемся окончания процесса, и приступаем к скачиванию phpVirtualBox:


Попутное замечание — если не установлен Midnight Commander рекомендую установить и запустить (адепты старой школы могут снисходительно усмехнуться, но мне так удобнее):


Теперь находясь в уютном и привычном интерфейсе mc разархивируем содержимое phpvirtualbox-5.0-5.zip в /var/www/html предварительно почистив папку /html.

Далее находим в папке /html файл сonfig.php-example и делаем из него config.php.
После редактируем в нем следующие параметры:


А строку var servers = array — закомментируем.

Сохраняем изменения, выходим из mc и еще немного магии для групп пользователя:


Почти готово, осталось научить VirtualBox самостоятельности, а конкретно — автоматически поднимать сервиса.

Для этого идем в папку /etc/vbox и создаем файл autostart.cfg внутри которого прописываем:


Сохраняем, далее создаем файлы vbox.start и vbox.stop.

Внутри каждого файла прописываем значение 1 и не забываем сохранить.

Следующий шаг — открываем файл редактором /etc/default/virtualbox прописываем:


Сохраняемся, идем дальше в файл /etc/rc.local и дописываем строчку:


Это придаст нашему сервису самостоятельности при дальнейших перезагрузках системы. Сохраняем и перезагружаемся командой:


После перезагрузки системы отрываем браузер на удаленной машине и заходим по адресу 192.168.0.1, где нас встречает привлекательный графический интерфейс.

Доступ по умолчанию:

логин — admin
пароль — admin

Здесь могут быть проблемы с ограничением доступа из за JAVA. Что бы пустил, прописываем в JAVA policy исключения:

Oracle Virtualbox (ранее Sun VirtualBox, Innotek VirtualBox и Sun XVM VirtualBox) - это приложение, которое представляет собой бесплатную и кросс-платформенную программу и набор мощных инструментов для виртуализации х86, предназначенная для настольных компьютеров, серверов и рабочих станций. VirtualBox может использоваться на Linux, Solaris, Mac OS X и Microsoft Windows, для запуска любой из выше упомянутых операционных систем, а также любую версию BSD, IMB OS/2, DOS, Netware, L4, QNX и JRockitVE. Поддерживаются как 32 битные, так и 64 битные архитектуры. Но на данный момент программа может работать только на AMD64 и Intel64 и х86 архитектурах.

По умолчанию, при создании новой виртуальной машины, вы будете иметь возможность выбрать операционную систему, которую нужно виртуализировать. С тех пор как Oracle приобрела компанию Sun Microsystems VitrualBox активно разрабатывается командой профессиональных инженеров, которые реализуют новые возможности и функциональность с каждым новым релизом.

VirtualBox не требует аппаратной виртуализации, включает в себя гостевые дополнения для различных операционных систем и поддерживает огромное количество аппаратных средств. Также есть поддержка USB, полностью поддерживаются ACPI, много экранные решения, а также встроенная поддержка ISCSI. Поддерживается PXE, загрузка по сети, снимки, расширяемая аутентификация RDP и USB по протоколу RDP (Remote Desktop Protocol). Недавно вышла новая версия этой программы и в сегодняшней статье мы поговорим о том, как установить VirtualBox в Ubuntu 18.04

Что нового в версии Oracle VM VirtualBox 6.0

  • Улучшен интерфейс пользователя;
  • Добавлена автоматическая установка операционных систем;
  • Улучшена звуковая подсистема;
  • Улучшена работа в режиме EFI;
  • Улучшена работа в MacOS;
  • Добавлена поддержка ядра Linux 4.20;
  • Другие улучшения.

Установка VirtualBox 6.0 в Ubuntu 18.04

Установка VirtualBox Ubuntu 18.04 выполняется из официального репозитория разработчиков. Только так вы можете получить самую свежую версию платформы. Для начала давайте установим пакеты, которые нам понадобяться:

sudo apt install gcc make linux-headers-$(uname -r) dkms

Дальше необходимо добавить репозиторий. Для этого выполните:

sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list.d/virtualbox.list'

Перед тем как установить VirtualBox в Ubuntu 18.04 нужно обновить репозитории следующей командой:

sudo apt update

Не забудьте удалить старую версию или версию из репозиториев, если она была установлена:

sudo apt purge virtualbox*

И непосредственно, установка VirtualBox:

sudo apt install virtualbox-6.0

Теперь вы можете найти программу в главном меню:

Удалить VirtualBox можно также, как и устанавливали, с помощью пакетного менеджера:

sudo apt purge virtualbox-6.0

Установка пакета VirtualBox Extension Pack

Чтобы получить доступ к дополнительным возможностям VirtualBox, таким, как проброс USB устройств в гостевые системы, 3D ускорение и другим, вам понадобиться установить пакет расширений. Чтобы его скачать откройте официальную страницу загрузок и выберите Extensions Pack для вашей версии VirtualBox.

Браузер предложит открыть пакет в программе VirtualBox необходимо согласится.

Затем достаточно нажать кнопку Установить и принять условия лицензионного соглашения:

После этого установка полностью завершена и вы можете пользоваться программой.

Выводы

В этой статье мы разобрали как выполняется установка VirtualBox 6.0 в Ubuntu 18.04. Также эта инструкция должна работать и для других версий дистрибутива, поскольку ничего специфического мы не используем, а только официальный репозиторий разработчика.

Если вы запускаете виртуальные машины VirtualBox на сервере, то скорее всего, захотите, чтобы они оставались запущенными даже после неожиданной перезагрузки сервера.

В этой небольшой статье мы рассмотрим как настроить автозапуск виртуальной машины VirtualBox с помощью системы инициализации systemd, которая сейчас используется повсеместно.

Автозапуск виртуальной машины в VirtualBox

Давайте создадим файл юнита, который будет управлять автозагрузкой. Для этого выполните такую команду:

sudo systemctl edit vbox@.service --full --force

В открывшемся редакторе вставьте такой текст:

Description=Virtual Box Guest %I
After=network.target vboxdrv.service
Before=runlevel2.target shutdown.target
[Service]
User=root
Group=root
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/usr/bin/VBoxManage startvm %i --type headless
ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton
[Install]
WantedBy=multi-user.target


С помощью этого юнита мы и будем делать автозапуск virtualbox linux. В этом примере я запускаю виртуальную машину от имени пользователя root, но вам нужно запускать её от того пользователя, к которому добавлены виртуальные машины и от имени которого VirtualBox обычно работает.

Сохраните изменения в файле и выполните следующую команду, чтобы система инициализации перечитала конфигурационные файлы с диска:

В нашем юнит файле мы предусмотрели возможность использования параметра, в котором передается имя или UUID идентификатор виртуальной машины. Если в имени машины есть пробел, то лучше использовать UUID, а иначе можно и имя.

Смотрим список виртуальных машин:

VBoxManage list vms

Теперь давайте запустим машину Ubutnu1804 с UUID ed0ce7dd-0ddb-46bf-913c-876671c4d1f1 с помощью systemd:

sudo systemctl start vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1

Если во время запуска произошла ошибка, вы можете посмотреть её выполнив:


В данном случае машина уже была запущена. Я остановил её и запустил ещё раз с уже помощью systemd. Смотрим статус виртуальной машины:

sudo systemctl status vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1


Если всё хорошо, то всё, что нам осталось, это добавить этот сервис в автозагрузку:

sudo systemctl enable vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1

Выводы

В этой статье мы разобрались как делается автозагрузка виртуальной машины virtualbox. Как видите, всё очень просто и удобно. Теперь ваши виртуальные машины будут всегда запущены.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(7 оценок, среднее: 5,00 из 5)

Об авторе

9 комментариев

добрый день сделал все как у вас, но при перезагрузки не запускается что может быть не подскажите?

Почему, после того, как я перенес систему с HDD на SSD виртуальная машина перестала автоматически запускаться?

Скорее всего сменился UUID

класс
работает
СПС

Спасибо за статью, очень пригодилось. Ещё нашёл в интернетах, что в ExecStop можно вместо acpipowerbutton указать savestate
В таком случае вместо выключения виртуальной машины, будет выполнено сохранение текущего состояния.

Доброго времени суток. У меня вот такая ошибка (No files found for vbox@.service.)
Как быть ?

Все уже придумано ораклом, перевод выдержки из официального мануала:
9.21. Запуск виртуальных машин во время загрузки системы

Вы можете запускать виртуальные машины автоматически во время загрузки системы на платформах Linux, Oracle Solaris и Mac OS X для всех пользователей.
9.21.1. Linux: запуск службы автозапуска с помощью init

В Linux служба автозапуска активируется установкой двух переменных в /etc/default/virtualbox. Первый - это VBOXAUTOSTART_DB, который содержит абсолютный путь к каталогу автозапуска базы данных. Каталог должен иметь доступ на запись для каждого пользователя, который должен иметь возможность автоматически запускать виртуальные машины. Кроме того, в каталоге должен быть установлен липкий бит. Вторая переменная - это VBOXAUTOSTART_CONFIG, которая указывает службе на файл конфигурации автозапуска, который используется во время загрузки, чтобы определить, разрешить ли отдельным пользователям запускать виртуальную машину автоматически и настроить задержки запуска. Файл конфигурации может быть помещен в / etc / vbox и содержит несколько опций. Один из них - default_policy, который определяет, разрешает или запрещает служба автозапуска запуск виртуальной машины для пользователей, которых нет в списке исключений. Список исключений начинается с exception_list и содержит список с именами пользователей, разделенных запятыми. Кроме того, для каждого пользователя может быть настроена отдельная задержка запуска, чтобы избежать перегрузки хоста. Ниже приведен пример конфигурации:

Любой пользователь, который хочет включить автозапуск для отдельных компьютеров, должен указать путь к каталогу базы данных автозапуска с помощью следующей команды:

VBoxManage setproperty autostartdbpath каталог_автозапуска

8.8.9. Автозапуск виртуальных машин во время загрузки хост-системы

Эти параметры настраивают функцию автозапуска виртуальной машины, которая автоматически запускает виртуальную машину при загрузке хост-системы. Обратите внимание, что есть предварительные условия, которые необходимо выполнить перед использованием этой функции. См. Раздел 9.21, «Запуск виртуальных машин во время загрузки системы».

--autostart-enabled on | off: включает и отключает автозапуск виртуальной машины при загрузке хост-системы с использованием указанного имени пользователя.

--autostart-delay : указывает задержку в секундах после загрузки хост-системы перед автозапуском виртуальной машины.

при опросе статуса
вьідает такое

вер 07 18:45:46 serv1vvc systemd[1]: Started vbox@VM_1.service.
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:1: Assig>
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:2: Assig>
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:3: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:1: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:2: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:3: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:1: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:2: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:3: Assig>
lines 1-17/17 (END)

Virtualbox to create a Computer inside another Computer

Autostart Virtualbox VMs

Deleting the Old Way

Just to make sure it works properly, delete the files from the old environment if you created them. If you did edits to some of them, you probably want to undo those edits.

On my end, I edited the /etc/default/virtualbox file to add these two variables:

So I went ahead and deleted those two lines.

However, I also changed the following and that I kept:

Create Service File

Now you are ready to create a service file.

The script includes two names you need to change:

vm1 — enter the name of your Virtualbox machine (this one appears three times)
alexis — unless you are also an alexis and your account is name like that, change that name

Then save the file under /etc/systemd/system/ .

For example, if you use gvim to edit your files:

Then copy/paste the following and do the edits as expected:

Once the file is ready, you need to tell systemd to reload everything including that new file. It may do so automatically, but just in case here is the command you need:

Now you are ready to use this service.

Note: To see a list of services you have running on your system, the cleanest way is to use the following command:

Enable/Start/Stop Service

Now that we created a service file, we want to enable and start it. This supposes that your VM is ready to be started as if you were rebooting your machine.

First, you can test that systemd recognize your file with:

The status command is also useful to check whether a service is running or not.

Now you can start the VM.

It should return on the very next line unless something goes wrong.

Finally, to make the VM run automatically on a reboot, you need to enable it. This is done using the enable command like so:

You can verify the current status at any time. Note that the enable state shows on its own. There are two entries in the output. Both should be enabled. Here is an example of the output. I highlighted the enabled you are looking for in red:

The last few lines are logs (called journals in systemd) showing what happened. It should say that it started your Virtualbox system.

You can later disable the service like so:

which will prevent it from auto-restarting on a reboot. Note that you can still start a VM marked as being disabled.

Renaming a VM

I use rather long names for my VM that include:

I think such long names are great in the Virtualbox interface, but to type in your service file, it may cause problems (between dashes, spaces, parenthesis. and just the fact that such long names are hard to replicate without a few mistakes into them. )

So on my end, I had to rename the VMs. The cool thing, though, is that we now have grouping capabilities. So I can still keep my crazy naming convention for the group, and name each computer in the group something really simple (i.e. <cluster_name>_<sub-name> — for example wordpress_frontend and wordpress_database ).

Your VMs are going to start alongside the X-Windows environment and because of that, the X-Windows system may not be ready to open a window in the first place. So instead we start VMs headless.

In older versions (before 5.x), detaching the GUI was done in various ways:

  1. Machine » Detach GUI
  2. View » Close VM
  3. Close VM (as a button)

Various Errors

The virtual machine has terminated unexpectedly during startup with exit code 0 (0x0).

Here are the last few messages:

And interestingly enough, they give you the exact answer of what to do next (3rd line in the logs above):

  • Sstop all your VMs;
  • Quit VirtualBox;
  • Make sure all the VM services are down (reboot if you want to make 100% sure); and
  • Restart VirtualBox.

Now it should work and it did for me.

The Old Way

These are a few points I wanted to make regarding that method.

I go the following error when trying to install a Virtualbox in auto-start mode and trying to fix the problem took me a little while.

The fact is that once you added yourselves to the vboxusers group, you need to log out and back in properly or even just forget about that group for a moment and use your primary group instead.

tell you to use vboxusers but you could also do that:

(Note: in most cases, your primary group name is your username)

Читайте также: