[libvirt] Mounting a raw DVD

Adam Mooz adam.mooz at gmail.com
Tue Nov 10 14:18:07 UTC 2009


On 2009-11-10, at 12:48 AM, Gerry Reno wrote:

> Adam Mooz wrote:
>> On 2009-11-09, at 11:46 PM, Gerry Reno wrote:
>>
>>> Adam Mooz wrote:
>>>> Hello List,
>>>>
>>>> I'm attempting to pass a DVD drive of a headless server into a  
>>>> virtual machine.  So far I've managed to mount *something* into  
>>>> the VM, but it's being registered as a blank DVD within the VM.  
>>>> When I mount /dev/dvd into the bare-metal machine it registers  
>>>> normally as the DVD.  How do I pass physical drives into a VM and  
>>>> back out using libvirt?  Command used:
>>>> #virsh attach-disk Montreal /dev/dvd hdc --mode readonly --driver  
>>>> phy --type cdrom
>>>> Connecting to uri: qemu:///system
>>>> Disk attached successfully
>>>>
>>>> VM XML file:
>>>>
>>>> <domain type='kvm'>
>>>> <name>Montreal</name>
>>>> <uuid>0f79ba7f-27bf-16a0-5887-6cfa2b5569f1</uuid>
>>>> <memory>2097152</memory>
>>>> <currentMemory>2097152</currentMemory>
>>>> <vcpu>1</vcpu>
>>>> <os>
>>>>   <type arch='x86_64' machine='pc-0.11'>hvm</type>
>>>>   <boot dev='hd'/>
>>>> </os>
>>>> <features>
>>>>   <acpi/>
>>>>   <apic/>
>>>>   <pae/>
>>>> </features>
>>>> <clock offset='utc'/>
>>>> <on_poweroff>destroy</on_poweroff>
>>>> <on_reboot>restart</on_reboot>
>>>> <on_crash>restart</on_crash>
>>>> <devices>
>>>>   <emulator>/usr/bin/kvm</emulator>
>>>>   <disk type='file' device='cdrom'>
>>>>     <target dev='hdc' bus='ide'/>
>>>>     <readonly/>
>>>>   </disk>
>>>>   <disk type='file' device='disk'>
>>>>     <source file='(Mangled Purposely)'/>
>>>>     <target dev='vda' bus='virtio'/>
>>>>   </disk>
>>>>   <interface type='bridge'>
>>>>     <mac address='(mangled purposly)/>       <source bridge='br0'/>
>>>>     <model type='virtio'/>
>>>>   </interface>
>>>>   <serial type='pty'>
>>>>     <target port='0'/>
>>>>   </serial>
>>>>   <console type='pty'>
>>>>     <target port='0'/>
>>>>   </console>
>>>>   <input type='mouse' bus='ps2'/>
>>>>   <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
>>>>   <video>
>>>>     <model type='cirrus' vram='9216' heads='1'/>
>>>>   </video>
>>>> </devices>
>>>> </domain>
>>>>
>>>
>>> I haven't done this for a while but I believe you have to issue a  
>>> 'detach' command afterwards.
>>>
>>> -Gerry
>>>
>>> --
>>> Libvir-list mailing list
>>> Libvir-list at redhat.com <mailto:Libvir-list at redhat.com>
>>> https://www.redhat.com/mailman/listinfo/libvir-list
>>
>> # virsh detach-disk Montreal hdc
>> Connecting to uri: qemu:///system
>> error: this function is not supported by the hypervisor: only SCSI  
>> or virtio disk device can be detached dynamically
>>
>> ? Also, I'm not sure if you understood my question.  When I pass in  
>> the DVD device into the VM it registers as a blank DVD.  if I pass  
>> in a non-existant folder it blows up, so I know it's reading  
>> something from the real DVD drive.  Mounting the real DVD drive in  
>> the bare-metal machine shows the files on the drive, but I cannot  
>> get them to appear in the VM.  How do I get the same files to show  
>> up in the VM (i.e. mount the DVD drive into the VM)?
>>
>>
> I didn't see /dev/dvd in your xml.  If you attach it and then dump  
> the xml what does it look like?  And then have you tried booting the  
> VM with an xml file with this device and can you read the files on  
> the device this way?
>
> The other thing is that maybe your version of libvirt is too old.  I  
> think 0.7.1 is current.
>
> -Gerry
>
>
> --
> Libvir-list mailing list
> Libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

Booting with the drive specified within the XML also gives a blank DVD  
in the VM, no luck there. It turns out I'm running libvirt 7.0, was  
there a large change between 7.0 and 7.1 in the way they handle  
mounting block devices?

Here is some more output:
After mounting at runtime, not at boot to the VM.
virsh # dumpxml Montreal
<domain type='kvm' id='3'>
   <name>Montreal</name>
   <uuid>0f79ba7f-27bf-16a0-5887-6cfa2b5569f1</uuid>
   <memory>2097152</memory>
   <currentMemory>2097152</currentMemory>
   <vcpu>4</vcpu>
   <os>
     <type arch='x86_64' machine='pc-0.11'>hvm</type>
     <boot dev='hd'/>
   </os>
   <features>
     <acpi/>
     <apic/>
     <pae/>
   </features>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>
   <on_crash>restart</on_crash>
   <devices>
     <emulator>/usr/bin/kvm</emulator>
     <disk type='block' device='cdrom'>
       <source dev='/dev/dvd'/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
     </disk>
     <disk type='file' device='disk'>
       <source file='/mnt/vmdrive/Montreal-ubuntu-media/montreal.vmdk'/>
       <target dev='vda' bus='virtio'/>
     </disk>
     <interface type='bridge'>
       <mac address='54:52:00:63:bf:8d'/>
       <source bridge='br0'/>
       <target dev='vnet0'/>
       <model type='virtio'/>
     </interface>
     <serial type='pty'>
       <source path='/dev/pts/1'/>
       <target port='0'/>
     </serial>
     <console type='pty' tty='/dev/pts/1'>
       <source path='/dev/pts/1'/>
       <target port='0'/>
     </console>
     <input type='mouse' bus='ps2'/>
     <graphics type='vnc' port='5900' autoport='yes' keymap='en-us'/>
     <video>
       <model type='cirrus' vram='9216' heads='1'/>
     </video>
   </devices>
   <seclabel type='dynamic' model='apparmor'>
     <label>libvirt-0f79ba7f-27bf-16a0-5887-6cfa2b5569f1</label>
     <imagelabel>libvirt-0f79ba7f-27bf-16a0-5887-6cfa2b5569f1</ 
imagelabel>
   </seclabel>
</domain>

virsh # version
Compiled against library: libvir 0.7.0
Using library: libvir 0.7.0
Using API: QEMU 0.7.0
Running hypervisor: QEMU 0.11.0

-----------------------------------------------------------------
Adam Mooz
Adam.Mooz at gmail.com
AdamMooz at me.com
http://www.AdamMooz.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20091110/8119ec66/attachment-0001.htm>


More information about the libvir-list mailing list