Using virt-install to mount multiple cdrom drives/images
Solution 1
virt-install does not appear to support multiple CD ROMs natively. Fortunately, there is a fairly direct way to get it to do so:
Use virt-install to create the virtual machine with the first CD-ROM, in your case named
xpsp1
. Behind the scenes, libvirt will create an XML configuration file. Turn off the machine now (virsh destroy xpsp1
); you were only interested in the XML file.Open the XML file, which is located in
/etc/libvirt/qemu/
(e.g./etc/libvirt/qemu/xpsp1.xml
). Probably.Search for the string
cdrom
. This should lead you to a chunk with these values:<disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/path/to/vm/winxp_sp1.iso'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk>
Copy paste this block and change the settings for your second CD-ROM. Namely, you will need to change
<source file=...>
(path of your other file),<target dev=...>
(to, e.g.,hdd
) and<address unit=...
(to, e.g., 1)Restart the machine (
virsh create /etc/libvirt/qemu/xpsp1.xml
) and the two CDs should be recognized.
Solution 2
Because you can't use --cdrom twice, you can you --disk ...,device=cdrom,bus=ide
instead.
It works for me:
virt-install \
--virt-type=kvm \
--name=win10 \
--ram=4096 \
--cpu=host \
--vcpus=2 \
--os-type=windows \
--os-variant=win10 \
--disk /var/lib/libvirt/boot/win10.iso,device=cdrom,bus=ide \
--disk /var/lib/libvirt/boot/virtio-win.iso,device=cdrom,bus=ide \
--disk /var/lib/libvirt/images/win10.qcow2,size=40,bus=virtio,format=qcow2 \
--network=bridge=br0,model=virtio \
--graphics vnc
Related videos on Youtube
Dana the Sane
After being in the private sector for a few years working on Logistics software, I've decided to return to school to earn my Masters. I'm an avid follower of technology, science, programming and operating systems.
Updated on September 17, 2022Comments
-
Dana the Sane over 1 year
I would like to create a windows xp guest from the windows xp upgrade cd I have, along with one of a few full versions I have around. However, when I reach the stage in the installer where I am prompted to insert a full version cd, the installer can't find it (update: I checked that this works for a normal install), i.e.:
Setup could not read the CD you inserted, or the CD is not a valid Windows CD..
Is there a work-around for this so I can mount both cd's, or mount a new cd during the install process?
I've tried various combinations of mounting .iso files and specifying disks, such as:
$sudo virt-install --accelerate --connect qemu:///system -n xpsp1 -r 2048 --disk ./vm/winxp_sp1.iso,device=cdrom --disk ./vm/windows.qcow2,size=12 --vnc --noautoconsole --os-type windows --os-variant winxp --vcpus 2 -c /dev/cdrom --check-cpu
If I try to specify multiple cdrom drives, I receive an error:
virt-install --accelerate --connect qemu:///system -n xpsp1 -r 2048 --disk ./vm/winxp_sp1.iso,device=cdrom --disk /dev/cdrom,device=cdrom --disk ./vm/windows.qcow2,size=12 --vnc --noautoconsole --os-type windows --os-variant winxp --vcpus 2 --check-cpu Starting install... ERROR IDE CDROM must use 'hdc', but target in use.
-
Admin almost 14 yearsin the second command, is there already a mounted disk in /dev/cdrom perhaps?
-
Admin almost 14 yearsProbably, that was my attempt to mount two drives at once. I only have one physical cdrom drive, I'm not sure if I can mount the 2nd on at hdd etc.
-
Admin about 13 yearsso you have the Windows installer CD saved on your system as two iso files?? this is not good news.... Can you merge these two iso's into one iso... there is hope for that if you know what your doing... otherwise I think Microsoft has you beat; they don't get Junior high students to do their programing any more :)
-
Admin about 13 yearsI don't own the full install disk for XP, just the upgrade. You can in stall from an upgrade cd, if you have a full install cd from a previous windows version, which is what I was attempting.
-
-
Dana the Sane over 10 yearsSounds promising. The project I was working on is long gone but I'll keep this in mind.
-
Arvy over 2 yearsGot an error: An install method must be specified (--location URL, --cdrom CD/ISO, --pxe, --import, --boot hd|cdrom|...)
-
Arvy over 2 yearsHad to inform --boot and remove "ide". Fixed with:
virt-install --virt-type=kvm --name windows7 --cpu=host --memory 3072 --vcpus=2 --os-type=windows --os-variant=win7 --disk=/var/lib/libvirt/boot/win7.iso,device=cdrom --disk=/var/lib/libvirt/boot/virtio-win.iso,device=cdrom --network=bridge=virbr0,model=virtio --graphics vnc --disk path=/var/lib/libvirt/images/windows7.qcow2,size=50,bus=virtio,format=qcow2 --boot cdrom