VirtualBoxにとりあえずインストールしたCentOSを少し便利にしておく

前の記事(VirtualBoxにCentOSをとりあえずインストール)で作成したVirtualBoxCentOS環境をもう少し便利にしておく。

yumリポジトリの追加

サードパーティが提供している
・epel
・rpmforge
・remi
yumリポジトリを追加する。

rpmコマンドでリポジトリをインストール。

# rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
CentOS6/64bit用のインストールです。CentOS5や32bitをお使いの場合は、それ用のrpmを指定してください。
ファイルがなかったりした場合は、各ページを直接チェック見て最新を確認して下さい。
http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/
http://pkgs.repoforge.org/rpmforge-release/
http://rpms.famillecollet.com/enterprise/

設定ファイルを編集し

# vi /etc/yum.repos.d/epel.repo
# vi /etc/yum.repos.d/rpmforge.repo
# vi /etc/yum.repos.d/remi.repo
enable=1

になっている箇所を全て

enable=0

に書き換える。

以上で、yumコマンドのenablerepoオプションにリポジトリ名を指定することで、
サードパーティyumリポジトリが使えるようになる

# yum --enablerepo=epel install XXXX
# yum --enablerepo=rpmforge install XXXX
# yum --enablerepo=remi install XXXX

Guest Additionのインストール

Guest Additionをインストールする。

先に、必要なパッケージをインストールしておく。

# yum install gcc kernel-devel make perl

VirtualBoxVMのメニュー[Devices]-[Insert Guest Addition CD image...]で
Guest AdditionのCDをセット、

CDドライブをマウントする。

# mkdir /media/cdrom
# mount -r /dev/cdrom /media/cdrom

Guest Additionをインストール。

# cd /media/cdrom
# ./VBoxLinuxAdditions.run

だが、エラーが発生。

Building the main Guest Additions module                   [失敗]
(Look at /var/log/vboxadd-install.log to find out what went wrong)

下記の記事を参考にして、

VM上のCentOS6.4にGuest Additionをインストール | ぼくのあたまのしくみ
http://mtb-production.info/2013/06/06/1032/

下記のコマンドを実施。

# yum --enablerepo=epel install dkms
# yum update kernel*
# reboot
(ログインし直す)
# export KERN_DIR=/usr/src/kernels/2.6.32-431.1.2.0.1.el6.x86_64/

※「2.6.32-431.1.2.0.1.el6.x86_64」の部分は環境によって違うので、各環境のディレクトリを指定してください。

改めて、Guest Additionをインストール。

# mount -r /dev/cdrom /media/cdrom
# cd /media/cdrom
# ./VBoxLinuxAdditions.run

うまくいった。

Building the main Guest Additions module                   [  OK  ]

OpenGLとかは失敗してるけど気にしない。

共有フォルダを設定する場合

Guest Additionをインストールすると、共有フォルダーの機能が使えるようになる。

共有フォルダーは、VirtualBoxの設定の[共有フォルダー]から追加することができる。

ホストOS側のフォルダーのパスを選択し、フォルダー名を指定してOKを押す。

「自動マウント」をONにした場合

自動で「/media/sf_フォルダー名」にマウントされる。
例えば、「share」というフォルダー名で共有フォルダを自動マウントした場合は、下記のようにsf_shareにマウントされる。

$ ls -l /media/
drwxrwx---   1 root vboxsf  102 1231 20:42 2013 sf_share

ただ、所有者がroot:vboxsfになるので、アクセスしたい場合は、rootでアクセスするか、もしくは、ユーザを「sudo usermod -G vboxsf ユーザー名」でvboxsfグループに追加する必要がある。
※usermodの変更はログインし直さないと有効にならないので注意。

【補足】
・「読み取り専用」をONにすると、ゲストOSから更新ができなくなる。
・仮想マシンの起動中に共有フォルダーを追加しようとすると「永続化する」のチェックボックスがでる。
 チェックを入れないと、「一時的な共有フォルダ」となり、次回から共有されなくなる。
「自動マウント」をOFFにした場合

手動でマウントする必要がある。
mountコマンドでマウントできる。

mount -t vboxsf フォルダー名 マウント先ディレクトリ

例えば、「share」というフォルダー名で追加した共有フォルダを
「/var/www/share」にマウントする場合、下記のように指定する。

$ sudo mkdir /var/www/share
$ sudo mount -t vboxsf share /var/www/share

ただし、上記のコマンドだと、マウントされたディレクトリの
所有者はroot:rootになってしまう。

$ ls -l /var/www/
drwxr-xr-x 1 root root  102 1231 20:42 2013 share

所有者変更したい場合は、uidとgidを指定すると変更できる。

mount -t vboxsf -o uid=ユーザーID,gid=グループID フォルダー名 マウント先ディレクトリ

ユーザーIDとグループIDはidコマンドで確認できる。

$ id

例えば、自分の環境では、uidもgidも500だったので、下記のような指定になる。

$ sudo mount -t vboxsf -o uid=500,gid=500 share /var/www/share

さらに、権限も変更したい場合は、dmodeとfmodeを指定すると変更できる。
dmodeはディレクトリの権限で、fmodeはファイルの権限。
例えば、両方共777に変更する場合は、下記のように指定する。

$ sudo mount -t vboxsf -o uid=500,gid=500,dmode=0777,fmode=0777 share /var/www/share

サーバ起動時に常にマウントしたい場合は、mountコマンドをrc.localに追加すればOK。

$ sudo vi /etc/rc.local
mount -t vboxsf -o uid=500,gid=500,dmode=0777,fmode=0777 share /var/www/share