使用 sudo 启动 virtualbox vm 时,找不到虚拟机

使用 sudo 启动 virtualbox vm 时,找不到虚拟机

我使用 VirtualBox 创建了 2 个虚拟机,并且可以使用以下命令以我自己的用户身份启动它们:

vboxmanage startvm myVM -type headless

但是当我尝试使用 sudo 或在 systemd 服务中执行相同的命令时,它返回找不到 VM。

我发现了这个

失败是因为您使用了 sudo。VirtualBox 设计为由任何用户(在 vboxusers 组中)运行,而 sudo 以 VirtualBox 配置为空的 root 用户身份运行该命令。

但是我只是不知道如何使它以 root 身份运行(使用 sudo)时显示 virtualbox 设置。

任何想法?

答案1

要在登录时启动虚拟机并在注销时停止它,您可以使用 systemd 用户单元。

创建一个文件 `~/.config/systemd/user/myvm.service,内容如下:

[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

然后,运行systemctl --user enable myvm.service。现在,您可以使用 启动虚拟机,systemctl --user start myvm.service并使用 停止虚拟机systemctl --user stop myvm.service。登录和退出应该可以启动和停止虚拟机。

如果您在启动而不是登录时需要此功能,您可以尝试将其设为系统 systemd 单元,并在和[Service]部分中指定执行用户。User=Group=

相关内容