在架构Linux,我想在没有窗口管理器的情况下运行 VirtualBox。
作为 root,我可以轻松地做到:
xinit /usr/bin/VirtualBox -- :0 vt1
作为非 root 用户,我得到一个空白屏幕。如果我打开另一个终端,杀死 VirtualBox 并读取
~/.local/share/xorg/Xorg.0.log ,
那么它不会显示任何错误,并且与"/var/log/Xorg.0.log"
我作为根得到的基本相同。
更新
正如 Arkadiusz Drabczyk 所指出的,问题出在 VB 中的一个错误上。它适用于版本 5.2.4-119785。
我的最终目标是使用 VB 类型的裸机,以全屏方式启动操作系统,仅此而已,即:
xinit '/usr/bin/VirtualBox' --startvm "VM name" --fullscreen -- :0 vt1
答案1
我记得我能够重现您的问题,即无法在Virtualbox
没有旧版本窗口管理器的情况下以非根用户身份运行Virtualbox
,但它适用于我5.2.4-119785
。
但是,正如评论中所述,您根本不需要图形界面。 Virtualbox
带有命令行界面,这是我与之交互的首选方法。比如说,列出虚拟机:
$ vboxmanage list vms
"ubuntu" {e7fe8912-5484-4b9d-b5fe-431ae648b2dd}
"slackware64-current" {a00e1925-9cb6-4330-8b04-bbce69b49c67}
"slackware-current" {636b85f2-1e02-497b-9c50-22eb285250a3}
"freebsd" {acb77ca6-b051-400a-92bb-b3b2f1905991}
"openindiana" {bdca01dd-ea5d-4323-9fd2-92665d311bda}
"slackware64-14.1" {f9db3ba6-2316-4f92-8264-4abc8e4f71b3}
"slackware-14.2" {ccb5ddba-4ea1-4469-8ebc-21c84b8ca825}
"slackware-14.1-pathes-test" {67bec56d-b7d5-4427-a726-de2b4c1ba700}
"Slackware_new_test" {2e9232b5-bab1-41fc-8db4-ff4aab56f94c}
"slackware64-14.2" {2084cd19-d286-48b5-8e7b-3d1bb7a94d93}
"alpine linux" {be56c6a7-5821-4815-984b-6b40a6367acb}
"openwrt_Chaos_Calmer" {a4fcb438-dfc7-4672-8976-0d21b34357e0}
"linux-mint" {6e5e99d8-2dd8-4798-93ac-ffbf14c6c9db}
要启动虚拟机:
$ vboxmanage startvm "slackware64-14.1" --type headless
然后您可以使用 等访问已启动的虚拟机ssh
。telnet
要删除虚拟机:
$ vboxmanage unregistervm "slackware64-14.1" -delete
显示给定虚拟机的信息:
$ vboxmanage showvminfo slackware64-14.1
要停止虚拟机:
$ vboxmanage controlvm slackware64-14.1 poweroff
您甚至可以在命令行中创建新的虚拟机:https://gist.github.com/ardrabczyk/65b68d0121f2964cd99e
答案2
我找到了几个选择。
-
VBoxManage startvm "VM name" --type headless
-
VBoxHeadless --startvm <uuid|name>
请记住xinit ...
,就像你已经知道的那样。
也可以看看:
https://superuser.com/questions/135498/run-virtualbox-in-background-without-a-window
https://superuser.com/questions/1153939/start-a-vm-in-virtualbox-without-gui