CockpitとKVMを使用したホスト・ゲスト間のディレクトリ共有設定

CockpitとKVM(libvirt)を使用して、ホストのUbuntu上のフォルダを仮想マシン(Ubuntuゲスト)にマウントする最も高速で一般的な方法は、Virtio-FS(または9p)を使用することです。以下に設定手順をまとめます。

前提条件

  • ホストマシン: Ubuntu (Libvirt/KVMインストール済み)
  • ゲストマシン: Ubuntu (シャットダウン状態であること)
  • cockpit-machines パッケージがインストールされていること

手順1:ホスト側で共有ディレクトリの準備

まず、ホスト上で共有したいフォルダを作成し、アクセス権限を設定します。

Bash

# 共有ディレクトリの作成
mkdir -p /home/user/shared_folder

# 権限トラブルを避けるため、一旦パーミッションを全開放(運用に応じて適宜変更してください)
chmod 777 /home/user/shared_folder

手順2:Cockpitでの設定 (Virtio-FS)

  1. Cockpitを開き、「仮想マシン」をクリックします。
  2. 対象の仮想マシンがシャットダウンされていることを確認します。
  3. 仮想マシンの詳細ページを開きます。
  4. 「ファイルシステム」または「共有ディレクトリ」セクションにある「追加」ボタンをクリックします。
  5. 以下の情報を入力します。
項目設定値の例備考
ソースパス/home/user/shared_folderホスト側の絶対パス
ターゲットパス/タグshared_tagゲスト側で識別するための任意の名前
ドライバVirtio FS高性能なため推奨。不可なら 9p を選択
  1. 「追加」ボタンを押して設定を保存します。

手順3:ゲスト側 (Ubuntu) でのマウント設定

仮想マシンを起動し、ターミナルでマウント作業を行います。

1. マウントポイントの作成

Bash

sudo mkdir -p /mnt/host_share

2. 手動マウント(テスト)

手順2で設定した「タグ名(shared_tag)」を使用してマウントします。

Bash

# Virtio-FSの場合
sudo mount -t virtiofs shared_tag /mnt/host_share

# 9pを使用した場合
# sudo mount -t 9p -o trans=virtio shared_tag /mnt/host_share

3. 自動マウントの設定(永続化)

再起動後もマウントを維持するため、/etc/fstab に追記します。

Bash

sudo nano /etc/fstab

ファイルの末尾に以下の行を追加してください。

Virtio-FSの場合:

Plaintext

shared_tag  /mnt/host_share  virtiofs  defaults  0  0

9pの場合:

Plaintext

shared_tag  /mnt/host_share  9p  trans=virtio,defaults  0  0

手順4:動作確認

正しくマウントされているか確認します。

Bash

# マウント状態の確認
df -h | grep host_share

# 書き込みテスト
touch /mnt/host_share/test.txt

トラブルシューティング

[!IMPORTANT]

パーミッションエラー: ゲスト側で書き込めない場合、ホスト側でディレクトリの所有者を確認するか、chmod 777 を試して原因を切り分けてください。

Virtio-FSエラー: ゲストのカーネルが古い場合、virtiofs が動作しないことがあります。その場合は 9p を使用してください。

ログの確認: マウントに失敗する場合は、dmesg | grep virtiofs または dmesg | grep 9p でエラーの詳細を確認できます。