LoginSignup
3
6

More than 5 years have passed since last update.

VirtualBox共有フォルダーをArch Linuxゲストで利用する

Last updated at Posted at 2018-10-23

Arch Linuxをゲストマシンにインストールしている場合に、VirtualBoxの共有フォルダーを利用する方法を説明します。

VirtualBoxでは、ゲストマシンにGuest Additionsをインストールすることで、ホストマシンのフォルダーをゲストマシンと共有できます。Guest AdditionsのインストールはArch Linuxの場合、次の2種類の方法があります。

  • Guest Additions CDイメージの挿入
  • pacmanで、virtualbox-guest-utilsまたはvirtualbox-guest-utils-noxパッケージをインストール

Guest Additions CDイメージの挿入では、Guest AdditionsのバージョンがVirtualBox本体に常に対応していることが利点になります。私は、こちら方法で正常に共有フォルダーが使えるようになりました。

pacmanを使う場合のインストール方法は、Arch Wikiに記載されています。ただし私は、こちらの方法では共有フォルダーは使えませんでした。

そこで、Guest Additions CDイメージの挿入からインストールします。

ホストマシンでの共有フォルダーの設定

ホストマシンでVirtualBoxの画面から、共有フォルダーを設定してください。

  1. VirtualBoxマネージャーを起動します。VirtualBoxマネージャーの画面が表示されます
  2. 共有フォルダーを設定したいゲストマシンを選択します。
  3. [設定]をクリックします。選択したゲストマシンの設定画面が開きます。
  4. [共有フォルダー]タブをクリックします。共有フォルダーの項目が表示されます。
  5. [+]をクリックします。追加する共有フォルダーを設定する画面が開きます
  6. 追加する共有フォルダーを設定します
    • [フォルダーのパス]で共有したいフォルダーを選択します
    • [フォルダー名]を入力します。この名前は、ゲストマシンでマウントする場合などに使います。ここでは、hogeとします
    • [読み込み専用]は、必要に応じてチェックを入れます。チェックを入れた場合、共有フォルダーへのゲストマシンからの書き込みはできなくなります。
    • [自動マウント]はチェックを入れないままにします
    • [永続化する]はチェックを入れます。入れない場合は一時的な共有フォルダーとなり、ゲストマシンのシャットダウン時に設定が無効になります
  7. [OK]をクリックします。ゲストマシンの設定画面に戻ります
  8. [OK]をクリックします。ホストマシン側で共有フォルダーが設定され、VirtualBoxマネージャーの画面に戻ります

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

Guest Additionsをインストールするためには、ゲストマシンにbase-develグループのパッケージと、linux-headersパッケージが必要です。これらのパッケージをpacmanでインストールします。以下、ゲストマシンでの作業はrootユーザーとして行います。

[root@archlinux ~]# pacman -S linux-headers
[root@archlinux ~]# pacman -S base-devel --needed

Guest Additions CDイメージの挿入

ホストマシンで、VirtualBoxゲストマシンのウィンドウのメニューバーから[デバイス-Guest Additions CDイメージの挿入]を選択します。

Guest Additions CDイメージがゲストマシンに挿入されます。

CDイメージのマウント

ゲストマシンでCDイメージをマウントします。ここでは、/mnt/dvdromをマウント先にします。

[root@archlinux ~]# mount 

CD-ROMのデバイス名の確認

lablkコマンドで、CD-ROMのデバイス名を確認します。

