Posted at

virt-manager(KVM)で共有フォルダを使うには(Ubuntu15)

More than 3 years have passed since last update.

virt-manager、もしくはvirt-installで作成した仮想マシンとディレクトリを共有するにはNFS(Network File System)を使う。


NFSインストール

ホスト

$ sudo apt-get install nfs-common nfs-kernel-server

ゲスト

$ sudo apt-get install nfs-common


ホストの設定

共有するディレクトリを /etc/exportsに書く。

書式: パス マウントを許可するアドレス(オプション)

$ cat /etc/exports

/dir/path 192.168.122.0/24(rw,sync,no_subtree_check,fsid=0)
$ sudo exportfs -rav #設定反映

オプションのfsid=0/dir/pathをルートとして扱うという意味。

読み取り専用にしたいときはrwroにすればいい。

ファイアウォールを使っているなら下記の方法で使用するポートを確認して開放する。

$ rpcinfo -p

筆者の環境(ufw)の場合は。

sudo ufw allow from 192.168.122.0/24 to any port 111

sudo ufw allow from 192.168.122.0/24 to any port 2049
sudo ufw allow from 192.168.122.0/24 to any port 48218 proto udp
sudo ufw allow from 192.168.122.0/24 to any port 38309 proto tcp
sudo ufw allow from 192.168.122.0/24 to any port 48900 proto udp
sudo ufw allow from 192.168.122.0/24 to any port 41747 proto tcp


ゲストの設定

とくに設定は必要ないのであとはマウントするだけ。

192.168.1.2をホストだとすると。

ホストで公開されてるディレクトリを表示。

実行しても応答がない場合はファイアウォールで阻まれている可能性がある。

$ showmount -e 192.168.1.2

ホストで公開されているルートディレクトリをマウント。

/etc/exportsfsid=0が設定されているディレクトリがルートになる。

$ sudo mount 192.168.1.2:/ /mnt

再起動しても自動でマウントしたい場合は/etc/fstabを編集する。

今回の場合は下記の出力の最後の行を追記すればいい。

$ cat /etc/fstab

/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda2 none swap sw 0 0
192.168.1.2:/ /mnt nfs4 rsize=8192,wsize=8192,timeo=14,_netdev 0 0