
正在運行的來賓電腦在 Virtualbox 中顯示為關閉
問題:
我在 virtualbox 中有很多虛擬機,一些虛擬機是由 Vagrant 創建的,其他虛擬機是透過 GUI 手動創建的。但每當我使用 啟動虛擬機器時vboxmanage starvm
,虛擬機器的狀態就會顯示為Powerd Off
GUI 或vboxmanage showvminfo
,即使虛擬機器正在 GUI 中運作。
主機作業系統是配備 R9-7945HX 處理器的 Manjaro,安全啟動已停用。
(base) 0x00 in ~/Hypervisor/virtual-machines/Tools/Gparted/Logs λ inxi
CPU: 16-core AMD Ryzen 9 7945HX with Radeon Graphics (-MT MCP-)
speed/min/max: 1055/400/5461 MHz Kernel: 6.7.0-0-MANJARO x86_64 Up: 4h 8m
Mem: 8.47/30.53 GiB (27.8%) Storage: 2.75 TiB (22.9% used) Procs: 544
Shell: Zsh inxi: 3.3.33
複製:
例如。啟動名為 Gparted 的 VM。
(base) 0x00 in ~/Hypervisor/virtual-machines/Tools/Gparted/Logs λ vboxmanage startvm Gparted
Waiting for VM "Gparted" to power on...
VM "Gparted" has been successfully started.
(base) 0x00 in ~/Hypervisor/virtual-machines/Tools/Gparted/Logs λ vboxmanage showvminfo Gparted | grep State
State: powered off (since 2024-02-22T08:25:59.000000000)
(base) 0x00 in ~/Hypervisor/virtual-machines/Tools/Gparted/Logs λ vboxmanage list runningvms
(base) 0x00 in ~/Hypervisor/virtual-machines/Tools/Gparted/Logs λ
當 GUI 彈出時,沒有明顯的錯誤,但您可以看到機器的狀態與預期不符。
我沒有 10 聲譽,它不允許我上傳圖像,如果您想查看顯示 VM GUI 狀態的圖片,請檢查下面的鏈接
但在進程清單中,虛擬機器顯示正在執行
(base) 0x00 in /var/log λ ps -ef | grep -iE 'vbox|virtual|slot' | grep -v grep
root 467 2 0 12:39 ? 00:00:00 [iprt-VBoxTscThread]
0x00 53520 1638 0 15:51 ? 00:00:11 /usr/lib/virtualbox/VirtualBox
0x00 53539 1096 0 15:51 ? 00:00:02 /usr/lib/virtualbox/VBoxXPCOMIPCD
0x00 53545 1096 0 15:51 ? 00:00:06 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
0x00 72847 1096 0 16:51 ? 00:00:01 /usr/lib/virtualbox/VBoxXPCOMIPCD
0x00 72853 1096 0 16:51 ? 00:00:05 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
0x00 72881 72853 0 16:51 ? 00:01:09 /usr/lib/virtualbox/VirtualBoxVM --comment Gparted --startvm 4c830005-8675-45da-bc9f-a11964d3f610 --no-startvm-errormsgbox
清除後的核心環形緩衝區dmesg -C
(VM 啟動之前)
(base) 0x00 in /var/log λ sudo dmesg
[15066.546635] vboxdrv: 0000000037a5da6e VMMR0.r0
[15066.652917] vboxdrv: 00000000a81b79f7 VBoxDDR0.r0
vbox.log 中沒有明顯的錯誤
https://gist.github.com/dhay3/a19d46e3231790b9f926d6610f70888c
完整資訊vboxmanage showvminfo Gparted
https://gist.github.com/dhay3/6013ae1e704a26cac0c7e6337410e868
我嘗試過的事情:
刪除
.vbox-<username>-ipc
下面連結中提到的目錄升級/降級 virtualbox/linux 核心不起作用
以 root 身分啟動 virtualbox 並使用相同的 ISO 建立虛擬機,然後重現上述步驟。國家的計算符合預期! (奔跑-奔跑)
它不同於
嘗試閱讀一些原始程式碼,但沒有找到處理
starvm
子命令的函數
任何解決方法或提示將不勝感激
答案1
幾天來,我發現根本原因是非常規的用戶名0x00
(十六進制十進制 0),它混淆了命令
SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
在VBox
腳本中。它將獲取所有根進程而不是0x00
字面名稱。因此,每次starvm
建立虛擬機器時,VBoxSVC
都會建立一個進程。