virtualbox 中來賓電腦的狀態不符

virtualbox 中來賓電腦的狀態不符

正在運行的來賓電腦在 Virtualbox 中顯示為關閉

問題:

我在 virtualbox 中有很多虛擬機,一些虛擬機是由 Vagrant 創建的,其他虛擬機是透過 GUI 手動創建的。但每當我使用 啟動虛擬機器時vboxmanage starvm,虛擬機器的狀態就會顯示為Powerd OffGUI 或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 狀態的圖片,請檢查下面的鏈接

https://raw.githubusercontent.com/dhay3/image-repo/master/20240222/image-20240222164536709.2urzybsbf0ao.webp

但在進程清單中,虛擬機器顯示正在執行

(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

我嘗試過的事情:

  1. 刪除.vbox-<username>-ipc下面連結中提到的目錄

    https://www.virtualbox.org/manual/ch02.html#2.3.5.%20Starting%20Oracle%20VM%20VirtualBox%20on%20Linux

  2. 升級/降級 virtualbox/linux 核心不起作用

  3. 以 root 身分啟動 virtualbox 並使用相同的 ISO 建立虛擬機,然後重現上述步驟。國家的計算符合預期! (奔跑-奔跑)

    它不同於

    https://forums.virtualbox.org/viewtopic.php?p=426082

  4. 嘗試閱讀一些原始程式碼,但沒有找到處理starvm子命令的函數

任何解決方法或提示將不勝感激

答案1

幾天來,我發現根本原因是非常規的用戶名0x00(十六進制十進制 0),它混淆了命令

SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'` 

VBox腳本中。它將獲取所有根進程而不是0x00字面名稱。因此,每次starvm建立虛擬機器時,VBoxSVC都會建立一個進程。

相關內容