もともと共有フォルダとして使用していた場所がサーバを再起動したことで、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]: *** [/tmp/vbox.0/vboxvideo_drm.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxvideo] 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のコマンドを入力しました。
(あまり良い方法ではないと思うけども)
これで設定が完了です。