configurations/program/src/virtualbox.md

101 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VirtualBox
## Управление через CLI
Вывести список зарегистрированных виртуальных машин:
```sh
VBoxManage list vms
```
Вывести список запущенных виртуальных машин:
```sh
VBoxManage list runningvms
```
Запуск виртуальной машины:
```sh
VBoxManage startvm <name or UUID> --type <type>
```
где
- `name or UUID` - имя или `UUID` запускаемой виртуальной машины
- `type` - режим, в котором запустить виртуальную машину, например в графическом интерфейсе (`gui`) или в скрытом (`headless`)
например:
```sh
VBoxManage startvm ac67e7f1-9255-412b-a522-ebe3e264e4f6 --type headless
```
Для управления запущенной виртуальной машиной:
```sh
VBoxManage controlvm <subcommand>
```
где `subcommand`:
- `<name or UUID> pause|resume|reset|poweroff`
## Запуск как сервис systemd
Необходимо добавить пользователя в группу `vboxusers`:
```sh
sudo usermod -a -G vboxusers $USER
```
Создать модуль шаблона systemd для запуска и остановки виртуальных машин VirtualBox:
```sh
sudo touch /etc/systemd/system/vbox_vm_start@.service
```
с содержимым:
```sh
[Unit]
Description=VirtualBox VM %I
After=network.target vboxdrv.service
Before=runlevel2.target shutdown.target
[Service]
User=<MyUser>
Group=vboxusers
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
```
Заменить `<MyUser>` на пользователя, от имени которого будет запускаться виртуальная машина.
Для включения модуля запуска systemd выполнить команду:
```sh
sudo systemctl enable vbox_vm_start@<name of VM>
```
где `<name of VM>` заменть на имя виртуальной машины.
Получть список виртуальных машин:
```sh
VBoxManage list vms
```
**Для запуска сервисов имена VBox машин не должны содержать пробельные символы**