pkgs/grow-last-partition-and-filesystem: Add command to easily grow a filesystem on a disk resized by Proxmox
This commit is contained in:
17
pkgs/grow-last-partition-and-filesystem/default.nix
Normal file
17
pkgs/grow-last-partition-and-filesystem/default.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
e2fsprogs,
|
||||
jq,
|
||||
parted,
|
||||
writeShellApplication,
|
||||
}:
|
||||
|
||||
writeShellApplication {
|
||||
name = "grow-last-partition-and-filesystem";
|
||||
text = builtins.readFile ./grow-last-partition-and-filesystem.sh;
|
||||
runtimeInputs = [
|
||||
e2fsprogs
|
||||
jq
|
||||
parted
|
||||
];
|
||||
}
|
||||
|
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "Pass device to grow as first argument:"
|
||||
echo "grow-last-partition-and-filesystem DEVICE"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEVICE="$1"
|
||||
|
||||
PARTITIONDATA="$(parted --script --json --fix "${DEVICE}" print)"
|
||||
PARTNUMBER="$(echo "${PARTITIONDATA}" | jq -r '.disk.partitions | last | .number')"
|
||||
PARTNAME="$(echo "${PARTITIONDATA}" | jq -r '.disk.partitions | last | .name')"
|
||||
|
||||
echo "Growing partition ${DEVICE}${PARTNUMBER} (${PARTNAME})"
|
||||
echo
|
||||
|
||||
parted "${DEVICE}" resizepart "${PARTNUMBER}" 100%
|
||||
|
||||
echo
|
||||
echo "Resizing filesystem"
|
||||
echo
|
||||
|
||||
resize2fs "${DEVICE}${PARTNUMBER}"
|
||||
|
||||
echo "Done."
|
Reference in New Issue
Block a user