ao iniciar o virtualbox vm usando sudo, ele não consegue encontrar as VMs

0

Eu criei 2 VMs usando o VirtualBox e posso iniciá-las bem como meu próprio usuário usando o seguinte comando:

vboxmanage startvm myVM -type headless

mas quando eu tento o mesmo comando com sudo, ou em um serviço systemd, ele retorna que não consegue encontrar a VM.

Eu descobri isso

It fails because you are using sudo. VirtualBox is designed to be run by any user (in the vboxusers group), and sudo runs the command as the root user whose VirtualBox configuration is empty.

Mas eu não sei como fazer isso quando executado como root (com sudo) para ter as configurações do VirtualBox presentes.

Alguma ideia?

    
por Martin B 19.05.2018 / 16:45

1 resposta

0

Para iniciar uma VM no login e fazer com que ela pare no logout, você pode usar as unidades do usuário systemd.

Crie um arquivo '~ / .config / systemd / user / myvm.service com o seguinte conteúdo:

[Unit]
Description=My VM

[Service]
ExecStart=vboxmanage startvm myVM -type headless
ExecStop=vboxmanage controlvm myVM acpipowerbutton 
# Actually, I'm not sure about the stop command, but I'm confident you will figure that one out
RemainAfterExit=true

[Install]
WantedBy=default.target

Depois, execute systemctl --user enable myvm.service . Agora você pode iniciar sua VM com systemctl --user start myvm.service e pará-lo com systemctl --user stop myvm.service . Fazer o login e sair deve iniciar e parar sua VM.

Se você precisar disso na inicialização, em vez de efetuar login, tente criar uma unidade systemd do sistema e especifique o usuário em execução na seção [Service] com User= e Group= .

    
por Lienhart Woitok 19.05.2018 / 19:02