ProxmoxでVirtioFSを使用してVMとホストディレクトリを共有する方法

Proxmox VE 8.4以降で共有ディレクトリを作成してマウントする方法(ちょっと面倒だけど、ちゃんと動く)

ProxmoxホストとVM間で共有フォルダを設定しようとしている場合、特にProxmox VE 8.4で導入された新しいVirtIOFS機能を使用している場合、すぐには機能しない可能性があります。ええ、わかっています。LinuxとWindowsのサポートは少し…不均一です。最初はマウントが行われなかったり、追加の手順なしではVMが共有フォルダを認識しなかったりすることがあります。しかし、一度コツをつかめば、ネットワークプロトコルを必要とせずにすばやくファイルにアクセスできるようになり、ゲームチェンジャーになります。このガイドでは、ホスト上に共有ディレクトリを作成し、ProxmoxのWeb UIで設定し、LinuxおよびWindowsゲストの両方でマウントする方法について説明します。特に追加のドライバーとツールが必要なWindowsでは、ある程度の試行錯誤が予想されます。しかし、シームレスなホストとゲストのファイル共有が必要な場合は、設定する価値はあります。

Proxmox VE 8.4以降で共有ディレクトリのマウントの問題を修正する方法

ProxmoxのバージョンとVirtIOFSのサポートを確認する

もちろん、これらをすべて動作させるには、Proxmoxホストが少なくともバージョン8.4以降で動作している必要があります。最も簡単な方法は、bash # pveversion -v です。このコマンドは詳細なバージョン情報を表示します。8.4未満の場合は、まずアップデートすることをお勧めします。そうしないとVirtIOFSのサポートが利用できなくなります。また、`virtiofsd`がインストールされていることを確認してください。bash # dpkg -l | grep virtiofsd 何も表示されない場合は、インストールしてください。bash # apt update && apt install qemu-virtiofs-helper (または必要なパッケージ — おそらく `pve-guest-utils`)。

ホスト上に共有するディレクトリを作成する

これは簡単ですが、必須です。ディレクトリが存在することを確認してください:bash # mkdir -p /mnt/VMShare `-p` オプションを忘れたり、VMに追加する前にディレクトリを作成し忘れたりするケースを目にすることがあります。このフォルダが共有リソースになります。

Proxmox Web UIで共有ディレクトリを設定する

バージョン 8.4 以降では、専用のディレクトリ マッピングを作成できます。 – データセンターディレクトリ マッピング に移動します。 – 作成 または 追加 をクリックします。 – リソース名を設定し、`/mnt/VMShare` ディレクトリを指定します。 – 設定を保存します。ここで難しいのは、これを VirtIOFS 共有として VM にアタッチすることです。 – VM の電源をオフにします (まだオフになっていない場合はオフにする必要があります)。 – VM の設定で、ハードウェア追加Virtiofs に移動します。 – 新しく作成されたディレクトリを選択します。注: 一部の設定では、VM で VirtIOFS サポートが有効になっていることを確認する必要があります。これは通常、bash qm config などの VM 構成にあります。–virtio2 /mnt/VMShare ですが、Web UI を使用すれば処理できるはずです。

Linuxゲストへのマウント

Linux カーネル 5.4 以上は、VirtIOFS をすぐにサポートしますが、ドライバーがロードされていることを確認する必要があります。 bash # lsmod | grep virtiofs 何も表示されない場合は、次を試してください。 bash # modprobe virtiofs これが機能する場合は、再起動は不要です。ただし、モジュールがロードされていることを確認するために、再起動が必要になる場合があります。 共有フォルダーを一時的にマウントするには、次を実行します。 bash # mount -t virtiofs VMShare /mnt/hostshare `/mnt/hostshare` を任意のマウント ポイントに置き換えます。 永続的にマウントするには、`/etc/fstab` を編集して以下を追加します。 VMShare /mnt/hostshare virtiofs rw, relatime 0 0 次に、`mount -a` を実行してテストします。 補足: 一部のインストールでは、マウント時に「間違ったファイルシステム タイプ」や「不正なスーパーブロック」などのエラーが発生します。これは多くの場合、VirtIOFS サポートを有効にした後に VM が適切に再起動されていないために発生します。仮想デバイスは、VM の電源をオフにしてから少なくとも 1 回オンに戻した後にのみ表示されます。

Windowsゲストへのマウント

Windows のサポートはそれほどスムーズではありません。以下の手順が必要です。 – `virtio-win-0.1.271.iso` 以降の最新の Virtio ISO をダウンロードします。 – この ISO を Windows VM にマウントします。 – ISO から `virtio-win-gt-x64.msi` を実行して、VirtIO ドライバー(VirtIOFS ドライバーを含む)をインストールします。インストール後、以下のコマンドで確認する必要があります。 powershell Get-Service VirtioFsDrv Get-PnpDevice | Where-Object { $_. FriendlyName -like “*VirtioFS*” } ドライバーが適切にインストールされたら、Windows はまだ VirtIOFS をネイティブにサポートしていないため、WinFSP を使用して共有ディレクトリをマウントする必要があります。WinFSP を [こちら](https://github.com/winfsp/winfsp/releases) からダウンロードします。インストール後、`VirtioFsSvc` サービスを再起動します。 PowerShellで以下のコマンドを使用します:powershell net stop VirtioFsSvc net start VirtioFsSvc これで共有フォルダがネットワークドライブとして表示されます。これはネットワーク共有のマッピングと全く同じですが、ホストから直接渡されるVirtIOFS共有です。マシンによっては、サービスの再起動だけでは不十分な場合があり、Windows VMを完全に再起動すると問題が解決することもあります。注意: 共有VirtIOFSフォルダを持つVMのライブマイグレーションは現在サポートされていないため、それに応じた計画を立ててください。

このプロセス全体は、特に Windows では少々面倒ですが、一度慣れてしまえば、ネットワーク共有に頼ったり、ファイルをコピーしたりすることなく直接アクセスできるのは非常に便利です。

まとめ

  • Proxmox ホストが少なくともバージョン 8.4 であることを確認してください。VirtIOFS のサポートはこれに依存します。
  • ホスト上に共有ディレクトリ (`/mnt/VMShare`) を作成します。
  • Proxmox GUI でディレクトリ マッピングを設定し、VM に Virtiofs サポートを追加します。
  • VirtIOFS を有効にした後、VM を再起動し、Linux または Windows 内でマウントしてみます。
  • Windows の場合は、VirtIO ドライバーと WinFSP をインストールし、WinFSP でマウントします。

まとめ

Proxmox VE 8.4以降で共有フォルダを動作させるのは、最初は少しぎこちなく感じますが、一度つまずく部分を乗り越えれば問題なく動作します。特にWindowsのサポートに関しては完璧とは言えませんが、それでも一歩前進と言えるでしょう。もし動作すれば素晴らしいですが、もし動作しない場合は、VMの設定を確認し、VirtIOFSを有効化した後にVMが再起動されているか、そしてホストディレクトリが存在するかを再確認してください。これで数時間の作業短縮が期待できます。面倒なトラブルシューティングにも、良い兆しはあるものです。幸運を祈ります!