Das Problem: Kein Platz mehr auf /var
Es ist also wieder einmal passiert: Der Heimserver, der eigentlich nie für große Datenbank-Arbeiten gedacht war schlägt sich tapfer als Tileserver für Openstreetmap Karten. Nachdem das bei der Installation nicht abzusehen war, habe ich /var
nicht auf eine eigene Partition gelegt und die root-Partition ist jetzt natürlich voll.
Jetzt könnte man ein bestehendes Logical Volume verkleinern (zuvor natürlich auch das unterliegende Filesystem) und den neu freigegebenen Platz für ein neues LV verwenden und dieses dann unter /var
mounten. Der Quick-and-dirty-workaround ist /var
einfach auf eine bestehende Partition zu verschieben und dann zu verlinken (softlink). Gesagt, getan, nur apparmor, der Sicherheitsdienst von Ubuntu-Linux ist damit nicht ganz einverstanden.
kernel: [11407.253478] type=1400 audit(1346434922.210:36): apparmor="DENIED" operation.....
OK, jetzt kann man die apparmor-Profile anpassen, aber das ist gar nicht ganz trivial und vor allem muss das für jede neue Software wieder gemacht werden.
bind bindet Verzeichnisse wie Mount-Points
Hier kommt eine seit Kernel 2.4 bestehende Erweiterung zu Hilfe: Die mount
-Option bind
kann Teile der Verzeichnisstruktur als eigenen Mount-Point einhängen. In der /etc/fstab
kann das dann so aussehen:
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 /dev/mapper/vg1-root / ext4 errors=remount-ro 0 1 /dev/mapper/vg1-swap none swap sw 0 0 /dev/mapper/vg1-mm /media/mm ext4 defaults 0 0 /media/mm/var /var none bind
Jetzt ist liegt /var
physikalisch auf der Partition mm und kann den ganzen Plattenplatz dieser Partition (LV in diesem Fall) verwenden.
Wie gesagt, ein Quick-and-dirty hack, aber dies können ja manchmal auch ganz nützlich sein …