El intercambio de portapapeles bidireccional VirtualBox deja de funcionar después de un tiempo en un sistema operativo invitado Linux


17

El uso compartido del portapapeles comienza a funcionar bien, pero deja de funcionar después de un tiempo (hasta que reinicie la máquina).

Por lo que entiendo, a veces las adiciones de invitados dejan de funcionar. Leí que debería ver vboxadd-timesyncorriendo en mi sistema. Lo comprobé ps -A | grep -i vboxy no lo veo. Todo lo que obtengo es:

VBoxSerive
VBoxClient
VBoxClient
VBoxClient
VBoxClient

Si este es realmente el problema, ¿cómo reinicio el servicio? Si no es así, ¿qué más podría mirar?

Esto es con un host Windows 7 y un invitado Linux Ubuntu.

Respuestas:


21

El linux one-liner:

pkill -f VBoxClient; VBoxClient --clipboard


Un script de Windows PowerShell.

echo "Trying to restart VBoxClient"

$vbox_process = Get-Process VBoxTray
Write-verbose $vbox_process
$procID = $vbox_process.id

if ($procID  -gt 0)
{    
    $cmdline = (Get-WMIObject Win32_Process -Filter "Handle=$procID").CommandLine
    Write-Verbose $cmdline

    Write-Verbose "Stopping VBoxTray"
    $vbox_process.Kill()
    $vbox_process.WaitForExit()
    Write-Verbose "VBoxTray stopped"

    Write-Verbose "Starting VBoxTray"
    Start-Process -FilePath $cmdline.Split(' ')[0]
    echo "VBoxTray Restarted. All Done"
} else {    
    Write-Warning 'Could not find existing vboxTray process. Launching direct?'
    Start-Process -FilePath "C:\Windows\System32\VBoxTray.exe"     
}

Nota: powershell no es realmente mi campo de especialización, por lo que espero algunas ediciones de la comunidad aquí :)


1
Vale la pena señalar que estos son tanto para el invitado.
RichVel

Gracias, ¡ambos funcionan muy bien! Es una mierda que ahora sea 3 años después y este error todavía existe.
Sarke

Linux one-liner funcionó muy bien, votó positivamente. No probé PowerShell.
peedee

7

Cómo arreglar el portapapeles compartido en VirtualBox

  1. En VirtualBox Windows Guest, abra el Administrador de tareas
  2. Vaya a la pestaña Procesos, resalte VBoxTray.exe y seleccione Finalizar proceso
  3. Vaya a la pestaña Aplicaciones y seleccione Nueva tarea
  4. Vaya a la carpeta de instalación de VirtualBox Guest Additions y seleccione VBoxTray.exe y seleccione Aceptar.

El portapapeles debería funcionar después.


¿Como funciona esto? La descripción de la pregunta es 'Linux Ubuntu guest' ¿O te refieres al host de Windows?
Sentient

La pregunta es sobre un invitado de Linux, y el VBoxTray.exe solo se aplica a un invitado de Windows.
RichVel

5

Descubrí que en los invitados de Linux (Ubuntu en mi caso) y los hosts de Windows 7 (supongo que eso no importa) solo tiene que reiniciar el siguiente proceso en su máquina invitada:

/ usr / bin / VBoxClient --clipboard

Descubre el PID del proceso con ps y mátalo. Luego comience el proceso con el comando anterior nuevamente y el portapapeles comenzará a funcionar nuevamente. Yo uso esto por ejemplo:

kill $ (ps aux | grep '/ usr / bin / VBoxClient --clipboard' | grep -v grep | awk '{print $ 2}')

/ usr / bin / VBoxClient --clipboard


¡Gracias por proporcionar una solución de copiar / pegar! El problema: ¡uno debe buscar superuser.com/questions/536827 en la máquina invitada para poder copiar / pegar eso!
starlocke

Descubrí que VBoxClientestaba instalado en /usr/sbinDebian 8; esto puede no estar en el camino para usuarios no root.
RichVel

Esa killes una forma de decir muy larga pkill -f 'VBoxClient --clipboard'. Si no le interesan los otros servicios, puede simplementekillall VBoxClient
raylu

1

Intente ejecutar vboxadd-timesyn startpara reiniciar el servicio.

Otra cosa que recuerdo haber leído fue cambiar el intercambio del portapapeles de bidireccional a host a invitado.

Aquí puede encontrar un ticket de error antiguo que se parece a su problema. Es una lectura larga, pero puede encontrar algunas sugerencias allí útiles.

