O compartilhamento bidirecional da área de transferência do VirtualBox para de funcionar após algum tempo em um sistema operacional convidado Linux

17

O compartilhamento da área de transferência começa a funcionar bem, mas pára de funcionar após algum tempo (até eu reiniciar a máquina).

Pelo que entendi, as adições de convidados param de funcionar. Eu li que eu deveria ver vboxadd-timesynem execução no meu sistema. Eu verifiquei ps -A | grep -i vboxe não o vejo. Tudo o que recebo é:

VBoxSerive
VBoxClient
VBoxClient
VBoxClient
VBoxClient

Se esse é realmente o problema, como reinicio o serviço? Se não for, o que mais eu poderia olhar?

Isso ocorre com um host do Windows 7 e um convidado do Linux Ubuntu.

Amelio Vazquez-Reina
fonte

Respostas:

21

O linux one-liner:

pkill -f VBoxClient; VBoxClient --clipboard


Um script do PowerShell do Windows.

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: o powershell não é realmente meu campo de especialização, por isso estou esperando algumas edições da comunidade aqui :)

Autoconsciente
fonte
1
Vale a pena notar que estes são ambos para o hóspede.
RichVel 21/09
Obrigado, ambos funcionam muito bem! É uma merda que agora sejam três anos depois e esse bug ainda exista.
Sarke 17/08/19
O one-liner do Linux funcionou muito bem, com votos positivos. Não tentei o PowerShell.
peedee 18/09/17
7

Como corrigir a área de transferência compartilhada no VirtualBox

  1. No VirtualBox Windows Guest, abra o Gerenciador de tarefas
  2. Vá para a guia Processos, destaque VBoxTray.exe e selecione Finalizar processo
  3. Vá para a guia Aplicativos e selecione Nova tarefa
  4. Navegue até a pasta de instalação do VirtualBox Guest Additions, selecione VBoxTray.exe e selecione OK.

A área de transferência deve funcionar depois.

user227392
fonte
Como é que isso funciona? A descrição da pergunta é 'Linux Ubuntu guest' Ou você quer dizer o host do Windows?
Senciente
A pergunta é sobre um convidado do Linux e o VBoxTray.exe se aplica apenas a um convidado do Windows.
RichVel
5

Descobri que nos hosts Linux (Ubuntu no meu caso) e no Windows 7 (acho que isso não importa), basta reiniciar o seguinte processo em sua máquina convidada:

/ usr / bin / VBoxClient --clipboard

Descubra o PID do processo com o ps e mate-o. Depois, inicie o processo com o comando acima novamente e a área de transferência começará a trabalhar novamente. Eu uso isso por exemplo:

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

/ usr / bin / VBoxClient --clipboard

dk
fonte
Obrigado por fornecer uma solução de copiar / colar! O problema: é preciso buscar superuser.com/questions/536827 na máquina convidada para poder copiar / colar isso!
starlocke
Eu descobri que VBoxClientestava instalado no /usr/sbinDebian 8 - isso pode não estar no caminho para usuários não-root.
RichVel 21/09/2015
Essa killé uma maneira muito longa de dizer pkill -f 'VBoxClient --clipboard'. Se você não se importa com os outros serviços, você pode apenaskillall VBoxClient
raylu
1

Tente executar vboxadd-timesyn startpara reiniciar o serviço.

Outra coisa que lembro de ter lido foi alterar o compartilhamento da área de transferência de bidirecional para host para convidado.

Aqui você pode encontrar um ticket antigo que se parece com o seu problema. É uma leitura longa, mas você pode encontrar algumas sugestões úteis.

Finalmente, se nada resolver o problema, sugiro que você abra um relatório de bug no Bugtracker do VirtualBox , porque você não é o primeiro a ter problemas com a área de transferência compartilhada.

