[libvirt] Mounting a raw DVD
Gerry Reno
greno at verizon.net
Tue Nov 10 16:13:42 UTC 2009
Adam Mooz wrote:
> 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>
>>>> <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 <mailto: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
>
The only other problem that I can think of is that there is some type of
permissions problem going on.
-Gerry
More information about the libvir-list
mailing list