From 3a47c7e8f67c6ece266f570d6db9598856512ede Mon Sep 17 00:00:00 2001 From: Ihor Antonov Date: Thu, 19 Apr 2018 08:47:10 -0400 Subject: [PATCH] growPartition: fix volume resizing on EC2 NVME instances The previous code for this accidentally picked up a "p" when computing the partition number. This logic should be more robust --- nixos/modules/system/boot/grow-partition.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nixos/modules/system/boot/grow-partition.nix b/nixos/modules/system/boot/grow-partition.nix index c4c6d82dc5c..1e6f9e442b6 100644 --- a/nixos/modules/system/boot/grow-partition.nix +++ b/nixos/modules/system/boot/grow-partition.nix @@ -32,8 +32,15 @@ with lib; 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}" + parentDevice="$rootDevice" + while [ "''${parentDevice%[0-9]}" != "''${parentDevice}" ]; do + parentDevice="''${parentDevice%[0-9]}"; + done + partNum="''${rootDevice#''${parentDevice}}" + if [ "''${parentDevice%[0-9]p}" != "''${parentDevice}" ] && [ -b "''${parentDevice%p}" ]; then + parentDevice="''${parentDevice%p}" + fi + TMPDIR=/run sh $(type -P growpart) "$parentDevice" "$partNum" udevadm settle fi '';