Dynamically add device to running DOMU
xm block-attach domain block/device/on/dom0 ''/device/on/domu' 1
Example, you want running domain fileserver to have access to device /dev/sdc1 and be able to read and write to it. You want it to be called xvdb1 on the domu
xm block-attach fileserver phy:/dev/sdc1 xvdb1 w
From the DOMU, you can now issue the command
mount /dev/xvdb1 /mnt
and write to it
Dynamically Remove device from running DOMU
First, you must list all devices attached so you can find the correct device id
xm block-list fileserver
This will return a list similar to:
Vdev BE handle state evt-ch ring-ref BE-path 51714 0 0 4 8 8 /local/domain/0/backend/vbd/9/51714 51715 0 0 4 10 770 /local/domain/0/backend/vbd/9/51715 51713 0 0 4 11 771 /local/domain/0/backend/vbd/9/51713 51729 0 0 4 12 870 /local/domain/0/backend/vbd/9/51729
The value on the left is the device id. Of course, the rest is very cryptic. First, you need to know the ID of your DOMU. Just do an
and see the correct ID for your running DOM. Now, to find which drive is what, execute the command:
xenstore-ls | less
and search for your domainID. This is fairly simple as, in Xen4, the output is of the form:
domid = ""
where domid is the numeric ID of your domain. So, search for that. Underneath, you will find a list of all hard drives with more information than you ever needed. So, in this case, we know we are looking for a USB drive, sdb, and we mounted the first partition. Find a line that says"
params = "/dev/sdb1"
and see what section it is in (in this case, 51729)
Now, remove it from the DOMU
xm block-detach domain-id 51729