เปลี่ยน CD-ROM ผ่าน virsh


22

ฉันมีเครื่องเสมือน KVM ที่จัดการผ่าน libvirsh ตอนนี้ฉันต้องการใช้อิมเมจ ISO อื่นภายใน VM

ฉันจะเปลี่ยน DVD ในไดรฟ์เสมือนได้virshอย่างไร

คำตอบ:


17

เพิ่ม CDROM:

attach-disk guest01 /root/disc1.iso hdc --driver file --type cdrom
--mode readonly

เปลี่ยน CDROM:

attach-disk guest01 /root/disc2.iso hdc --driver file --type cdrom
--mode readonly

ลบ CDROM:

 attach-disk guest01 " " hdc --driver file --type cdrom
 --mode readonly

ขอบคุณ rkthr ฉันทดสอบในสัปดาห์หน้าและกลับมาที่นี่ +1 ต่อไป :-)
DerMike

7
ขอบคุณสำหรับเคล็ดลับ สำหรับฉันมันใช้งานได้ แต่ถ้าฉันลบ '- drivers file' ออกจากคำสั่ง (เวอร์ชั่นvirsh: 0.9.2)
Lukasz Stelmach

2
ฉันต้องเพิ่ม--configคำสั่ง อาจเป็นเพราะความจริงที่ว่าแขกไม่ได้กำหนดค่าเริ่มต้นด้วย cdrom สิ่งนี้กล่าวถึงสิ่งต่อไปนี้: error: internal error: No device with bus 'ide' and target 'hdc'. cdrom and floppy device hotplug isn't supported by libvirt.
user59156

1
virsh แนบดิสก์ virtual.host.name /tank/kvm/iso/ubuntu-16.04.1-server-amd64.iso hda - ประเภท cdrom
โหมด

ดูเหมือนว่าโดเมนจะต้องเริ่มต้นเพื่อแนบแหล่งใหม่สำหรับ cdrom
imz - Ivan Zakharyaschev

16

ใน libvirt 0.9.12 และอาจก่อนหน้านี้มีคำสั่งchange-mediaอยู่:

change-media <domain> <path> [<source>] [--eject] [--insert] [--update] [--current] [--live] [--config] [--force]

เปลี่ยนซีดี:

change-media guest01 hdb /pool/disc.iso

นำซีดีออก:

change-media guest01 hdb --eject

นี่เป็นคำสั่งที่ถูกต้องเมื่อใช้ตัวควบคุม SATA สำหรับซีดีรอม
Xdg

1

ฉันลองใช้คำสั่ง attach-disk และมันไม่ได้ผลสำหรับฉัน อย่างไรก็ตามฉันพบเอกสารนี้ใน fedora ซึ่งขอให้คุณใช้คำสั่ง "update-device" นี้ทำงานสำหรับฉันและคุณสามารถค้นหาได้ที่แนบและปรับปรุงอุปกรณ์ที่มี virsh นี่คือขั้นตอน:

  • สร้างไฟล์ XML:

    <backingStore/>
    <target dev='hdc' bus='ide'/>
    <readonly/>
    <alias name='ide0-1-0'/>
    <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    

ตรวจสอบให้แน่ใจว่าคุณไม่มี<source>แท็กในคำนิยามของคุณ

  • อัปเดตอุปกรณ์:

    virsh update-device <guest name> <XML file name>
    

ที่จะลบอุปกรณ์ไม่เปลี่ยนซีดีตามที่ OP ถาม มันคัดลอกมาจากลิงก์ของคุณไม่ดี - เป็น XML ที่มีรูปแบบไม่ถูกต้อง

0

ก่อนอื่นคุณต้องส่งออกการกำหนดค่าที่มีอยู่:

virsh dumpxml guest_name > config.xml

จากนั้นคุณต้องเปิดไฟล์และคัดลอกส่วน cdrom และเพิ่มบรรทัดที่มีเส้นทางภาพ iso เช่น

<source file='some.iso'/>

ดังนั้นผลลัพธ์จึงเป็นเช่นนั้น

<disk type='file' device='cdrom'>
   <source file='some.iso'/>
   <driver name='qemu' type='raw'/>
   <backingStore/>
   <target dev='hdb' bus='ide'/>
   <readonly/>
   <alias name='ide0-0-1'/>
   <address type='drive' controller='0' bus='0' target='0' unit='1'/>
 </disk>

และบันทึกเป็น cdrom.xml

หลังจากนั้น:

virsh update-device guest_name cdrom.xml

#Device updated successfully
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.