101 lines
2.5 KiB
Markdown
101 lines
2.5 KiB
Markdown
# 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 машин не должны содержать пробельные символы**
|