2022-11-03 21:37:32 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Transform a raw image disk to azure vhd
|
|
|
|
RAWIMAGE="$1"
|
|
|
|
VHDDISK="${2:-disk.vhd}"
|
2022-11-03 23:42:09 +00:00
|
|
|
cp -rf $RAWIMAGE $VHDDISK.work
|
2022-11-03 21:37:32 +00:00
|
|
|
|
|
|
|
MB=$((1024*1024))
|
|
|
|
size=$(qemu-img info -f raw --output json "$RAWIMAGE" | gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
|
|
|
|
# shellcheck disable=SC2004
|
|
|
|
ROUNDED_SIZE=$(((($size+$MB-1)/$MB)*$MB))
|
|
|
|
echo "Resizing raw image to $ROUNDED_SIZE"
|
2022-11-03 23:42:09 +00:00
|
|
|
qemu-img resize -f raw "$VHDDISK.work" $ROUNDED_SIZE
|
2022-11-03 21:37:32 +00:00
|
|
|
echo "Converting $RAWIMAGE to $VHDDISK"
|
2022-11-03 23:42:09 +00:00
|
|
|
qemu-img convert -f raw -o subformat=fixed,force_size -O vpc "$VHDDISK.work" "$VHDDISK"
|
|
|
|
echo "Done"
|
|
|
|
rm -rf "$VHDDISK.work"
|