Frage Wie verbinde ich ein CD-ROM-Gerät mit einer kvm / qemu-Domäne (mithilfe von Befehlszeilentools)?


Ich habe eine virtuelle Maschine mit Windows XP auf meinem Ubuntu-Laptop eingerichtet. Verwendung der virt-manager GUI - Anwendung kann ich eine CD in mein Laufwerk einlegen und gehe zu Details → IDE CDROM 1 und klicke auf die Connect Taste. Dann wird die CD in meiner virtuellen Maschine verfügbar.

Wie kann ich dasselbe über die Befehlszeile tun? Offensichtlich möchte ich auch die Verbindung zur Befehlszeile trennen können.

Hinweis: Ich kann die VM über die Befehlszeile mit starten virsh start testbed (Testbed ist der Name der Domäne / VM).


22
2018-03-26 10:14


Ursprung




Antworten:


Wenn Sie beim Erstellen Ihrer virtuellen Maschine keine CD-ROM definiert haben, können Sie das Gerät sogar an eine aktive Domäne (virtuelle Maschine) anfügen, indem Sie den folgenden Befehl ausführen:

virsh attach-disk testbed /dev/sr0 hdc --type cdrom

Wenn Sie bereits eine CD-ROM definiert haben, aber auf ein ISO-Image verwiesen haben, können Sie nach meiner Erfahrung immer noch denselben Befehl ausführen. Das hdcTeil muss mit dem Blockgerät übereinstimmen, das Sie in der testbed virtuelle Maschine.

Wenn Sie erneut auf ein ISO-Image zeigen möchten, ersetzen Sie es /dev/sr0 zum Dateinamen auf dem Host, etwas wie

virsh attach-disk testbed ~/virtio-win-0.1-22.iso hdc --type cdrom

Die Dokumentation schlägt vor zu verwenden virsh update-device, aber es ist mehr Arbeit, eine XML-Definition zu erstellen, etwa

<disk type='block' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sr0'/>
  <target dev='hdc' bus='ide'/>
  <readonly/>
</disk>

Wenn Sie auf diese Weise sind, speichern Sie etwas in einer Datei (sagen wir ~/cdrom-real.xml) und dann Feuer:

virsh update-device testbed ~/cdrom-real.xml

23
2018-03-30 09:08



Das sieht so aus, als ob es das ist, was ich will; Ich werde so schnell wie möglich überprüfen (kann im Moment nicht). Danke auf jeden Fall. - ΤΖΩΤΖΙΟΥ
Ja, das ist es. Wissen Sie auch, wie Sie das Gerät abnehmen? Ich habe es versucht virsh detach-disk testbed hdcaber ich habe es error: unsupported configuration: This type of device cannot be hot unplugged. - ΤΖΩΤΖΙΟΥ
IDE-Geräte sind in der Tat nicht hotpluggable. detach-disk funktioniert nicht für eine angehaltene virtuelle Maschine. Um die CD vollständig zu entfernen, müssen Sie verwenden virsh edit testbed während die Maschine gestoppt ist und löschen Sie die disk Element, das die CD-ROM definiert. Wenn Sie nicht sind viEditor Experte, ausführen export EDITOR=nano bevor Sie den Bearbeitungsbefehl ausführen. - wigy
Übrigens, wenn Sie meinen, dass meine Antwort Ihnen geholfen hat, akzeptieren Sie es bitte als Antwort. - wigy
Ich werde deine Antwort akzeptieren. Die Sache ist, wenn das Gerät mit der Testbed VM verbunden ist und ich das Testbed ohne eine eingelegte Disk starte, wird das Testbed nicht erscheinen, und ich muss die Virtual Manager GUI öffnen und das Gerät zuerst trennen. Deshalb habe ich in meiner Frage angegeben, dass ich auch eine Möglichkeit haben möchte, das Gerät zu trennen. - ΤΖΩΤΖΙΟΥ


Verwenden Sie den qemu-monitor-Befehl von virsh, um die Befehle zum Auswerfen und Ändern an qemu zu übergeben.

Verwenden Sie zuerst "info block", um den Gerätenamen von qemu für Ihre CD-ROM zu erhalten.

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

Also in meinem Fall interessiert mich drive-ide0-0-0. Um die Festplatte zu wechseln, tun Sie Folgendes:

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 #

4
2018-05-02 04:04



Der "info block" -Befehl führt zu einem Fehler für mich: "Fehler: interner Fehler kann JSON-Infoblock nicht parsen: lexikalischer Fehler: ungültiges Zeichen in JSON-Text." - cg.
Scheint, dass sich die Syntax unter mir geändert haben muss. Ich schwöre, es hat funktioniert, als ich es geschrieben habe. Ich habe die von Joe Huss 'Antwort vorgeschlagene Syntax ausprobiert und es funktioniert jetzt. Ich habe meine Antwort aktualisiert. - Keith Twombley


In Bezug auf den obigen "Info Block" -Befehl ist der richtige Weg, um ihn aufzurufen:

 virsh qemu-monitor-command <domain> --hmp --cmd "info block"

dh

 virsh qemu-monitor-command windows44407 --hmp --cmd "info block"

1
2018-01-08 04:53





Ich habe einen BluRay-Player durchsucht, der nicht richtig funktioniert, es sei denn, ich habe ihn auf andere Weise weitergegeben. Hier ist, wie ich es basierend auf diesem Artikel gemacht habe.

https://lime-technology.com/forums/topic/33851-blu-ray-dvd-rom-passthrough/

Finde SCSI #:

lsscsi

[root@kvmatrix ~]# lsscsi
[#:0:0:0]    cd/dvd  HL-DT-ST BD-RE  WH14NS40  1.03  /dev/sr0

Bearbeiten Sie Domänen-XML und fügen Sie Folgendes hinzu:

Hinweis: Ersetzen Sie scsi_host # durch das in lssci gefundene #

<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>

Ich musste das XML zwingen, angenommen zu werden, da virsh Bearbeitung Fehler gab, nur drücke ich und starte dann vm neu, um zu prüfen.


0
2018-02-25 01:52





mount -t iso9660 / dev / sr0 / Medien

Sie können jedes Gerät verwenden, das für Ihre CD-ROM im Verzeichnis / dev festgelegt ist. Auch / dev / cdrom ist eine Verbindung zum richtigen Gerät auf den meisten Linux-Systemen. Das -t ist für den Typ des Geräts, das Sie installieren, und iso9660 ist der universelle Typ für CD-ROM-Medien.

Der Mount-Punkt kann natürlich sein, was immer Sie wollen, aber stellen Sie sicher, dass es existiert.


-5
2018-03-28 14:44



Äh. So kann ich eine CD in den Host einhängen. Ok, mein Fehler. "Wie verbinde ich ein CD-ROM-Gerät mit einer kvm / qemu-Domain / VM?" Beachten Sie, dass diese Antwort nicht hilfreich ist. Sie sollten sie also entweder bearbeiten oder löschen. - ΤΖΩΤΖΙΟΥ