Direkt zum Hauptinhalt

Partiton vergrößern wenn die Festplatte vergößert wurde

Beschreibung:

Es kann mal vor kommen, das eine Fetsplatte z.b in einer VM vergrößert wird.
Leider wird das Dateisystem nicht mit angepasst.

Hier ein Script das die macht.
Dies Script hat allerdings Pakete Voraussetzungen die noch installiert werden müssen.

Voraussetzungen:

apt-get install cloud-guest-utils e2fsprogs

Das Script:

nano /root/resize_partition.sh

Inhalt

#!/bin/bash

# Hilfe-Funktion
usage() {
    echo "Verwendung: $0 -d <Partition> [-s <Größe>]"
    echo "  -d <Partition>  Die Partition, die vergrößert werden soll (z.B. /dev/sda1)"
    echo "  -s <Größe>      Die Größe, um die die Partition vergrößert werden soll (z.B. 100M oder 2G)"
    echo "                  Wenn keine Größe angegeben wird, wird die Partition auf das Maximum vergrößert."
    exit 1
}

# Überprüfen, ob keine Parameter angegeben wurden
if [ $# -eq 0 ]; then
    usage
fi

# Parameter verarbeiten
while getopts ":d:s:" opt; do
    case $opt in
        d) PARTITION="$OPTARG" ;;
        s) SIZE="$OPTARG" ;;
        *) usage ;;
    esac
done

# Überprüfen, ob die Partition angegeben wurde
if [ -z "$PARTITION" ]; then
    echo "Fehler: Partition muss angegeben werden."
    usage
fi

# Überprüfen, ob die Partition existiert
if [ ! -e "$PARTITION" ]; then
    echo "Fehler: Partition $PARTITION existiert nicht."
    exit 1
fi

# Größe der Partition ermitteln
if [ -z "$SIZE" ]; then
    echo "Vergrößere die Partition $PARTITION auf das Maximum."
    sudo growpart "$(echo "$PARTITION" | sed 's/[0-9]*$//')" "$(echo "$PARTITION" | grep -o '[0-9]*$')"
else
    echo "Vergrößere die Partition $PARTITION um $SIZE."
    sudo growpart "$(echo "$PARTITION" | sed 's/[0-9]*$//')" "$(echo "$PARTITION" | grep -o '[0-9]*$')" "$SIZE"
fi

# Dateisystem vergrößern
echo "Vergrößere das Dateisystem auf $PARTITION."
sudo resize2fs "$PARTITION"

echo "Fertig!"

Erklärung:

  1. Parameterverarbeitung:

    • -d <Partition>: Gibt die Partition an, die vergrößert werden soll (z.B. /dev/sda1).

    • -s <Größe>: Gibt die Größe an, um die die Partition vergrößert werden soll (z.B. 100M oder 2G). Wenn keine Größe angegeben wird, wird die Partition auf das Maximum vergrößert.

  2. Überprüfung der Partition:

    • Das Skript überprüft, ob die angegebene Partition existiert.

  3. Vergrößern der Partition:

    • Das Skript verwendet growpart, um die Partition zu vergrößern. Wenn keine Größe angegeben wird, wird die Partition auf das Maximum vergrößert.

  4. Vergrößern des Dateisystems:

    • Das Skript verwendet resize2fs, um das Dateisystem auf der Partition zu vergrößern.

Hilfe anzeigen:

./resize_partition.sh

Vergrößerung um 500M:

./resize_partition.sh -d /dev/sda1 -s 500M

Maximale Vergrößerung:

./resize_partition.sh -d /dev/sda1