qubes.ResizeDisk: handle dmroot being a symlink

In non-template-based-VMs it can be just a symlink (depending on
initramfs version).
This commit is contained in:
Marek Marczykowski-Górecki 2017-10-02 19:42:00 +02:00
parent 6bf395022a
commit a59ac1b4f9
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -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
;;
*)