user1301428
fonte
Obrigado! Mas quando eu digito vboxadd-timesyn starteu recebo: command not found. Alguma sugestão?
Amelio Vazquez-Reina
Os comandos disponíveis são: VBoxClient, VBoxClient-all, VBoxControle VBoxService.
Amelio Vazquez-Reina
1
Você pode tentar correr /etc/init.d/vboxadd-timesync start?
precisa saber é o seguinte
Os únicos comandos que completam /etc/init.d/vboxaddsão vboxadd, vboxadd-serviceevboxadd-x11
Amelio Vazquez-Reina
1
Eu pesquisei um pouco, e parece que esse comando pode ter sido renomeado para vboxadd. Se isso for verdade, convém tentar executar /etc/init.d/vboxaddcomandos semelhantes.
precisa saber é o seguinte
1

Descobri que o problema se devia ao fato de o VirtualBox Guest Additions não ter sido instalado corretamente (falta de dependência dos cabeçalhos do kernel, etc., fazendo com que um módulo do kernel do Virtualbox não fosse criado).

Tente instalar as adições de convidado manualmente através da linha de comando e leia os erros cuidadosamente. O HOWTO abaixo tem instruções detalhadas.

Uma dica é verificar a saída de sudo lsmod | grep vbox, que mostra os módulos do kernel para o Virtualbox - este estava vazio inicialmente. Aqui está a saída após a correção:

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

Depois que os módulos do kernel foram concluídos, eu apenas tive que executar /usr/sbin/VBoxClient --clipboard(no Debian 8 jessie) e a área de transferência começou a funcionar. A versão do Virtualbox era 4.3.30.

Os comandos que eu executei para esta instalação (a sua pode ser diferente) foram:

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

Uma maneira sistemática de corrigir esse problema (e provavelmente outros) é seguir o HOWTO de Adições de Convidados para Linux . O nome do script de instalação mudou desde 2009, mas o HOWTO ainda é muito útil e fornece comandos para as distribuições no estilo Debian / Ubuntu e RHEL / CentOS.

RichVel
fonte
0

O problema pode ser causado pelo VirtualBox Addons não iniciar corretamente. Experimente este comando no sistema operacional convidado:

sudo /etc/init.d/vboxadd start
Jones
fonte
O que esse comando realmente faz por você? Onde você digitaria isso, host do Windows ou convidado do Linux?
precisa
@ Andrewndott É obviamente um comando do Linux ( sudoe init.dscripts). Mas ainda assim, ter um pouco mais de explicação sobre o que faz seria bom.
slhck
Você e eu podemos dizer que é um comando do Linux, mas estou pensando em outros visitantes que podem não ter tanta certeza.
Andrew Lott
0

Isto é o que funcionou para mim..

Estou no linux mint 17.1 xfce. O pacote de distribuição oficial suporta a versão 4.3.18. Eu estava na .22 e tendo vários problemas separados, então fiz o downgrade para a .18. Depois de inicializado, executei o iso Devices -> Insert Guest Additions e executei o instalador .run como root. Apesar do aviso sobre a detecção de uma versão de instalação do pacote, eu permiti que ela fosse substituída. Bingo. não há mais problemas com a rede e a área de transferência. Eu acho que a principal coisa, pelo menos para minha distro, é reproduzir o que é o pacote oficial, mas usar a iso que acompanha o cliente.

-Steve

Steve
fonte
0

Eu tive um problema semelhante: mas no meu caso, o processo / usr / bin / VBoxClient --clipboard estava fechando várias vezes por sessão.

Para lidar com isso, criei o programa bash:

#! /bin/bash

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

Eu apenas o rodo toda vez, perdi a capacidade de usar a área de transferência.

Murval
fonte
Descobri que o problema se devia ao fato de o VirtualBox Guest Additions não ter sido instalado corretamente (falta de dependência dos cabeçalhos do kernel, etc., fazendo com que um módulo do kernel do Virtualbox não fosse criado).
RichVel 21/09/2015