Ubuntu 22.04 KVM + VirtFS でホストとゲスト間のファイルを共有する
KVMのホストとゲストでファイル共有Ubuntu 20.04 KVM + VirtFS でホストとゲスト間のファイルを共有する
Ubuntu 22.04でも同じ手順で共有できるか確認。
QEMUのパーミッション設定
QEMUのパーミッション設定を変更しないと、共有ディレクトリのファイル読み込みはできるが、
書き込みが行えない状態となります。
QEMUの設定を変更し、rootではなくホストOSにログインしているユーザー権限で実行するよう修正します。
$ sudo vi /etc/libvirt/qemu.conf
変更内容は、user, groupの2箇所です。
# Some examples of valid values are:
#
# user = "qemu" # A user named "qemu"
# user = "+0" # Super user (uid=0)
# user = "100" # A user named "100" or a user with uid=100
#
#user = "root"
user = "[ホストOSにログインしているユーザー名]"
# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
#group = "root"
group = "libvirt"
ハードウェアの追加
事前に共有を行うゲストOSをシャットダウンしておきます。
vert-managerのゲストOSの設定から、「ハードウェアを追加」を選択。

ドライバー:virtio-9p
ソースパス:共有したいホストOSのパス
ターゲットパス:ゲストOSでマウント時に使用する名称

追加すると、ゲストOSのデバイスに「ファイルシステム (ターゲットパスの名称)」の項目が追加されます。

今回、ホストOSのパスは「/home/user/dev」
ターゲットパスは「dev」
としました。
ゲストOSにマウントポイントの追加
ゲストOSを起動し、適当にマウントポイントを作成します。
$ mkdir -p /home/user/dev
ゲストOSで以下のコマンドでマウントを実行
$ sudo mount -t 9p -o trans=virtio [ターゲットパス] [作成したマウントポイント]
今回の例だとこうなりました。
$ sudo mount -t 9p -o trans=virtio dev /home/user/dev
ゲストOSの「/home/user/dev」を見てみると、ホストOSの「/home/user/dev」にあるファイルが閲覧、編集できました。
/etc/fstab によるマウントの自動化
ゲストOS起動時、自動的にマウントされるようfstabを編集します。
$ sudo vi /etc/fstab
ファイル末尾に以下の内容を追記します。
[ターゲットパス] [ゲストOSのマウントポイント] 9p trans=virtio,version=9p2000.L,nobootwait,rw,_netdev 0 0
今回の例だと
dev /home/user/dev 9p trans=virtio,version=9p2000.L,nobootwait,rw,_netdev 0 0
となります。
リブートして動作確認。
$ sudo reboot
自動的にマウントできました。
- 関連記事
-
- MIRACLE LINUX 9 nginx + php 8.0の動作環境を作成する
- MIRACLE LINUX 9をUbuntu KVM上にインストールする
- Ubuntu 22.04 KVM + VirtFS でホストとゲスト間のファイルを共有する
- Ubuntu Server 22.04の日本語化
- KVM上にUbuntu Server 22.04をインストールする
コメント