Die bidirektionale gemeinsame Nutzung der Zwischenablage von VirtualBox funktioniert auf einem Linux-Gastbetriebssystem nach einiger Zeit nicht mehr

17

Die gemeinsame Nutzung der Zwischenablage funktioniert einwandfrei, funktioniert jedoch nach einiger Zeit nicht mehr (bis ich den Computer neu starte).

Soweit ich weiß, funktionieren die Gastzugänge manchmal nicht mehr. Ich habe gelesen, dass ich vboxadd-timesynauf meinem System laufen sehen sollte . Ich habe nachgesehen ps -A | grep -i vboxund sehe es nicht. Alles was ich bekomme ist:

VBoxSerive
VBoxClient
VBoxClient
VBoxClient
VBoxClient

Wenn dies tatsächlich das Problem ist, wie starte ich den Dienst neu? Wenn nicht, was könnte ich mir sonst noch ansehen?

Dies ist mit einem Windows 7-Host und Linux Ubuntu-Gast.

Amelio Vazquez-Reina
quelle

Antworten:

21

Der Linux One-Liner:

pkill -f VBoxClient; VBoxClient - Zwischenablage


Ein Windows-Powershell-Skript.

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"     
}

Hinweis: Powershell ist nicht wirklich mein Fachgebiet, daher erwarte ich hier einige Community-Änderungen :)

Empfindungsfähig
quelle
1
Bemerkenswert sind beide für den Gast.
RichVel
Vielen Dank, diese beiden arbeiten großartig! Es ist scheiße, dass es jetzt 3 Jahre später ist und dieser Bug immer noch existiert.
Sarke
Linux One-Liner funktionierte großartig und wurde positiv bewertet. Ich habe es nicht mit Powershell versucht.
Peedee
7

So reparieren Sie die freigegebene Zwischenablage in VirtualBox

  1. Öffnen Sie in VirtualBox Windows Guest den Task-Manager
  2. Gehen Sie zur Registerkarte "Prozesse", markieren Sie "VBoxTray.exe" und wählen Sie "Prozess beenden"
  3. Gehen Sie zur Registerkarte "Anwendungen" und wählen Sie "Neue Aufgabe"
  4. Navigieren Sie zum Installationsordner von VirtualBox Guest Additions, wählen Sie VBoxTray.exe aus und klicken Sie auf OK.

Die Zwischenablage sollte danach funktionieren.

user227392
quelle
Wie funktioniert das? Die Beschreibung der Frage lautet "Linux Ubuntu-Gast". Oder meinst du den Windows-Host?
Sentient
Die Frage bezieht sich auf einen Linux-Gast, und die Datei VBoxTray.exe gilt nur für einen Windows-Gast.
RichVel,
5

Ich habe herausgefunden, dass Sie auf Linux-Gästen (in meinem Fall Ubuntu) und Windows 7-Hosts (das spielt wohl keine Rolle) nur den folgenden Prozess auf Ihrem Gastcomputer neu starten müssen:

/ usr / bin / VBoxClient --Clipboard

Finden Sie mit ps die PID des Prozesses heraus und beenden Sie ihn. Starten Sie anschließend den Vorgang mit dem obigen Befehl erneut und die Zwischenablage beginnt wieder zu arbeiten. Ich benutze das zum Beispiel:

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

/ usr / bin / VBoxClient --Clipboard

dk
quelle
Vielen Dank für die Bereitstellung einer Lösung zum Kopieren und Einfügen! Der Haken: man muss superuser.com/questions/536827 in den Gastrechner holen, um das kopieren / einfügen zu können!
Starlocke
Ich habe festgestellt, dass VBoxClientes unter /usr/sbinDebian 8 installiert wurde - dies befindet sich möglicherweise nicht im Pfad für Nicht-Root-Benutzer.
RichVel
Das killist eine wirklich langatmige Art zu sagen pkill -f 'VBoxClient --clipboard'. Wenn Sie sich nicht für die anderen Dienste killall VBoxClient
interessieren
1

Versuchen Sie vboxadd-timesyn start, den Dienst neu zu starten.

Eine andere Sache, an die ich mich erinnere, war, die gemeinsame Nutzung der Zwischenablage von bidirektional zu Host zu Gast zu ändern.

Hier finden Sie ein altes Bug-Ticket, das Ihrem Problem ähnelt. Es ist eine lange Lektüre, aber vielleicht finden Sie dort einige nützliche Vorschläge.

Wenn sich das Problem nicht beheben lässt, sollten Sie einen Fehlerbericht im Bugtracker von VirtualBox selbst öffnen , da Sie nicht die ersten sind, die Probleme mit der freigegebenen Zwischenablage haben.

