XenServer: Add script to mount OS domU in dom0
Change-Id: I1ad3d63c55b95f2588007c5e88704022f54e1c06
This commit is contained in:
parent
c0ae316430
commit
83f8b1abce
52
tools/xen/scripts/manage-vdi
Executable file
52
tools/xen/scripts/manage-vdi
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
action="$1"
|
||||||
|
vm="$2"
|
||||||
|
device="${3-0}"
|
||||||
|
part="${4-}"
|
||||||
|
|
||||||
|
xe_min()
|
||||||
|
{
|
||||||
|
local cmd="$1"
|
||||||
|
shift
|
||||||
|
xe "$cmd" --minimal "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
vm_uuid=$(xe_min vm-list name-label="$vm")
|
||||||
|
vdi_uuid=$(xe_min vbd-list params=vdi-uuid vm-uuid="$vm_uuid" \
|
||||||
|
userdevice="$device")
|
||||||
|
|
||||||
|
dom0_uuid=$(xe_min vm-list is-control-domain=true)
|
||||||
|
|
||||||
|
open_vdi()
|
||||||
|
{
|
||||||
|
vbd_uuid=$(xe vbd-create vm-uuid="$dom0_uuid" vdi-uuid="$vdi_uuid" \
|
||||||
|
device=autodetect)
|
||||||
|
mp=$(mktemp -d)
|
||||||
|
xe vbd-plug uuid="$vbd_uuid"
|
||||||
|
|
||||||
|
udevsettle
|
||||||
|
dev=$(xe_min vbd-list params=device uuid="$vbd_uuid")
|
||||||
|
mount "/dev/$dev$part" "$mp"
|
||||||
|
echo "Your vdi is mounted at $mp"
|
||||||
|
}
|
||||||
|
|
||||||
|
close_vdi()
|
||||||
|
{
|
||||||
|
vbd_uuid=$(xe_min vbd-list vm-uuid="$dom0_uuid" vdi-uuid="$vdi_uuid")
|
||||||
|
dev=$(xe_min vbd-list params=device uuid="$vbd_uuid")
|
||||||
|
umount "/dev/$dev$part"
|
||||||
|
|
||||||
|
xe vbd-unplug uuid=$vbd_uuid
|
||||||
|
xe vbd-destroy uuid=$vbd_uuid
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$action" == "open" ]
|
||||||
|
then
|
||||||
|
open_vdi
|
||||||
|
elif [ "$action" == "close" ]
|
||||||
|
then
|
||||||
|
close_vdi
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user