This is an old revision of the document!


Resize system partition dynamically, based on size needed

  • tested under windows 7
  • tested under winst 4.11.5.13

In case you want your system partition to only use the amount of diskspace required by the applications you install,

you can use the following code to extend your system partition dynamically before installing your software.

!!! Warning !!!

Using this can lead to problems if your applications or users are storing data on the system partition.

If you want use this, you should consider adopting further measures to prevent possible hickups - f.e. move profiles to another partition, configure your applications to store their data on another partition, prevent write access for users on the system partition. take care ;)

Integrate the following code into your installation script, and change the value of $MinimumFreeSpace$ to the amount of MB required by the software to install; 1 GB equals 1024, like given as example below.

This script assumes you install software on your system partition. Otherwise, you need to replace occurance of %SystemDrive% with the drive letter of your desired partition, f.e.

takeString(0,splitString($InstallDir$,"\"))

setup.ins

[Actions]
defVar $MinimumFreeSpace$ 
set $MinimumFreeSpace$ = "1024"
 
if not ( hasMinimumSpace( "%SystemDrive%", $MinimumFreeSpace$ + " MB" ) )
	execwith_resize diskpart /s
endif
 
comment "Exitcode: " + getLastExitCode
 
[execwith_resize]
SELECT volume %SystemDrive%
EXTEND size=$MinimumFreeSpace$

QR Code
QR Code userspace:diskpart_-_dynamic_system_partition_resize (generated for current page)