diff --git a/dracut/full-dmroot/qubes_cow_setup.sh b/dracut/full-dmroot/qubes_cow_setup.sh index 78d3c2b..45acbe6 100644 --- a/dracut/full-dmroot/qubes_cow_setup.sh +++ b/dracut/full-dmroot/qubes_cow_setup.sh @@ -56,19 +56,20 @@ log_begin "Waiting for /dev/xvda* devices..." while ! [ -e /dev/xvda ]; do sleep 0.1; done log_end +SWAP_SIZE=$(( 1024 * 1024 * 2 )) # sectors, 1GB + if [ `cat /sys/block/xvda/ro` = 1 ] ; then log_begin "Qubes: Doing COW setup for AppVM..." while ! [ -e /dev/xvdc ]; do sleep 0.1; done - VOLATILE_SIZE=$(sfdisk -s /dev/xvdc) - ROOT_SIZE=$(sfdisk -s /dev/xvda) # kbytes - SWAP_SIZE=$(( 1024 * 1024 )) # kbytes - if [ $VOLATILE_SIZE -lt $(($ROOT_SIZE + $SWAP_SIZE)) ]; then - ROOT_SIZE=$(($VOLATILE_SIZE - $SWAP_SIZE)) + VOLATILE_SIZE=$(cat /sys/block/xvdc/size) # sectors + ROOT_SIZE=$(cat /sys/block/xvda/size) # sectors + if [ $VOLATILE_SIZE -lt $SWAP_SIZE ]; then + die "volatile.img smaller than 1GB, cannot continue" fi - sfdisk -q --unit B /dev/xvdc >/dev/null </dev/null </dev/null </dev/null <