Как запускать виртуальные машины автоматически при загрузке?

indicator-cpufreq-selector - это небольшой инструмент индикатора, который показывает вашу текущую частоту процессора. Вы можете даже выбрать желаемую частоту процессора.

Однако последнее обновление для этого инструмента было включено в indicator-cpufreq-selector .

1
задан 15 November 2017 в 15:57

11 ответов

У меня были подобные несчастные инциденты, которые пытались выполнить эту операцию на ванильном LTS.

~$ cat /etc/os-release 
NAME="Ubuntu" 
VERSION="14.04.1 LTS, Trusty Tahr" 

В этой версии файл ключа /etc/init.d/vboxautostart-service не был установлен.

Насколько я знаю, все VitualBox и требования были установлены в apt-get, поэтому я не могу сказать, почему файл vboxautostart-service также не был предоставлен. Но для того, чтобы преодолеть это, вот мое обновление к сообщению kdmurray.

1) /etc/init.d/vboxautostart-service файл существовал для меня. Поэтому необходимо добавить vars:

VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg

2) Необходимо создать /etc/vbox/autostart.cfg, как указано OP.

6b) Необходимо получить скрипт vboxautostart-service и сделать его исполняемым.

cd /etc/init.d/
sudo wget http://www.virtualbox.org/browser/vbox/trunk/src/VBox/Installer/linux/vboxautostart-service.sh?format=raw -O vboxautostart-service
sudo chmod +x vboxautostart-service

6c) Оповестить контроллер rc.d, но я использовал 24 как время начала. Поставив всего 20, он не запустился. Возможно, он работал даже до того, как виртуальный бокс работал.

sudo update-rc.d vboxautostart-service defaults 24 24

Затем перезагрузка запустила виртуальную машину правильно.

10
ответ дан 24 May 2018 в 13:04

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

Сначала мой Linux-хост (Mint 17) был настроен при загрузке

Во-вторых, я использовал средства в VirtualBox GUI (v4.3.12), чтобы создать ярлык для каждой виртуальной машины на рабочем столе. {щелкните правой кнопкой мыши виртуальную машину в левом столбце & amp; выберите «Создать ярлык на рабочем столе»}

Далее: я уже обнаружил, что создание меню-> Центр управления -> Запуск приложений -> Добавление и добавление ярлыков на рабочем столе дало файлы, которые не работали, я заметил из другого ответа на этой странице, что расположение стартапов - /home/USERNAME/.config/autostart, поэтому я щелкнул правой кнопкой мыши по каждой из ярлыков виртуальных машин на рабочем столе, а затем вложил их в эту папку, перезаписав более ранние файлы. Теперь они разработали «красивые» значки VirtualBox.

И, конечно же, при перезапуске главного компьютера три виртуальных машины начали автоматически.

:-)

Bill Уильямс

из kdmurray

6
ответ дан 24 May 2018 в 13:04
  • 1
    FYI нет ответа «5». Количество, которое вы видите слева от каждого ответа, - это общий подсчет голосов. Сказав это, ваш метод является хорошим альтернативным графическим интерфейсом. Спасибо за вклад. – hmayag 25 August 2014 в 01:42

Вы можете использовать vboxmanage startvm "my virtual machine" --type=headless|gui|sdl (один из них). Используйте «без головы», если это серверы, к которым вы подключаетесь другими способами, чем использование gui.

Чтобы запустить эти команды в нужное время во время загрузки, вы захотите прочитать Upstart.

5
ответ дан 24 May 2018 в 13:04

В дополнение к хорошему описанию вышеописанной службы vboxautostart вы можете сделать

VBoxManage modifyvm server --autostop-type savestate

, чтобы автоматически остановить гостя при завершении работы. Для Ubuntu 14.04 мне пришлось добавить sleep 30 в раздел остановки vboxautostart-сервиса, так что он ждет, пока гость не будет полностью сохранен.

4
ответ дан 24 May 2018 в 13:04

Я нашел более простой способ в Ubuntu 16.04 с помощью VBox 5.1.34.

Находясь в VBox, щелкните правой кнопкой мыши на текущей или пустой виртуальной машине в списке, выберите «Создать ярлык на рабочем столе». После того, как вы увидите значок на рабочем столе, откройте любой инструмент, который позволит вам увидеть созданная базовая команда VBox (в моей системе я нажимаю правой кнопкой мыши и выбираю «свойства») Скопируйте это в буфер обмена.

Откройте программу для обновления «приложений запуска» и создайте новое приложение, которое запускается во время загрузки , вставляя команду, которую вы скопировали из ссылки на рабочий стол, созданной VirtualBox.

2
ответ дан 24 May 2018 в 13:04

Чтобы запустить виртуальную машину при входе в нашу сессию, мы можем захотеть определить файл .desktop:

Добавить ярлык виртуальной памяти в Unity Launcher для загрузки в виртуальную машину

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