[root@archlinux ~]# lsblk
実行結果
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda  8:0    0    8G  0 disk
|-sda1   8:1    0  511M  0 part /boot
`-sda2   8:2    0  7.5G  0 part /
sr0 11:0    1 55.3M  0 rom

この場合は、sr0がCD-ROMのデバイス名です。

マウント先ディレクトリーの作成

マウント先のディレクトリーがない場合は作成します。

[root@archlinux ~]# mkdir /mnt/dvdrom

マウントの実行

mountコマンドにCD-ROMのデバイス名とマウント先を指定し、マウントを実行します。

[root@archlinux ~]# mount /dev/sr0 /mnt/dvdrom
実行結果
mount: /mnt/dvdrom: WARNING: device write-protected, mounted read-only.

マウントの確認

lsコマンドで、マウントが正常にできたかを確認します。

[root@archlinux ~]# ls /mnt/dvdrom
実行結果
32Bit        TRANS.TBL               VBoxWindowsAdditions-x86.exe  runasroot.sh
64Bit        VBoxLinuxAdditions.run      VBoxWindowsAdditions.exe
AUTORUN.INF  VBoxSolarisAdditions.pkg        autorun.sh
OS2      VBoxWindowsAdditions-amd64.exe  cert

Guest Additionsの実行

Linux用のGuest Additionsインストール実行ファイルであるVBoxLinuxAdditions.runを実行します。

[root@archlinux ~]# sh /mnt/dvdrom/VBoxLinuxAdditions.run
実行結果
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.2.20 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 5.2.20 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.  This may take a while.
VirtualBox[Guest^Additions: Running kernel modules will not be replaced until the system is restarted
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: modprobe vboxsf failed

最終行の「VirtualBox Guest Additions: modprobe vboxsf failed」は正常にインストールが完了した場合でも表示されるようです。

ゲストマシンの再起動

インストールが完了したら、ゲストマシンを再起動します。

[root@archlinux ~]# reboot

フォルダーの共有

vboxadd-serviceの状態確認

コンピューターの再起動後、vboxadd-serviceの状態を確認します。

[root@archlinux ~]# systemctl status vboxadd-service
実行結果
vboxadd-service.service
   Loaded: loaded (/opt/VBoxGuestAdditions-5.2.20/init/vboxadd-service; enabled; vendor preset: dis...
   Active: active (running) since Tue 2018-10-23 08:24:34 UTC; 1min 32s ago
  Process: 329 ExecStart=/opt/VBoxGuestAdditions-5.2.20/init/vboxadd-service start (code=exited, st...
    Tasks: 8 (limit: 1140)
   Memory: 1.9M
   CGroup: /system.slice/vboxadd-service.service
       `-340 /usr/sbin/VBoxService --pidfile /var/run/vboxadd-service.sh

Oct 23 08:24:34 archlinux systemd[1]: Starting vboxadd-service.service...
Oct 23 08:24:34 archlinux vboxadd-service[329]: vboxadd-service.sh: Starting VirtualBox Guest Addit...
Oct 23 08:24:34 archlinux vboxadd-service.sh[332]: Starting VirtualBox Guest Addition service
Oct 23 08:24:34 archlinux vboxadd-service.sh[339]: VirtualBox Guest Addition service started
Oct 23 08:24:34 archlinux systemd[1]: Started vboxadd-service.service

Active: active (running)と表示される場合は、vboxadd-serviceが正常に動作しています。

マウント先ディレクトリーの作成

ここでは、/mnt/vboxをマウント先のディレクトリーにします。マウント先のディレクトリーがない場合は作成します。

[root@archlinux ~]# mkdir /mnt/vbox

マウントの実行

mountコマンドにCD-ROMのデバイス名とマウント先を指定し、マウントを実行します。hogeは、ホストマシンでの共有フォルダーの設定で[フォルダー名]に入力した値です。また、オプションでファイルの所有者IDや所有グループIDを指定できます。指定しない場合、所有者と所有グループはrootになります。

[root@archlinux ~]# mount.vbox hoge /mnt/vbox -o uid=1000,gid=1000

マウントの確認

lsコマンドで、マウントが正常にできたかを確認します。

[root@archlinux ~]# ls /mnt/vbox

正常にマウントできた場合、共有フォルダーにあるファイルやフォルダーが表示されます。

自動マウントの設定

Arch Linux起動時に共有フォルダーが自動でマウントされるようにするには、/etc/fstabに次の記述を追加します。

/etc/fstab(一部)
# VBox Share Folder
hoge     /mnt/vbox   vboxsf    nofail,uid=1000,gid=1000   0    0

hogeはホストマシンでの共有フォルダーの設定で[フォルダー名]に入力した値、/mnt/vboxはマウント先のディレクトリーです。

nofailは、共有フォルダーをマウントできない場合には無視することを意味します。この指定がないと、共有フォルダーがマウントできない場合にArch Linuxが正常に起動できなくなります。私の場合、VirtualBoxのバージョンアップ時にGuest Additionsが起動できなくなり、Arch Linuxが起動できなくなったことがありました。

まとめ

VirtualBoxでは、Guest Additions CDイメージの挿入からGuest Additionsをゲストマシンにインストールすることでホストマシンとファイル共有できます。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6