FreeBSD Daily Topics

2009年12月12日VirtualBoxでゲストOSからホストOSのDVDドライブを利用する方法

ports

How to use host CD/DVD drive by VirtualBox

freebsd-emulation mlにVirtualBox上のゲストOSからホストのCD/DVDドライブを直接利用するための方法が紹介されました。次の条件を満たすことで利用できるようになります。

  • atapicam(4)カーネルモジュールを有効にする
  • HALデーモンが動作している
  • /dev/xpt*, /dev/cd*, /dev/pass*にアクセスする権限がある

ここではVirtualBoxを利用するユーザをoperatorグループに所属させる方法で、これら条件を満たすように設定する方法を紹介します。まず、利用するユーザをoperatorグループに追加します。/etc/groupファイルを編集してoperatorグループに利用するユーザを追加します。

リスト1 /etc/groupのoperatorの行にユーザを追加
operator:*:5:root,daichi

システム起動時にatapicam(4)カーネルモジュールが読み込まれるように/etc/loader.confに設定を追加します。

リスト2 /etc/loader.confでatapicam(4)カーネルモジュールを読み込む設定
atapicam_load="YES"

/dev/xpt*、/dev/cd*、/dev/pass*にアクセスできるように/etc/devfs.ruleファイルに設定を追加します。/dev/の設定は/etc/devfs.confファイルと/etc/devfs.ruleファイルの2つが用意されており、/etc/devfs.confは起動時にのみ適用され、/etc/devfs.ruleは活線挿抜がおこなわれるような場合にも適用されます。

リスト3 /etc/devfs.confでパーミッションを設定
[localrules=10]

add path 'cd*' mode 0660 group operator
add path 'pass*' mode 0660 group operator
add path 'xpt*' mode 0660 group operator

HALデーモンが起動し、また先ほど設定した/etc/devfs.ruleが有効になるように/etc/rc.confに設定を追加します。

リスト4 /etc/rc.confにhaldとdevfs.ruleの設定を追加
hald_enable="YES"
devfs_system_ruleset="localrules"

ここでシステムを再起動するか、次のように作業してシステムを再起動した場合と同じ状況になるようにします。なお/etc/groupでoperatorグループに追加したユーザは一旦ログアウトしてからログインしておく必要があります。

# kldload atapicam
# /etc/rc.d/devfs restart

ここまで設定したあとは、VirtualBoxの設定から「CD/DVD-ROM」を選択します。これまでは選択できなかった「ホスト CD/DVDドライブ」の項目が選択できるようになっていることを確認できます。

図1 VirtualBoxでホストのDVDドライブを利用するように設定
図1 VirtualBoxでホストのDVDドライブを利用するように設定

ゲストOSからDVDドライブを操作すると、ホストのDVDデバイスが動作することを確認できます。

図2 たとえばゲストのFreeBSDからcdcontrol(1)でDVDドライブを操作してみる
図2 たとえばゲストのFreeBSDからcdcontrol(1)でDVDドライブを操作してみる

おすすめ記事

記事・ニュース一覧