回答:
仮想マシンの作成時にCDROMを定義しなかった場合、次のコマンドを実行して、実行中のドメイン(仮想マシン)にデバイスを接続できます。
virsh attach-disk testbed /dev/sr0 hdc --type cdrom
既にCDROMを定義していて、ISOイメージを指している場合、私の経験では、同じコマンドを実行できます。hdc
一部はあなたが持っているブロックデバイス一致する必要があるtestbed
仮想マシンを。
もう一度ISOイメージを指すようにしたい場合は/dev/sr0
、次のようにホスト上のファイル名に置き換えます
virsh attach-disk testbed ~/virtio-win-0.1-22.iso hdc --type cdrom
ドキュメントではの使用を推奨しvirsh update-device
ていますが、次のようなXML定義を作成するのは大変です。
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sr0'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
この方法を使用している場合は、そのようなものをファイルに保存して(たとえば~/cdrom-real.xml
)、起動します:
virsh update-device testbed ~/cdrom-real.xml
virsh detach-disk testbed hdc
、得ましたerror: unsupported configuration: This type of device cannot be hot unplugged
。
detach-disk
停止した仮想マシンでは機能しません。CDを完全にvirsh edit testbed
削除するには、マシンが停止している間に使用disk
し、cdromを定義している要素を削除する必要があります。vi
エディターのエキスパートでない場合はexport EDITOR=nano
、編集コマンドを実行する前に実行してください。
virshのqemu-monitor-commandを使用して、ejectおよびchangeコマンドをqemuに渡します。
最初に「情報ブロック」を使用して、cdromのqemuのデバイス名を取得します。
virsh # qemu-monitor-command mirage --hmp --cmd "info block"
drive-virtio-disk0: type=hd removable=0 file=/home/daoist/mirage/mirage.qcow2 ro=0 drv=raw encrypted=0
drive-ide0-0-0: type=cdrom removable=1 locked=0 file=/home/daoist/iso/en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso ro=1 drv=raw encrypted=0
だから私の場合、私はdrive-ide0-0-0に興味があります。したがって、ディスクを変更するには、次の操作を行います。
virsh # qemu-monitor-command mirage --hmp --cmd "eject drive-ide0-0-0"
virsh # qemu-monitor-command mirage --hmp --cmd "change drive-ide0-0-0 /path/to/new.iso"
virsh #
別の方法で渡さない限り正しく動作しないBluRayプレーヤーを通過していました。この記事に基づいて私がそれをどのように行ったかを以下に示します。
https://lime-technology.com/forums/topic/33851-blu-ray-dvd-rom-passthrough/
SCSI番号を検索:
lsscsi
[root@kvmatrix ~]# lsscsi
[#:0:0:0] cd/dvd HL-DT-ST BD-RE WH14NS40 1.03 /dev/sr0
ドメインXMLを編集して、これを追加します。
注:scsi_host#をlssciにある#に置き換えます
<controller type='scsi' index='0' model='virtio-scsi'/>
<hostdev mode='subsystem' type='scsi'>
<source>
<adapter name='scsi_host#'/>
<address type='scsi' bus='0' target='0' unit='0'/>
</source>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</hostdev>
virsh editがエラーを出したため、XMLを強制的に受け入れなければなりませんでした。iを押してから、vmを再起動してテストします。
マウント-t iso9660 / dev / sr0 / media
/ devディレクトリのcdromに設定されているデバイスを使用できます。また、/ dev / cdromは、ほとんどのLinuxシステムの適切なデバイスへのリンクです。-tはマウントするデバイスのタイプを表し、iso9660はcdromメディアのユニバーサルタイプです。
マウントポイントは、明らかに必要なものであれば何でもかまいませんが、存在することを確認してください。