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


17

Обмін буфером обміну починає працювати нормально, але він припиняє роботу через деякий час (поки я не перезавантажую машину).

З того, що я розумію, іноді доповнення гостей перестають працювати. Я прочитав, що я повинен бачити, як vboxadd-timesynпрацює в моїй системі. Я перевірив ps -A | grep -i vboxі не бачу. Все, що я отримую, це:

VBoxSerive
VBoxClient
VBoxClient
VBoxClient
VBoxClient

Якщо це справді проблема, то як перезапустити службу? Якщо це не так, що ще я міг би подивитися?

Це з хостом Windows 7 та гостям Ubuntu Linux.

Відповіді:


22

Один вкладиш Linux:

pkill -f VBoxClient; VBoxClient --clipboard


Сценарій оболонки 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"     
}

Зауважте: повноваження не є моєю спеціальною сферою, тому я очікую деяких редагувань спільноти тут :)


1
Варто зазначити, що це обидва для гостя.
RichVel

Дякую, обидва вони чудово працюють! Це смокче, що зараз 3 роки по тому, і ця помилка все ще існує.
Сарк

Один лайнер Linux працював чудово, прихильно. Не спробував powerhell.
peedee

7

Як виправити спільний буфер обміну в VirtualBox

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

Буфер обміну повинен працювати після цього.


Як це працює? Опис питання - "Linux Ubuntu guest" Або ви маєте на увазі хост Windows?
Сентимент

Питання стосується гостя Linux, і VBoxTray.exe стосується лише гостя Windows.
RichVel

5

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

/ usr / bin / VBoxClient --clipboard

З'ясуйте ПІД процесу з ps та вбийте його. Після цього знову запустіть процес з вищевказаною командою, і буфер обміну знову почне працювати. Я використовую це для прикладу:

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

/ usr / bin / VBoxClient --clipboard


Дякуємо за надання рішення для копіювання / вставки! Улов: потрібно взяти superuser.com/questions/536827 у гостьовій машині, щоб можна було це скопіювати / вставити!
starlocke

Я виявив, що він VBoxClientбув встановлений /usr/sbinна Debian 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?
користувач1301428

Єдині команди, що /etc/init.d/vboxaddвиконують vboxadd,vboxadd-servicevboxadd-x11
Амеліо Васкес-Рейна

1
Я трохи погуглився, і, схоже, ця команда, можливо, була перейменована на vboxadd. Якщо це правда, ви можете спробувати запустити /etc/init.d/vboxaddта подібні команди.
користувач1301428

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) і буфер обміну почав працювати. Версія віртуальної скриньки становила 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 Devices -> Insert Guest Additions і запустив інсталятор .run як root. Незважаючи на попередження про виявлення версії для встановлення пакета, я дозволив її перезаписати. Бінго. більше немає проблем із мережею та буфером обміну. Я думаю, що головне, щонайменше, для мого дистрибутива - це відіграти офіційний пакет, але використовувати iso, що постачається з клієнтом.

-Став

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.