Состояние гостевых машин не совпадает в virtualbox

Состояние гостевых машин не совпадает в virtualbox

Работающие гостевые машины отображаются в Virtualbox как выключенные

Вопросы:

У меня много виртуальных машин в virtualbox, некоторые виртуальные машины были созданы Vagrant, другие созданы вручную через GUI. Но всякий раз, когда я запускаю виртуальные машины с помощью vboxmanage starvm, состояние виртуальной машины отображается как Powerd Offв GUI или vboxmanage showvminfo, даже если виртуальная машина запущена в GUI.

Хостовая ОС — Manjaro с процессором R9-7945HX, безопасная загрузка отключена.

(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.

(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 λ 

При появлении графического интерфейса пользователя никаких явных ошибок не возникает, хотя можно увидеть, что состояние машины не соответствует ожидаемому.

У меня нет 10 репутации, поэтому я не могу загружать изображения. Если вы хотите увидеть изображение, показывающее состояние графического интерфейса виртуальной машины, перейдите по ссылке ниже.

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(до запуска виртуальной машины)

(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.%20Запуск%20Oracle%20VM%20VirtualBox%20на%20Linux

  2. Обновление/понижение версии ядра virtualbox/linux не помогло

  3. Запустите virtualbox как root и создайте виртуальную машину, используя тот же ISO, затем воспроизведите шаги, указанные выше. Состояние совпало с ожидаемым!!! (runnging-running)

    Это отличается от

    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будет создан процесс.

Связанный контент