Finalmente, si nada resuelve el problema, le sugiero que abra un informe de error en el Bugtracker de VirtualBox , porque no es el primero que tiene problemas con el portapapeles compartido.


¡Gracias! Pero cuando escribo vboxadd-timesyn startme sale: command not found. ¿Alguna sugerencia?
Amelio Vazquez-Reina

Los comandos disponibles son: VBoxClient, VBoxClient-all, VBoxControly VBoxService.
Amelio Vazquez-Reina

1
¿Puedes intentar correr /etc/init.d/vboxadd-timesync start?
user1301428

Los únicos comandos que se completan /etc/init.d/vboxaddson vboxadd, vboxadd-serviceyvboxadd-x11
Amelio Vazquez-Reina

1
Busqué en Google un poco, y parece que ese comando puede haber cambiado de nombre vboxadd. Si esto es cierto, puede intentar ejecutar /etc/init.d/vboxaddcomandos similares.
user1301428

1

Descubrí que el problema se debía a que VirtualBox Guest Additions no se instalaba correctamente (faltaba la dependencia de los encabezados del núcleo, etc., lo que provocaba que no se construyera un módulo de núcleo de Virtualbox).

Intente instalar las adiciones de invitados manualmente a través de la línea de comandos y lea los errores cuidadosamente. El CÓMO a continuación tiene instrucciones detalladas.

Un consejo es verificar la salida de sudo lsmod | grep vbox, que muestra los módulos del núcleo para Virtualbox; esto estaba vacío inicialmente. Aquí está la salida después de la corrección:

$ sudo lsmod | grep vbox
vboxsf                 40674  0 
vboxvideo              12405  1 
drm                   203590  3 vboxvideo
vboxguest             173675  6 vboxsf

Una vez que se terminaron los módulos del núcleo, solo tuve que ejecutar /usr/sbin/VBoxClient --clipboard(en Debian 8 jessie) y el portapapeles comenzó a funcionar. La versión de Virtualbox era 4.3.30.

Los comandos que ejecuté para esta configuración (los suyos pueden diferir) fueron:

aptitude install dkms build-essential linux-headers-generic
aptitude install linux-headers-3.16.0-4-586     # See HOWTO, match running kernel
cd /media/cdrom0
sh ./VBoxLinuxAdditions.run 
less /var/log/vboxadd-install.log     # If you get errors

Una forma sistemática de solucionar este problema (y probablemente otros) es ir a través del COMO de Guest Additions para Linux . El nombre del script de instalación ha cambiado desde 2009, pero el CÓMO sigue siendo muy útil y proporciona comandos para distribuciones de estilo Debian / Ubuntu y RHEL / CentOS.


0

El problema puede deberse a que los complementos de VirtualBox no se inician correctamente. Pruebe este comando en el SO huésped:

sudo /etc/init.d/vboxadd start

¿Qué hace ese comando realmente por ti? ¿Dónde escribirías eso, Windows host o Linux guest?
Andrew Lott

@AndrewLott Obviamente es un comando de Linux ( sudoy init.dscripts). Pero aún así, tener un poco más de explicación sobre lo que hace sería bueno.
slhck

Usted y yo podemos decir que es un comando de Linux, pero estoy pensando en otros visitantes que podrían no estar tan seguros.
Andrew Lott

0

Esto es lo que funcionó para mí ...

Estoy en Linux mint 17.1 xfce. El paquete de distribución oficial es compatible con 4.3.18. Estaba en .22 y tenía muchos problemas por separado, así que bajé a .18. Luego, una vez arrancado, ejecuté la iso Dispositivos -> Insertar adiciones de invitados y ejecuté el instalador .run como root. A pesar de la advertencia sobre la detección de una versión de instalación del paquete, permití que se sobrescribiera. Bingo. No más problemas con la red y el portapapeles. Creo que la clave, al menos para mi distribución, es reproducir cuál es el paquete oficial, pero usar la iso que viene con el cliente.

-Steve


0

Tuve un problema similar: pero en mi caso el proceso / usr / bin / VBoxClient --clipboard se cerró varias veces por sesión.

Para lidiar con eso, creé el programa bash:

#! /bin/bash

ps aux | grep '/usr/bin/VBoxClient --clipboard' | grep -v grep || /usr/bin/VBoxClient --clipboard

Simplemente lo ejecuto cada vez, perdí la capacidad de usar el portapapeles.


Descubrí que el problema se debía a que VirtualBox Guest Additions no se instalaba correctamente (falta la dependencia de los encabezados del núcleo, etc., lo que hace que no se cree un módulo de núcleo de Virtualbox).
RichVel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.