- 论坛徽章:
- 0
|
迅速清除VM的C盘.以模板系统的C盘代替..
其它盘不用动..
其效果..可想而知...
- #!/bin/sh
- #reset driver C
- #write by bendy 67052 [at] qq.com
- if [ -z "${XE}" ]; then
- XE=xe
- fi
- # Check there's a vm uuid parameter to the command
- if [ $# -ne 1 ]; then
- echo "usage: $0 <vm_uuid_to_reset>"
- exit 1
- fi
- vmuuid=$1
- # Check if there's a VM by the uuid specified
- ${XE} vm-list params=uuid | grep -q " ${vmuuid}$"
- if [ $? -ne 0 ]; then
- echo "error: no vm uuid \"${vmuuid}\" found"
- exit 2
- fi
- # Check the power state of the vm
- name=$(${XE} vm-list uuid=${vmuuid} params=name-label --minimal)
- state=$(${XE} vm-list uuid=${vmuuid} params=power-state --minimal)
- wasrunning=0
- # If the VM state is running, we shutdown the vm first
- if [ "${state}" = "running" ]; then
- ${XE} vm-shutdown uuid=${vmuuid}
- ${XE} event-wait class=vm power-state=halted uuid=${vmuuid}
- wasrunning=1
- fi
- # destroy OLD C
- ${XE} vbd-destroy uuid=`${XE} vbd-list vm-uuid=${vmuuid} device=hda | /usr/bin/perl -e 'while (<STDIN>) { if (/^uuid.* ([^ ]*)$/) { $uuid = $1; } } print "$uuid";'`
- #echo "destroy ok"
- # get drivce c uuid
- viduuid=$(${XE} vbd-list device=hda | /usr/bin/perl -e 'while (<STDIN>) { if (/vdi-uuid.* ([^ ]*)$/) { $uuid = $1; } if ( $find ) { last;} if (/vm-name-label \( RO\): win/) { $find="yes" } } print "$uuid";')
- #echo ${viduuid}
- # clone driver C
- newviduuid=$(${XE} vdi-clone new-name-label=clone uuid=${viduuid})
- #echo "${newviduuid}"
- # inst new vbd
- ${XE} vbd-create vm-uuid=${vmuuid} device=hda vdi-uuid=${newviduuid} bootable=true type=Disk mode=RW
复制代码
(tips...模板系统的LABEL需要是win开头) |
|