Skip to content

Commit

Permalink
Add qubes.ResizeDisk service to adjust filesystem size
Browse files Browse the repository at this point in the history
Do this using qubes rpc service, instead of calling resize2fs directly
by dom0.
  • Loading branch information
marmarek committed Aug 17, 2016
1 parent 779414d commit b50cba3
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ install-common:
install -m 0644 qubes-rpc/qubes.GetImageRGBA $(DESTDIR)/etc/qubes-rpc
install -m 0644 qubes-rpc/qubes.SetDateTime $(DESTDIR)/etc/qubes-rpc
install -m 0755 qubes-rpc/qubes.InstallUpdatesGUI $(DESTDIR)/etc/qubes-rpc
install -m 0755 qubes-rpc/qubes.ResizeDisk $(DESTDIR)/etc/qubes-rpc

install -d $(DESTDIR)/etc/qubes/suspend-pre.d
install -m 0644 qubes-rpc/suspend-pre.README $(DESTDIR)/etc/qubes/suspend-pre.d/README
Expand Down
32 changes: 32 additions & 0 deletions qubes-rpc/qubes.ResizeDisk
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/sh

read disk_name

set -e

case $disk_name in
private)
# force some read to refresh device size
head /dev/xvdb > /dev/null
resize2fs /dev/xvdb
;;
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"
fi
dmsetup load dmroot --table "$new_table"
dmsetup resume dmroot
resize2fs /dev/mapper/dmroot
;;
*)
echo "Automatic resize of '$disk_name' not supported" >&2
exit 1
;;
esac

1 change: 1 addition & 0 deletions rpm_spec/core-vm.spec
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,7 @@ rm -f %{name}-%{version}
%config(noreplace) /etc/qubes-rpc/qubes.GetImageRGBA
%config(noreplace) /etc/qubes-rpc/qubes.SetDateTime
%config(noreplace) /etc/qubes-rpc/qubes.InstallUpdatesGUI
%config(noreplace) /etc/qubes-rpc/qubes.ResizeDisk
%dir /etc/qubes/autostart
/etc/qubes/autostart/README.txt
%config /etc/qubes/autostart/*.desktop.d/30_qubes.conf
Expand Down

0 comments on commit b50cba3

Please sign in to comment.