Das Problem ist sowohl unter etch wie auch unter lenny aufgetreten, auf einer 80- wie auf einer 120gb-platte. Bei der Installation hatte ich ein lvm mit Verschlüsselung der gesamten Platte (mit Ausnahme der /boot-Partition) ausgewählt und die Vorschläge des Installers über die Partitionsgrößen ohne Kontrolle abgenickt. Sowohl unter etch wie auch unter lenny schlägt der Installer für das root-Verzeichnis leider eine viel zu kleine Partitionsgröße vor. Vielleicht ist das ein systematisches Problem, aber so viele Wortmeldungen zu diesem Thema habe ich über die SuFu nicht gefunden. Für einige Wochen bis Monate funktioniert das System. Nach mehreren Installations- oder upgrade-Vorgängen kommt bei einem
die Fehlermeldung:
unterprozess paste getötet mit signal (broken pipe)
fehler traten auf beim bearbeiten von:
/var/cache/apt/...
... returned an error code (1)
.
Mit
Dateisystem Größe Benut Verf Ben% Eingehängt auf
/dev/mapper/$name-der-volume-group-root 276M 276M 0 100% /
(...)
erfuhr ich, daß die root-Partition vollgelaufen war. Kein Wunder, 276MB sind viel zu sparsam. Die üblichen Tips
oder
brachten leider keinen Erfolg. Auch in
/var/log/$diverse_unterverzeichnisse
fanden sich keine platzfressenden Dateien.
So habe ich das root-Verzeichnis vergrößert:
Alle bearbeiteten Partitionen haben ein etx3-filesystem. Den Rechner habe ich mit einer Live-CD (knoppix) gebootet. Das Paket
cryptsetup ist wohl auf der knoppix-CD nicht dabei, daher übers Internet oder sonstwie mit
ohne Passwort root werden und
machen. Anschließend das Modul dm-crypt nachladen:
.
/dev/hda1 war meine unverschlüsselte /boot-Partition, das verschlüsselte logical volume (lv) war /dev/hda2.
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Anschließend zeigt
Platte /dev/hda: 120.0 GByte, 120034123776 Byte
255 Köpfe, 63 Sektoren/Spuren, 14593 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Gerät boot. Anfang Ende Blöcke Id System
/dev/hda1 * 1 31 248976 83 Linux
/dev/hda2 32 14593 116969265 83 Linux
Platte /dev/dm-0: 119.7 GByte, 119775474688 Byte
255 Köpfe, 63 Sektoren/Spuren, 14561 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Festplatte /dev/dm-0 enthält keine gültige Partitionstabelle
Um noch einmal zu sehen, was sich in dem lv befindet:
PV /dev/dm-0 VG $name-der-volume-group lvm2 [111,55 GB / 0 free]
Total: 1 [111,55 GB] / in use: 1 [111,55 GB] / in no VG: 0 [0 ]
Reading all physical volumes. This may take a while...
Found volume group "$name-der-volume-group" using metadata type lvm2
sagt mir: ein physical volume mit einer volume group.
inactive '/dev/$name-der-volume-group/root' [108,61 GB] inherit
inactive '/dev/$name-der-volume-group/swap_1' [2,59 GB] inherit
inactive '/dev/$name-der-volume-group/usr' [4,77 GB] inherit
inactive '/dev/$name-der-volume-group/var [2,86 GB] inherit
inactive '/dev/$name-der-volume-group/tmp [392,00 MB] inherit
inactive '/dev/$name-der-volume-group/home [100,67 GB] inherit
Um das zu kleine root-Verzeichnis zu vergrößern, verkleinereich mein /home. Vorsicht: auf dem /home sollte aber noch ausreichend Platz sein und nicht mehr abgezwackt werden, als an freiem Speicherplatz zur Verfügung steht, sonst ist am Ende das Filesystem kompromitiert und ein Datenverlust die Folge. Backup erfolgt?
Jetzt schaut man sich besser noch mal die entsprechenden Kommandos an.
Code: Alles auswählen
$ man e2fsck
$ man resize2fs
$ man lvreduce
$ man lvextend
Zunächst wird das Filesystem gecheckt mit
Code: Alles auswählen
# e2fsck -f /dev/$name-der-volume-group/home
# e2fsck -f /dev/$name-der-volume-group/root
Dann wird das Filesystem auf dem logical volume verkleinert. So
(mit dem Argument der absoluten Größe ohne Vorzeichen wird die neue Größe festgelegt.) oder so:
Mit Vorzeichen wird das Filesystem um die entsprechende Größe vergrößert oder verkleinert.
Anschließend kann das logical volume auf die gleiche Größe verkleinert werden:
oder
Gleiches nun in anderer Reihenfolge auf dem zu vergrößernden logical volume.
Erst das Volume vergrößern, dann das Filesystem darauf ausbreiten:
Code: Alles auswählen
#lvextend -L +1G /dev/$name-der-volume-group/root
# resize2fs +1G /dev/$name-der-volume-group/root
oder
Code: Alles auswählen
#lvextend -L 1276M /dev/$name-der-volume-group/root
# resize2fs 1276M /dev/$name-der-volume-group/root
Anschließend die Integrität der Filesysteme überprüfen:
Code: Alles auswählen
# e2fsck -f /dev/$name-der-volume-group/home
# e2fsck -f /dev/$name-der-volume-group/root
Geschafft! Rebooten und sich über ein funktionierendes System freuen.
Grüße
Manes