diff --git a/qubes-rpc/qubes.ResizeDisk b/qubes-rpc/qubes.ResizeDisk index 0ac0656..038467d 100755 --- a/qubes-rpc/qubes.ResizeDisk +++ b/qubes-rpc/qubes.ResizeDisk @@ -13,15 +13,17 @@ case $disk_name in root) # force some read to refresh device size head /dev/xvda > /dev/null - new_size=$(cat /sys/block/xvda/size) - ro=$(/sys/block/xvda/ro) - if [ "$ro" -eq 1 ]; then - new_table="0 $new_size snapshot /dev/xvda /dev/xvdc2 N 16" - else - new_table="0 $new_size linear /dev/xvda 0" + if [ "$(stat -Lc %t /dev/mapper/dmroot)" != "ca" ]; then + new_size=$(cat /sys/block/xvda/size) + ro=$(/sys/block/xvda/ro) + if [ "$ro" -eq 1 ]; then + new_table="0 $new_size snapshot /dev/xvda /dev/xvdc2 N 16" + else + new_table="0 $new_size linear /dev/xvda 0" + fi + dmsetup load dmroot --table "$new_table" + dmsetup resume dmroot fi - dmsetup load dmroot --table "$new_table" - dmsetup resume dmroot resize2fs /dev/mapper/dmroot ;; *)