Ви використовуєте папки спільного доступу, тому вам потрібно встановити додатки для гостей VirtualBox всередині вашої віртуальної машини, щоб підтримувати цю функцію.
Бродячий
Якщо ви використовуєте Vagrant (OS X :)brew cask install vagrant
, запустіть:
vagrant plugin install vagrant-vbguest
vagrant vbguest
У разі невдачі перевірте журнали, наприклад
vagrant ssh -c "cat /var/log/vboxadd-install.log"
Можливо, вам просто не вистачає файлів заголовка ядра.
ВМ
Всередині VM слід встановити додатки для гостей, заголовки ядра та запустити службу та двічі перевірити, чи працює розширення ядра.
Це залежить від гостьової операційної системи, тому ось короткі кроки:
Встановити ядро включає заголовки (необхідні VBoxLinuxAdditions).
- RHEL:
sudo apt-get update && sudo apt-get install kernel-devel
- CentOS:
sudo yum update && sudo yum -y install kernel-headers kernel-devel
Встановіть додатки для гостей (це залежить від операційної системи).
Ubuntu: sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso
Якщо ви не можете знайти його, перевірити з допомогою aptitude search virtualbox
.
Debian :sudo apt-get -y install build-essential module-assistant virtualbox-ose-guest-utils
Якщо ви не можете знайти його, перевірити з допомогою dpkg -l | grep virtualbox
.
вручну, завантаживши ізофайл всередині VM (наприклад wget
) та встановивши його, наприклад
wget http://download.virtualbox.org/virtualbox/5.0.16/VBoxGuestAdditions_5.0.16.iso -P /tmp
sudo mount -o loop /tmp/VBoxGuestAdditions_5.0.16.iso /mnt
sudo sh -x /mnt/VBoxLinuxAdditions.run # --keep
Додаткова налагодження: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run
Двічі перевірте, чи розширення ядра запущено:
Запуск / перезапуск послуги:
- вручну:
sudo /opt/VBoxGuestAdditions*/init/vboxadd setup
(додати sudo sh -x
до налагодження)
- Debian:
sudo /etc/init.d/vboxadd-service start
- Fedora:
sudo /etc/init.d/vboxdrv setup
- CentOS:
sudo service VBoxService start
Побудова основного модуля додатків для гостей
Якщо вище не спрацювало, ось більш складні кроки, щоб виправити це. Це передбачає, що ви вже встановили VBoxGuestAdditions (як показано вище).
Найпоширеніша причина, по якій монтажу спільної папки не працює, може бути пов’язана зі збоєм модуля доповнень для гостей. Якщо у /var/log/vboxadd-install.log
вас є така помилка:
Заголовки для поточного запущеного ядра не знайдено.
це означає, що або ви не встановили джерела ядра, або їх неможливо знайти.
Якщо ви встановили їх уже, як зазначено вище, запустіть цю команду:
$ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN
+ KERN_VER=2.6.32-573.18.1.el6.x86_64
+ KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build
Таким чином, vboxadd
сценарій очікує, що джерела вашого ядра будуть доступні в наступному режимі:
ls -la /lib/modules/$(uname -r)/build
Перевірте, чи існує dir ядра (символічне посилання вказує на існуючу папку). Якщо це не так, встановіть їх у потрібну папку (наприклад, в /usr/src/kernels
).
Таким чином, vboxadd
сценарій може увійти у ваш каталог джерела ядра та запустити make kernelrelease
, отримати значення та порівняти з вашою поточною версією ядра.
Ось логіка:
KERN_VER=`uname -r`
KERN_DIR="/lib/modules/$KERN_VER/build"
if [ -d "$KERN_DIR" ]; then
KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
return 0
fi
fi
Якщо версія ядра не відповідає джерелам, можливо, вам доведеться оновити ядро Linux (на випадок, якщо джерела новіші за ваше ядро).
CentOS
Спробуйте:
vagrant plugin install vagrant-vbguest vagrant vbgues
Якщо не виходить, спробуйте виконати наступні вручну дії для CentOS:
$ sudo yum update
$ sudo yum install kernel-$(uname -r) kernel-devel kernel-headers # or: reinstall
$ rpm -qf /lib/modules/$(uname -r)/build
kernel-2.6.32-573.18.1.el6.x86_64
$ ls -la /lib/modules/$(uname -r)/build
$ sudo reboot # and re-login
$ sudo ln -sv /usr/src/kernels/$(uname -r) /lib/modules/$(uname -r)/build
$ sudo /opt/VBoxGuestAdditions-*/init/vboxadd setup