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