user1301428
quelle
Vielen Dank! Aber wenn ich schreibe , vboxadd-timesyn starterhalte ich: command not found. Irgendwelche Vorschläge?
Amelio Vazquez-Reina
Die Befehle zur Verfügung stehen: VBoxClient, VBoxClient-all, VBoxControlund VBoxService.
Amelio Vazquez-Reina
1
Kannst du versuchen zu rennen /etc/init.d/vboxadd-timesync start?
user1301428
Die einzigen Befehle, die ausgeführt /etc/init.d/vboxaddwerden vboxadd, sind vboxadd-serviceundvboxadd-x11
Amelio Vazquez-Reina
1
Ich habe ein bisschen gegoogelt und es sieht so aus, als ob dieser Befehl in umbenannt wurde vboxadd. Wenn dies zutrifft, können Sie versuchen, /etc/init.d/vboxaddähnliche Befehle auszuführen.
user1301428
1

Ich habe festgestellt, dass das Problem darauf zurückzuführen ist, dass VirtualBox Guest Additions nicht ordnungsgemäß installiert wurden (fehlende Abhängigkeit von Kernel-Headern usw., wodurch ein Virtualbox-Kernel-Modul nicht erstellt wurde).

Versuchen Sie, die Gastzugaben manuell über die Befehlszeile zu installieren, und lesen Sie die Fehler sorgfältig durch. Das folgende HOWTO enthält detaillierte Anweisungen.

Ein Tipp ist, die Ausgabe von zu überprüfen sudo lsmod | grep vbox, die die Kernelmodule für Virtualbox anzeigt - diese war anfangs leer. Hier ist die Ausgabe nach dem Fix:

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

Sobald die Kernel-Module fertig waren, musste ich nur noch laufen /usr/sbin/VBoxClient --clipboard(auf Debian 8 jessie) und die Zwischenablage fing an zu arbeiten. Die Virtualbox-Version war 4.3.30.

Die Befehle, die ich für dieses Setup ausgeführt habe (Ihre können abweichen), waren:

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

Eine systematische Möglichkeit zur Behebung dieses Problems (und möglicherweise auch anderer Probleme ) ist das Guest Additions HOWTO für Linux . Der Name des Installationsskripts hat sich seit 2009 geändert, aber das HOWTO ist immer noch sehr hilfreich und enthält Befehle für Debian / Ubuntu- und RHEL / CentOS-Distributionen.

RichVel
quelle
0

Das Problem kann dadurch verursacht werden, dass VirtualBox-Addons nicht ordnungsgemäß gestartet werden. Versuchen Sie diesen Befehl im Gastbetriebssystem:

sudo /etc/init.d/vboxadd start
Jones
quelle
Was macht dieser Befehl eigentlich für Sie? Wo würden Sie das eingeben, Windows-Host oder Linux-Gast?
Andrew Lott
@ AndrewLott Es ist offensichtlich ein Linux-Befehl ( sudound init.dSkripte). Trotzdem wäre es schön, ein bisschen mehr Erklärungen darüber zu haben, was es tut.
Slhck
Sie und ich können sagen, dass es ein Linux-Befehl ist, aber ich denke an andere Besucher, die vielleicht nicht so sicher sind.
Andrew Lott
0

Das hat bei mir funktioniert ..

Ich bin auf Linux Mint 17.1 XFCE. Das offizielle Distributionspaket unterstützt 4.3.18. Ich war auf .22 und hatte viele verschiedene Probleme, so dass ich auf .18 herabgestuft habe. Dann, nachdem ich gebootet habe, habe ich die ISO-Datei Geräte -> Gastzugaben einfügen und das .run-Installationsprogramm als root ausgeführt. Trotz der Warnung zum Erkennen einer Paketinstallationsversion konnte diese überschrieben werden. Bingo. Keine Probleme mehr mit Netzwerk & Zwischenablage. Ich denke, das Wichtigste ist, zumindest für meine Distribution, das offizielle Paket abzuspielen, aber die mit dem Client gelieferte ISO zu verwenden.

-Steve

Steve
quelle
0

Ich hatte ein ähnliches Problem: In meinem Fall wurde das Prozess / usr / bin / VBoxClient --clipboard mehrmals pro Sitzung geschlossen.

Um damit umzugehen, habe ich ein Bash-Programm erstellt:

#! /bin/bash

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

Ich habe es jedes Mal ausgeführt, wenn ich nicht mehr in der Lage war, die Zwischenablage zu verwenden.

Murval
quelle
Ich stellte fest, dass das Problem darauf zurückzuführen ist, dass VirtualBox Guest Additions nicht ordnungsgemäß installiert wurden (fehlende Abhängigkeit von Kernel-Headern usw., wodurch ein Virtualbox-Kernel-Modul nicht erstellt wurde).
RichVel