Heute Morgen ist eine root-Partition auf einem Debian Server vollgelaufen. Da es unter Linux leider keine so komfortablen Werkzeuge zur Volumenverwaltung wie unter Windows gibt, hier die etwas umständliche, aber ebenso vollständige Anleitung in Schritten.
Die Platte in diesem Beispiel ist /dev/sda und die vergrößerte Version hat 80GiB.
/dev/sda
+--- /dev/sda1 --> / (Linux boot) bisher 30GiB
+--- /dev/sda2 --> Swap bisher 5iB
In diesem Fall gab s auf dem Boot-Volumen auch noch eine Swap-Partition, die in diesem Zuge kurzerhand auf ein zusätzliches Volumen verschoben wurde. Glücklicherweise ist beides im laufenden Betrieb möglich.
Lösung
Neue Disk-Größe einlesen
Nachdem die „Festplatte“ vergrößert wurde, erkennt Linux auch das nach einem rescan des SCSI-Busses. Je nach System mussm an das * durch das/die echte/n Gerät/e-Pfade ersetzen.
echo "- - -" > /sys/class/scsi_host/*/scan
echo 1 > /sys/class/scsi_device/*/device/rescan
Partitionen und Layout ansehen
Dann kann man sich das aktuelle Partitionslayout und die größere Disk mit fdisk
ansehen.
root@raumstation:~# fdisk /dev/sda
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x739a8a99
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 167772126 167770079 80G 83 Linux
Command (m for help):q
root@raumstation:~#
Swap-Partition abschalten und entfernen
Die Linux-Swap Partiton schaltet man ab mit swapoff
. Der Parameter -a
entfernt alle Swap-Partitionen des Kernels. Wenn man aktuell mehrere nutzt, muss man natürlich nur die „falsche“ außer Betrieb nehmen.
root@raumstation:~# swapoff -a
Dann kann man die Partitionen bis zur Volumengrenze löschen.
root@raumstation:~# fdisk /dev/sda
<d> für "delete"
<2> Nummer für die Partitionsnummer (fdisk schlägt die höchste vor)
<w> für "Write"
<q> für "Auit"Quit"
Linux Boot Partition vergrößern
Die einfachste Möglichkeit ist das growpart
Werkzeug. Das ist sehr klein und schnell installiert.
root@raumstation:~# apt-get install cloud-guest-utils
Dann gibt es den Befehl, der die Partition automatisch so groß wie möglich macht:
growpart /dev/sda 1
Linux Dateisystem vergrößern
Wenn die Partition vergrößert wurde, muss nun das Dateisystem darüber informiert werden. Das geht zum Glück ebenso schnell.
resize2fs /dev/sda1
Neues Swap-Volumen anlegen und einbinden
In diesem Fall haben wir ein zusätzliches Swap-Volumen angebunden (/dev/sde
), mit einem rescan (siehe oben) im System sichtbar gemacht und darauf mit fdisk
eine Partition angelegt.
Bei der Größe der Swap-Partition halten wir uns gerne an die steinalte Admin-Weisheit „Immer die Hälfte vom Arbeitsspeicher, mindestens aber 4 und nie mehr als 32g.“
Wenn das geschehen ist, erstellt man das Swap-System mit mkswap
…
mkswap /dev/sde1
… und schaltet das swapping wieder ein:
swapon /dev/sde1