If you booted a domain with a cdrom attached you may find that one day you want to change the image attached to this domain with out rebooting it. Libvirt provides a simple command called change-media to do this.
virsh # help change-media
NAME
change-media - Change media of CD or floppy drive
SYNOPSIS
change-media <domain> <path> [<source>] [--eject] [--insert] [--update] [--current] [--live] [--config] [--force]
DESCRIPTION
Change media of CD or floppy drive.
OPTIONS
[--domain] <string> domain name, id or uuid
[--path] <string> Fully-qualified path or target of disk device
[--source] <string> source of the media
--eject Eject the media
--insert Insert the media
--update Update the media
--current can be either or both of --live and --config, depends on implementation of hypervisor driver
--live alter live configuration of running domain
--config alter persistent configuration, effect observed on next boot
--force force media insertion
First lets find the path to the cdrom drive
virsh # domblklist vm1 Target Source ------------------------------------------------ hda /dev/storage1/vm1_disk1 hdc /var/lib/libvirt/images/cd1.iso
In our case the cdrom drive is hdc, now lets eject the ISO thats currently attached to it.
virsh # change-media vm1 hdc --eject succeeded to complete action eject on media
Lets verify the ISO is no longer attached
virsh # domblklist vm1 Target Source ------------------------------------------------ hda /dev/storage1/vm1_disk1 hdc -
Looks good, the Source for hdc no longer contains the path to the old ISO.
Now we need to insert a new ISO into our cdrom, in our case the cdrom is hdc which we found by running domblklist vm1.
virsh # change-media vm1 hdc /var/lib/libvirt/images/cd2.iso --insert succeeded to complete action insert on media
And lets check to make sure it's attached
virsh # domblklist vm1 Target Source ------------------------------------------------ hda /dev/storage1/vm1_disk1 hdc /var/lib/libvirt/images/cd2.iso
Success!