Совместное использование двунаправленного буфера обмена VirtualBox перестает работать через некоторое время на гостевой ОС Linux


17

Совместное использование буфера обмена начинает работать нормально, но через некоторое время перестает работать (пока я не перезагружаю машину).

Из того, что я понимаю, иногда гостевые дополнения перестают работать. Я прочитал, что я должен увидеть, vboxadd-timesynработает в моей системе. Я проверил ps -A | grep -i vboxи не вижу этого. Все, что я получаю, это:

VBoxSerive
VBoxClient
VBoxClient
VBoxClient
VBoxClient

Если это действительно проблема, как мне перезапустить службу? Если это не так, что еще я мог бы посмотреть?

Это с хостом Windows 7 и гостем Linux Ubuntu.

Ответы:


22

Линукс однострочный:

pkill -f VBoxClient; VBoxClient --clipboard


Сценарий 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"     
}

Примечание: PowerShell не является моей областью деятельности, поэтому я ожидаю, что некоторые правки сообщества будут здесь :)


1
Стоит отметить, что они оба для гостя.
RichVel

Спасибо, оба отлично работают! Это отстой, что сейчас 3 года спустя, и эта ошибка все еще существует.
Сарке

Линукс Linux работал отлично, проголосовал. Не пробовал PowerShell.
Пиди

7

Как исправить общий буфер обмена в VirtualBox

  1. В VirtualBox Windows Гость, откройте диспетчер задач
  2. Перейдите на вкладку «Процессы», выделите VBoxTray.exe и выберите «Завершить процесс».
  3. Перейдите на вкладку «Приложения» и выберите «Новая задача».
  4. Перейдите в папку установки VirtualBox Guest Additions, выберите VBoxTray.exe и нажмите OK.

Буфер обмена должен работать потом.


Как это работает? Описание вопроса «Linux Ubuntu guest» Или вы имеете в виду Windows Host?
Sentient

Вопрос касается гостя Linux, а VBoxTray.exe относится только к гостю Windows.
RichVel

5

Я обнаружил, что на гостях Linux (в моем случае Ubuntu) и хостах Windows 7 (думаю, это не имеет значения) вам просто нужно перезапустить следующий процесс на вашей гостевой машине:

/ usr / bin / VBoxClient --clipboard

Узнайте PID процесса с помощью ps и убейте его. Затем снова запустите процесс с помощью вышеуказанной команды, и буфер обмена снова начнет работать. Я использую это, например:

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

/ usr / bin / VBoxClient --clipboard


Спасибо за предоставленное решение для копирования / вставки! Подвох: нужно скопировать superuser.com/questions/536827 на гостевой машине, чтобы иметь возможность скопировать / вставить это!
старлок

Я обнаружил, что VBoxClientбыл установлен в /usr/sbinDebian 8 - это вполне может быть не по пути для пользователей без полномочий root.
RichVel

Это killдействительно многословный способ сказать pkill -f 'VBoxClient --clipboard'. Если вы не заботитесь о других услугах, вы можете простоkillall VBoxClient
raylu

1

Попробуйте запустить, vboxadd-timesyn startчтобы перезапустить службу.

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

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

Наконец, если ничего не решит проблему, я предлагаю вам открыть отчет об ошибке в Bugtracker VirtualBox самостоятельно, потому что вы не первый, у кого проблемы с общим буфером обмена.


Благодарность! Но когда я типа vboxadd-timesyn startя получаю: command not found. Какие-либо предложения?
Амелио Васкес-Рейна

Команды доступны: VBoxClient, VBoxClient-all, VBoxControlи VBoxService.
Амелио Васкес-Рейна

1
Вы можете попробовать бежать /etc/init.d/vboxadd-timesync start?
user1301428

Единственные команды комплектующие /etc/init.d/vboxaddявляются vboxadd, vboxadd-serviceиvboxadd-x11
Амелио Васкес-Рейн

1
Я немного погуглил, и похоже, что команда могла быть переименована vboxadd. Если это правда, вы можете попробовать запустить /etc/init.d/vboxaddи аналогичные команды.
user1301428

1

У меня была похожая проблема: но в моем случае процесс / usr / bin / VBoxClient --clipboard закрывался несколько раз за сеанс.

Чтобы справиться с этим, я создал программу bash:

#! /bin/bash

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

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


Я обнаружил, что проблема связана с неправильной установкой гостевых дополнений VirtualBox (отсутствует зависимость от заголовков ядра и т. Д., Из-за чего модуль ядра Virtualbox не может быть собран).
RichVel

1

Я обнаружил, что проблема связана с неправильной установкой гостевых дополнений VirtualBox (отсутствует зависимость от заголовков ядра и т. Д., Из-за чего модуль ядра Virtualbox не может быть собран).

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

Один совет - проверить вывод sudo lsmod | grep vbox, который показывает модули ядра для Virtualbox - изначально он был пустым. Вот вывод после исправления:

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

Как только модули ядра были сделаны, мне просто нужно было запустить /usr/sbin/VBoxClient --clipboard(на Debian 8 jessie) и буфер обмена начал работать. Версия Virtualbox была 4.3.30.

Команды, которые я выполнил для этой настройки (ваши могут отличаться), были:

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

Систематический способ решить эту проблему (и , вероятно , другие), чтобы пройти через HOWTO Guest Additions для Linux . Название сценария установки изменилось с 2009 года, но HOWTO по-прежнему очень полезен и предоставляет команды для дистрибутивов в стиле Debian / Ubuntu и RHEL / CentOS.


0

Проблема может быть вызвана тем, что VirtualBox Addons не запускается правильно. Попробуйте эту команду в гостевой ОС:

sudo /etc/init.d/vboxadd start

Что эта команда на самом деле делает для вас? Где бы вы это напечатали, хост Windows или гость Linux?
Эндрю Лотт

@AndrewLott Это, очевидно, команда Linux ( sudoи init.dсценарии). Но все же, иметь немного больше объяснений относительно того, что это делает, было бы хорошо.
Slhck

Мы с вами можем сказать, что это команда Linux, но я думаю о других посетителях, которые могут быть не уверены в этом.
Эндрю Лотт

0

Это то, что сработало для меня ..

Я на Linux Mint 17,1 XFCE. Официальный пакет дистрибутивов поддерживает 4.3.18. Я был на .22 и у меня было много отдельных проблем, поэтому я опустился до .18. Затем, после загрузки, я запустил «Устройства -> Вставить гостевые дополнения» iso и запустил установщик .run от имени пользователя root. Несмотря на предупреждение об обнаружении версии установки пакета, я позволил перезаписать ее. Бинго. Больше никаких проблем с сетью и буфером обмена. Я думаю, что ключевым моментом, по крайней мере для моего дистрибутива, является разыгрывание официального пакета, но использование iso, поставляемого с клиентом.

-Стив

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.