Add qubes.ResizeDisk service to adjust filesystem size
Do this using qubes rpc service, instead of calling resize2fs directly by dom0.
This commit is contained in:
		
							parent
							
								
									779414d216
								
							
						
					
					
						commit
						b50cba3f2c
					
				
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							| @ -237,6 +237,7 @@ install-common: | |||||||
| 	install -m 0644 qubes-rpc/qubes.GetImageRGBA $(DESTDIR)/etc/qubes-rpc | 	install -m 0644 qubes-rpc/qubes.GetImageRGBA $(DESTDIR)/etc/qubes-rpc | ||||||
| 	install -m 0644 qubes-rpc/qubes.SetDateTime $(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.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 -d $(DESTDIR)/etc/qubes/suspend-pre.d | ||||||
| 	install -m 0644 qubes-rpc/suspend-pre.README $(DESTDIR)/etc/qubes/suspend-pre.d/README | 	install -m 0644 qubes-rpc/suspend-pre.README $(DESTDIR)/etc/qubes/suspend-pre.d/README | ||||||
|  | |||||||
							
								
								
									
										32
									
								
								qubes-rpc/qubes.ResizeDisk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								qubes-rpc/qubes.ResizeDisk
									
									
									
									
									
										Executable file
									
								
							| @ -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 | ||||||
|  |          | ||||||
| @ -350,6 +350,7 @@ rm -f %{name}-%{version} | |||||||
| %config(noreplace) /etc/qubes-rpc/qubes.GetImageRGBA | %config(noreplace) /etc/qubes-rpc/qubes.GetImageRGBA | ||||||
| %config(noreplace) /etc/qubes-rpc/qubes.SetDateTime | %config(noreplace) /etc/qubes-rpc/qubes.SetDateTime | ||||||
| %config(noreplace) /etc/qubes-rpc/qubes.InstallUpdatesGUI | %config(noreplace) /etc/qubes-rpc/qubes.InstallUpdatesGUI | ||||||
|  | %config(noreplace) /etc/qubes-rpc/qubes.ResizeDisk | ||||||
| %dir /etc/qubes/autostart | %dir /etc/qubes/autostart | ||||||
| /etc/qubes/autostart/README.txt | /etc/qubes/autostart/README.txt | ||||||
| %config /etc/qubes/autostart/*.desktop.d/30_qubes.conf | %config /etc/qubes/autostart/*.desktop.d/30_qubes.conf | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski-Górecki
						Marek Marczykowski-Górecki