Merge pull request #12625 from nathan7/virtualbox-autoresize-root
virtualbox-image module: autoresize rootwip/yesman
commit
6914bc1ec8
@ -1,24 +0,0 @@ |
||||
# This module automatically grows the root partition on Amazon EC2 HVM |
||||
# instances. This allows an instance to be created with a bigger root |
||||
# filesystem than provided by the AMI. |
||||
|
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
{ |
||||
config = lib.mkIf config.ec2.hvm { |
||||
boot.initrd.extraUtilsCommands = '' |
||||
copy_bin_and_libs ${pkgs.gawk}/bin/gawk |
||||
copy_bin_and_libs ${pkgs.gnused}/bin/sed |
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk |
||||
cp -v ${pkgs.cloud-utils}/bin/growpart $out/bin/growpart |
||||
ln -s sed $out/bin/gnused |
||||
''; |
||||
|
||||
boot.initrd.postDeviceCommands = '' |
||||
if [ -e /dev/xvda ] && [ -e /dev/xvda1 ]; then |
||||
TMPDIR=/run sh $(type -P growpart) /dev/xvda 1 |
||||
udevadm settle |
||||
fi |
||||
''; |
||||
}; |
||||
} |
@ -0,0 +1,41 @@ |
||||
# This module automatically grows the root partition on virtual machines. |
||||
# This allows an instance to be created with a bigger root filesystem |
||||
# than provided by the machine image. |
||||
|
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
{ |
||||
|
||||
options = { |
||||
|
||||
virtualisation.growPartition = mkOption { |
||||
type = types.bool; |
||||
default = true; |
||||
}; |
||||
|
||||
}; |
||||
|
||||
config = mkIf config.virtualisation.growPartition { |
||||
|
||||
boot.initrd.extraUtilsCommands = '' |
||||
copy_bin_and_libs ${pkgs.gawk}/bin/gawk |
||||
copy_bin_and_libs ${pkgs.gnused}/bin/sed |
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/sfdisk |
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/lsblk |
||||
cp -v ${pkgs.cloud-utils}/bin/growpart $out/bin/growpart |
||||
ln -s sed $out/bin/gnused |
||||
''; |
||||
|
||||
boot.initrd.postDeviceCommands = '' |
||||
rootDevice="${config.fileSystems."/".device}" |
||||
if [ -e "$rootDevice" ]; then |
||||
rootDevice="$(readlink -f "$rootDevice")" |
||||
parentDevice="$(lsblk -npo PKNAME "$rootDevice")" |
||||
TMPDIR=/run sh $(type -P growpart) "$parentDevice" "''${rootDevice#$parentDevice}" |
||||
udevadm settle |
||||
fi |
||||
''; |
||||
|
||||
}; |
||||
|
||||
} |
Loading…
Reference in new issue