23
7
I have a KVM virtual machine that is managed via libvirsh. Now I want to use a different ISO image inside the VM.
How do I change the DVD in the virtual drive using virsh
?
23
7
I have a KVM virtual machine that is managed via libvirsh. Now I want to use a different ISO image inside the VM.
How do I change the DVD in the virtual drive using virsh
?
17
Add CDROM:
attach-disk guest01 /root/disc1.iso hdc --driver file --type cdrom
--mode readonly
Change CDROM:
attach-disk guest01 /root/disc2.iso hdc --driver file --type cdrom
--mode readonly
Remove CDROM:
attach-disk guest01 " " hdc --driver file --type cdrom
--mode readonly
16
In libvirt 0.9.12 and maybe earlier, a command change-media
exists:
change-media <domain> <path> [<source>] [--eject] [--insert] [--update] [--current] [--live] [--config] [--force]
Change CD:
change-media guest01 hdb /pool/disc.iso
Eject CD:
change-media guest01 hdb --eject
This is the right command when using SATA controller for CD-ROM. – Xdg – 2016-10-09T12:41:09.410
1
I tried the attach-disk command and it didn't work for me. However, I found this doc on fedora which asks you to use the "update-device" command. This worked for me, and you can find it at Attaching and updating a device with virsh. Here are the steps:
Create an XML file:
<backingStore/>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
Make sure you don't have the <source>
tag in your definition
Update the device:
virsh update-device <guest name> <XML file name>
That would remove the device, not change the CD as the OP asks. It's also badly copied from your link - it's malformed XML as it stands. – None – 2014-11-22T12:07:15.913
0
First you have to export existing configuration:
virsh dumpxml guest_name > config.xml
Then you have to open file and copy cdrom section and add the line with iso image path like
<source file='some.iso'/>
So the result is something like
<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>
and save it as cdrom.xml.
After that:
virsh update-device guest_name cdrom.xml
#Device updated successfully
2I had to add
--config
to the command. Probably due to the fact that the guest wasn't originally configured with a cdrom. This addressed the following:error: internal error: No device with bus 'ide' and target 'hdc'. cdrom and floppy device hotplug isn't supported by libvirt
. – user59156 – 2015-10-19T15:59:05.1101virsh attach-disk virtual.host.name /tank/kvm/iso/ubuntu-16.04.1-server-amd64.iso hda --type cdrom --mode readonly – Xdg – 2016-08-31T08:20:38.293
It seems that the domain must be started to attach a new source for the cdrom. – imz -- Ivan Zakharyaschev – 2017-01-31T12:00:45.817
All I get for this is "Operation not supported: cdrom/floppy device hotplug isn't supported". (virsh version 5.0.0, libvirtd 5.0.0-4). Any idea why that is? – foo – 2019-08-22T14:00:11.823
Thanks, rkthr. I test this next week and come back here. +1 anyway :-) – DerMike – 2011-06-10T08:24:42.217
7Thanks for tip. For me it works but only if I remove '--driver file' from the command (version of
virsh
: 0.9.2). – Lukasz Stelmach – 2011-12-23T20:50:48.083