仮想環境IT

CentOS VirtualBox 共有フォルダが参照できなくなった時の対処法

もともと共有フォルダとして使用していた場所がサーバを再起動したことで、CentOSから参照できなくなってしまいました。 しばらくサーバ起動したままだったので、いつ外れたのかもわかりません笑 ということで、再設定したときの手順をご紹介します。 環境は以下のような感じです。 CentOS 7.6.1810 VirtualBox 4.3.12

再設定

デバイス > 共有フォルダの設定を開きます。 …とここで、Guest Additionsがインストールされていないよ的なメッセージがでているのですが、私は最初無視しました笑 おそらく、以前はインストールされている状態にあったのですが、何かの拍子で消えてしまったらしく、再インストールが必要なようです。

Guest Additionsをインストールする

デバイス > Guest AdditionsのCDイメージの挿入 GuestAdditionをマウント

sudo mkdir -p /mnt/cdrom
sudo mount -r /dev/cdrom /mnt/cdrom/

必要なパッケージをインストール

sudo yum install -y bzip2 gcc make kernel-devel kernel-headers dkms gcc-c++

GuestAdditionsをインストール

sudo sh /mnt/cdrom/VBoxLinuxAdditions.run

この時点では以下のようなエラーが返ります。 Building the main Guest Additions module [失敗] (Look at /var/log/vboxadd-install.log to find out what went wrong) ログを確認しろと言われるので、確認

vi /var/log/vboxadd-install.log

ctrl + G で最下部へ行くと、以下のようなメッセージが。 cc1: some warnings being treated as errors make[2]: *** Error 1 make[1]: *** [_module_/tmp/vbox.0] Error 2 make: *** Error 2 Creating user for the Guest Additions. Creating udev rule for the Guest Additions kernel module. エラーメッセージを調べていたら、この記事にたどりつきました。https://senooken.jp/blog/2015/06/02/ 記事を参考にし、memobj-r0drv-linux.cのソースコードを修正します。

cd /opt/VBoxGuestAdditions-4.3.12/src/vboxguest-4.3.12/vboxguest/r0drv/linux
sudo vi memobj-r0drv-linux.c

1536, 1541行目 変更前 ~ KERNEL_VERSION(3, 13, 0) 変更後 ~ KERNEL_VERSION(3, 10, 0) を書き換え /を使うと、後ろに対して検索を行えます。 Guest Additionをもう一回インストールしてみましょう

sudo /etc/init.d/vboxadd setup

今度は先ほどのエラーが消え、新たにBuilding the OpenGL support moduleがエラーになりましたが、これは問題ないので、無視して大丈夫です。 再起動

sudo reboot

共有フォルダをマウントする sudo mount -t vboxsf  共有フォルダの設定 共有フォルダ名 共有フォルダの設定 は、以下の画像のフォルダ名で設定した名前です。

共有フォルダ名 は、Linux内で、共有フォルダとしたいフォルダ名を入力します。 もし、mounting failed with the error protocol error というエラーが返った場合は、 共有フォルダ設定の「自動マウント」にチェックが入っていると思うので、外してください。 マウントが成功しましたら、フォルダ共有できているか確かめてください。 しかし、このままでは、サーバを再起動した際に、マウントが解除され、毎回コマンドを叩かねばなりません。 そこで、私は.bash_profileにmountのコマンドを入力しました。 (あまり良い方法ではないと思うけども) これで設定が完了です。