共有フォルダーを使用しているため、その機能をサポートするには、仮想マシン内にVirtualBox Guest Additionsをインストールする必要があります。
浮浪者
Vagrant(OS X :)を使用している場合は、次のコマンドをbrew cask install vagrant
実行します。
vagrant plugin install vagrant-vbguest
vagrant vbguest
失敗した場合は、ログを確認してください。
vagrant ssh -c "cat /var/log/vboxadd-install.log"
カーネルヘッダーファイルが不足しているだけかもしれません。
VM
VM内で、ゲスト追加機能、カーネルヘッダーをインストールしてサービスを開始し、カーネル拡張が実行されているかどうかを再確認する必要があります。
これはゲストOSに依存するため、簡単な手順は次のとおりです。
カーネルインクルードヘッダーをインストールします(VBoxLinuxAdditionsで必要)。
- RHEL:
sudo apt-get update && sudo apt-get install kernel-devel
- CentOS:
sudo yum update && sudo yum -y install kernel-headers kernel-devel
Guest Additionsをインストールします(これはオペレーティングシステムによって異なります)。
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内にisoファイルをダウンロードして手動で(例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がすでにインストールされていることを前提としています(上記を参照)。
共有フォルダのマウントが機能しない最も一般的な理由は、失敗したGuest Additionsモジュールの構築に関連している可能性があります。であれば/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
カーネルディレクトリが存在するかどうかを確認します(シンボリックリンクは既存のフォルダーを指します)。そうでない場合は、適切なフォルダにインストールしてください(例:)/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