Добавить ярлык виртуальных боксов в Unity Launcher для загрузки в виртуальную машину [d8 ] Запуск виртуальной ячейки в пространстве пользователя может помочь избежать нежелательных побочных эффектов при их запуске во время загрузки (например, виртуальная машина работает от имени root, время загрузки увеличивается невероятно, ...).

1
ответ дан 24 May 2018 в 13:04

Это можно сделать с помощью интерфейса управления виртуальной машиной VirtualBox. Просто запустите следующий скрипт при запуске.

#!/bin/bash
VMUSER="vmuser"
VMNAME="RedHatVM" #also you can put UUID in this variable (VMNAME="4ec6acc1-a232-566d-a040-6bc4aadc19a6")

case "$1" in
    start)
        echo "===Starting VirtualBox VM==="
        sudo -H -u $VMUSER VBoxManage startvm "$VMNAME" --type headless
        ;;
    stop)
        echo "===Saving state of Virtualbox VM==="
    sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" savestate
    sleep 20
        ;;
    shutdown)
        echo "===Shutting down Virtualbox VM==="
        sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" acpipowerbutton
    sleep 20
        ;;
    reset)
        echo "===Resetting VirtualBox VM==="
         sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" reset
        ;;
    status)
         echo -n "VMNAME->";sudo -H -u $VMUSER VBoxManage showvminfo "$VMNAME" --machinereadable |grep "VMState="| cut -d "=" -f2
        ;;
        echo "Usage: /etc/init.d/VMscript {start|stop|shutdown|reset|status}"
        exit 1
        ;;
    esac

exit 0

Для получения дополнительной информации есть хороший учебник.

1
ответ дан 24 May 2018 в 13:04
  • 1
    Добро пожаловать .. Скопируйте / вставьте важную информацию по ссылке – storm 27 May 2016 в 22:55

Addon to @kdmurray answer.

Если вы получаете ошибку:

VBoxManage modifyvm <uuid|vmname> --autostart-enabled on

Чтобы решить эту проблему, мне пришлось вручную создавать файлы «имя пользователя» .start и «имя пользователя» ".stop with:

sudo touch "username".start
sudo touch "username".stop

И измените владельца с помощью:

sudo chown "username" "username".start
sudo chown "username" "username".stop

rerun:

VBoxManage modifyvm <uuid|vmname> --autostart-enabled on

затем перезапустите службу:

sudo service vboxautostart-service stop
sudo service vboxautostart-service start

check все в порядке:

top

, и вы должны увидеть процесс «VBox ...» в списке, если виртуальная машина работает

1
ответ дан 24 May 2018 в 13:04

Вы также можете получить описание диспетчера сеансов gnome. Gnome Session Manager Он находится в центре программного обеспечения или вы можете просто перейти к терминалу и набрать sudo apt-get install gnome-session-common

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

#!/bin/sh

#vboxmanage startvm "my virtual machine" --type=headless|gui|sdl (one of those)
# So if your username is user, and virtualbox put your VMs in the default location, and you want headless...

vboxmanage startvm '/home/user/VirtualBox VMs/myvmname' --type=gui
0
ответ дан 24 May 2018 в 13:04

Так я запускаю свой Centos (имя моей виртуальной машины), когда перезагружается моя хост-машина. Я использую crontab для этой работы. Вот моя запись crontab:

@reboot VBoxHeadless --startvm "Centos" &
0
ответ дан 24 May 2018 в 13:04

Для сервера Ubuntu 16.04.1 LTS я решил это, выполнив:

Сначала активируйте rc-local.service

sudo systemctl enable rc-local.service

Добавьте следующую строку в /etc/rc.local [ ! d2]
su virtual_box_user -c "VBoxHeadless -startvm 'virtual_machine_name' &"

Обратите внимание, что virtual_box_user - это тот, который может видеть виртуальную машину (которую вы готовы запустить):

VBoxManage list vms

Пример:

$ VBoxManage list vms
"virtualbox1" {2eb3ba3b-bcb3-4515-95d9-d33bce214c28} 
"virtualbox2" {62365634-f2q4-40c0-b4ed-22f4ab84441a}

Модифицированный /etc/rc.local должен выглядеть так

#!/bin/sh -e
# 
# rc.local 
# 
# This script is executed at the end of each multiuser runlevel. 
# Make sure that the script will "exit 0" on success or any other 
# value on error.
# 
# In order to enable or disable this script just change the execution
# bits. 
# 
# By default this script does nothing. 

su bob -c "VBoxManage startvm 'virtualbox1' --type headless &" 
su bob -c "VBoxManage startvm 'virtualbox2' --type headless &" 

exit 0 

Если вы не выбрали правильного владельца виртуального бокса, вы должны увидеть ошибку, набрав команду:

sudo systemctl status rc-local.service

Надеюсь, это поможет

0
ответ дан 24 May 2018 в 13:04

Другие вопросы по тегам:

Похожие вопросы: