ext4 Partition unter Linux im Betrieb vergrößern
Warum?
Ich habe auf meinem eigenen Linux Webserver öfter das „Problem“ dass die Datenpartition zu klein wird. Datenbanken und Log-Files wachsen mit den Websites. Und man ist ja zu geizig gleich ein großzügig dimensioniertes Volume zu seinem Server zu bestellen 😉
Daher kommt es oft vor, dass das Monitoring eine beinahe volle Partition meldet und ich dann handeln muss damit der Server nicht irgendwann stehen bleibt. Dazu möchte ich ungern den Server herunterfahren bzw. neustarten.
Wie?
Zum Glück geht das mit einer ext4 formatierten Partition unter Linux ganz einfach. Hier die Schritte
- Zunächst muss man natürlich das Volume an physikalisch vergrößern. Bei meinem Cloud Provider gridscale geht das zum Glück mit 2 Klicks
- Anschließend öffnet man das Programm parted auf dem betroffenen Volume z.B. mit
parted /dev/sda
(sollte parted nicht installiert sein, muss man das entsprechend seiner Distribution eben nachholen z.B. mitapt install parted
oderyum install parted
oderapk add parted
- Nun lässt man parted mit dem Befehl
print
die Infos zu den aktuellen Partitionen und dem Volume ausgeben - Mit dem parted Befehl
resizepart [Nummer der Partition die resized werden soll]
geht es nun weiter. Nach Enter warnt euch parted dass die Partition gerade genutzt wird, kann man aber ignorieren.
HINWEIS: Habt ihr mehrere Partitionen auf diesem Volume und die zu vergrößernde ist nicht die letzte Partition, geht es ggf. nicht so einfach. Ist hinter der Partition nur noch eine Swap Partition oder anderes unwichtiges, kann man natürlich diese einfach löschen und am Ende wieder herstellen. Für kompliziertere Fälle empfehle ich diesen Artikel: https://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/ - parted fragt nun, wo denn das Ende der Partition nun hin soll. Das ist idealerweise die Größe des gesamten Volumes (wird im
print
Befehl angezeigt). Habt ihr vorher eine Swap Partition gelöscht müsst ihr den Platz der wieder für die Swap benötigt wird abziehen und anschließend die Swap Partition wieder erstellen - Mit Enter wird die Partition resized und ihr könnt parted mit
quit
beenden. - Aber die Partition ist – wie z.B. ein
df -H
zeigt noch immer nicht wirklich gewachsen, zumindest hat Linux das noch nicht mitbekommen. Hier hilft nun abschließend der Befehlresize2fs /dev/sda1
(wobei anstatt „/dev/sda1“ euer Volume (hier „/dev/sda“ für das erste SATA Laufwerk) + die Partitionsnummer beginned bei 1 (hier „1“) angegeben werden muss) - Nach diesem Befehl sollte euch ein
df -H
nun die vergrößere Partition anzeigen und es der Server sollte weiterlaufen als wäre nichts gewesen