在用户之间使用通用的 VirtualBox 设置

在用户之间使用通用的 VirtualBox 设置

我想解决以下用例:我的妻子和我(=两个不同的 Linux 用户)想使用相同的 VirtualBox Windows10 虚拟机。因此我的想法是将所有 VirtualBox 设置置于用户“vmuser”下,并始终在 vmuser 环境中启动 VirtualBox。

然后在文件夹 /home/vmuser 中设置所有 VirtualBox 设置。

在每个用户桌面上,我添加了一个桌面文件“VirtualBox.desktop”,其内容如下:

 [Desktop Entry]
 Comment=
 Exec=mate-terminal -- /bin/su vmuser -w QT_QPA_PLATFORM_THEME,DISPLAY,XDG_RUNTIME_DIR -c /usr/local/bin/startVirtualBox.sh
 GenericName=Go virtual
 Icon=virtualbox
 MimeType=
 Name=VirtualBox
 Path=
 StartupNotify=true
 Terminal=true
 TerminalOptions=
 Type=Application
 X-DBUS-ServiceName=
 X-DBUS-StartupType=
 X-KDE-SubstituteUID=false
 X-KDE-Username=`

单击此图标即可启动文件/usr/local/bin/startVirtualBox.sh。“-w”表示不替换现有环境变量。我使用“mate-terminal”,因为在我的计算机上,它比“gome-terminal”启动速度更快,但您的情况可能会有所不同。

由于一些我尚不清楚的原因(我认为问题出在开头的 /bin/sh,但没有它就无法工作)我需要以这种方式定义环境变量:

 #!/bin/sh
 QT_X11_NO_MITSHM=1 
 DISPLAY=$DISPLAY
 XAUTHORITY=$XAUTHORITY
 XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR
 export QT_X11_NO_MITSHM
 export DISPLAY 
 export XAUTHORITY 
 export XDG_RUNTIME_DIR 

 /usr/bin/VirtualBox

尽管在启动 VirtualBox 时在额外的控制台窗口中出现了一些错误消息,但此解决方案仍按预期工作:

Qt WARNING: QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 1002
Qt WARNING: Qt: Session management error: None of the authentication protocols specified are supported

用户运行时目录由点击桌面图标 (id=1000) 的用户控制,VirtualBox 进程在 vmuser (用户 id = 1002) 下启动。好的。

但有人知道如何摆脱这个问题吗?

答案1

有趣的问题——我刚刚有了一个想法。

  • 用户 A 创建一台虚拟机,其虚拟硬盘位于两个用户都具有完全访问权限的目录中
  • 关掉机器
  • 用户 B 创建具有相同属性的 VM,但不会创建新的虚拟 HDD。而是使用用户 A 创建的虚拟 HDD。
  • 关掉机器

警告:你总是需要关闭虚拟机,不要让 VirtualBox“保存状态”

相关内容