
Las máquinas invitadas en ejecución se muestran como apagadas en Virtualbox
Preguntas:
Tengo muchas máquinas virtuales en virtualbox, algunas máquinas virtuales fueron creadas por Vagrant, otras se crearon manualmente a través de GUI. Pero cada vez que inicio VM usando vboxmanage starvm
, el estado de la VM se muestra como Powerd Off
en GUI o vboxmanage showvminfo
, incluso si la VM se está ejecutando en GUI.
El sistema operativo host es Manjaro con procesador R9-7945HX y el arranque seguro está deshabilitado.
(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
Reproducir:
p.ej. Inicie una máquina virtual llamada 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 λ
Cuando aparece la GUI, no hay errores distintos, aunque puede ver que el estado de la máquina no coincide como se esperaba.
No tengo 10 reputación y no me deja subir imágenes. Si quieres ver la imagen que muestra el estado de la GUI de la VM, consulta el siguiente enlace.
Pero en la lista de procesos la VM se muestra como en ejecución.
(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
Búfer de anillo del kernel después del borrado dmesg -C
(antes de que se iniciara la VM)
(base) 0x00 in /var/log λ sudo dmesg
[15066.546635] vboxdrv: 0000000037a5da6e VMMR0.r0
[15066.652917] vboxdrv: 00000000a81b79f7 VBoxDDR0.r0
No hay errores distintos en vbox.log
https://gist.github.com/dhay3/a19d46e3231790b9f926d6610f70888c
información completa devboxmanage showvminfo Gparted
https://gist.github.com/dhay3/6013ae1e704a26cac0c7e6337410e868
Cosas que probé:
Eliminar la
.vbox-<username>-ipc
mención del directorio en el siguiente enlaceActualizar/degradar el kernel de virtualbox/linux no funcionó
Inicie virtualbox como root y cree una máquina virtual usando el mismo ISO, luego reproduzca los pasos mencionados anteriormente. ¡¡¡El estado funcionó como se esperaba !!! (corriendo-corriendo)
Es diferente de
Intenté leer algún código fuente, pero no encontré la función que maneja
starvm
el subcomando
Se agradecería cualquier solución alternativa o sugerencia.
Respuesta1
Durante días encuentro que la causa principal es el nombre de usuario poco convencional 0x00
(hexadecimal 0) que confundió el comando.
SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
en el VBox
guión. Obtendrá todos los procesos raíz en lugar del 0x00
nombre literal. Por lo tanto, cada vez que se crea una VM, se creará starvm
un proceso.VBoxSVC