#!/bin/bash pusb_uuid="$1" if [ -z "$pusb_uuid" ]; then echo "Usage: usb-unplug <pusb-uuid>" exit 1 fi group_uuid=`xe usb-group-list PUSB-uuids="$pusb_uuid" --minimal` if [ -z "$group_uuid" ]; then echo "Could not find USB group." exit 1 fi vusb_uuid=`xe vusb-list usb-group-uuid="$group_uuid" --minimal` if [ -z "$vusb_uuid" ]; then echo "Failed to find virtual USB." exit 1 fi # Unplug from running VM vm_uuid=`xe vusb-list usb-group-uuid="$group_uuid" | grep vm-uuid | sed -E 's/^.*: //g'` if ! [ -z "`xe vm-list uuid="$vm_uuid" power-state=running`" ]; then xe vusb-unplug uuid="$vusb_uuid" fi xe vusb-destroy uuid="$vusb_uuid" xe pusb-param-set uuid="$pusb_uuid" passthrough-enabled=false