メインコンテンツへスキップ

ProxmoxでVMに音楽CDを認識させる

目次
注意

この記事は過去に書いた自分用のメモを若干変更したものです。そのため、情報が古い場合があります。ご了承ください。

記事作成日: 2025/09/04

結論
#

ProxmoxでVMに音楽CDを認識させたいと思い試行錯誤しました。

Proxmoxの標準機能を使ったり、コマンドを打ったりしてDVDドライブ単体をパススルーしようとしましたが、うまく行かなかったのでSATAコントローラごとパススルーしました。

環境
#

  • Proxmox 9.0.8
  • VM: Ubuntu 24.04

方法
#

危険

この方法はサーバのSATAコントローラ全体をパススルーするため、SATAで繋いでいる機器全てがパススルーされます。起動ディスクなど重要なストレージをSATAで接続している場合はこの操作は行わないでください。

  1. VMのハードウェアメニューをクリック

  2. 追加からPCIデバイスを選択し、RawデバイスのデバイスからSATAコントローラを選択して追加(環境によってデバイスの表示は異なります)

PCIデバイスを追加する画像

PCIデバイスを追加するウィンドウ

SATAコントローラを選択

試行錯誤の記録
#

ここからは試行錯誤の記録です。

※ 私は Proxmox 初心者です。お手柔らかに…

問題
#

DVDドライブをVMに認識させるという内容の記事を見つけまして、まずはその方法でやってみようと思いました。

はじめに試したのは以下の2つです。

  • 追加からCD/DVDドライブを選択して追加→CD/DVD物理ドライブを使用
    CD/DVDドライブを追加
    CD/DVD物理ドライブを使用
  • ノード(サーバ)のコンソールから手動でデバイスを追加 lsblkでDVDドライブを見つけた後、/etc/pve/qemu-server/<VMID>.confを編集してsata0: /dev/sr0,media=cdromを追記する方法です

2つ目の方法ではインストールディスクのような、データが入っているディスクは読み込めたのですが、音楽CDは読み込めませんでした。

原因
#

試してみた2つの方法では、VM 上からは QEMU DVD-ROM のように認識され、ejectの操作等も効かない状態でした。挙動を見ている感じでは、VM 起動時に入っていたディスクの情報がマウントされるように見えました。

しかしこれではCDを読み込めていませんし、VM 起動中に CD を差し替えることもできなさそうです。

音楽CDはデータ用CDと異なりファイルシステムを持たないらしいのですが、これが起動時ですら読み込めない原因になっているのではないかと思います。(音楽CDはマウントできないということを知らずにひたすらmountでマウントしようとしていたのは内緒です)

試行錯誤
#

QEMU経由ではなく、もっと直接パススルーできたらな…と、Geminiに聞きながらいろいろ試してみました。

  • コンソールでls -l /dev/disk/by-idでデバイスの名前を確認した後、qm set <VMID> -sata0 /dev/disk/by-id/ata-*******とコマンドを入力してデバイスを追加する
  • コンソールから手動でデバイスを追加する際、sataだけではなくidescsiとして追加する
  • /dev/sr0ではなく汎用SCSIデバイス名の/dev/sg0のような名前で登録する
  • media=cdromをつけたりつけなかったり
  • passthrough=1をつけたりつけなかったり

なんかいろいろやってみたものの、VMから認識できなくなったり、最初と同じようにQEMU DVD-ROMとして認識されたり……

結局、DVDドライブを単体でパススルーして音楽CDをVM上から読み込めるようにすることはできず、直接SATAコントローラをパススルーすることで(無理やり)解決しました。

妥協
#

SATAコントローラを直接パススルーすると、SATAで接続している全てのデバイスがVM側に繋がれた状態になるので、あまり良くない状況ではあります。

私の使用環境では問題なかったのですが、SATAで起動ディスクを繋いでいるとか、絶対にVMを分けなければならないものをSATAで繋いでいるとか、そういった場合には今回の方法は取れないので、あまり解決法としてはうまくないですね…

別案
#

一応、CPUが ACS (Access Control Services) という機能に対応していれば IOMMU グループを分離して、デバイスを個別に割り当てできるかも(?)との情報もあったのですが、私が使っているCPUでは対応していませんでした。

具体的な対応表は見つけられなかったのですが、Xeonとか、Alder Lake (12世代) 以降の Intel CPUとか、AMD CPUとかは対応しているっぽい(?)(リンク)ので、それらのCPUを使っている場合は IOMMU の分離で解決できるかもしれません。

詳しく調べられてないですが……

感想
#

つい最近Proxmoxを触り始めたのですが、なんか意味不明なところでつまずいてますねwww

まあそんなもんですよ

おもろいね

参考
#

\ 魂こめて記事書いてます!よかったらシェアしてね! /