Den Kuchen neu verteilen
resize_reiserfs
Ran an den Speck!
Beim Verkleinern der Partition, die das geschrumpfte Dateisystem enthält, beachten Sie den Hinweis aus der Manpage von resize_reiserfs (man resize_reiserfs, Kasten 2)! Wenn Ihre Partition vorher mit dem 937. Zylinder begann so soll sie auch nachher mit dem 937. beginnen; fdisk -l /dev/hda zeigt in der Spalte Anfang die Startzylinder.
Kasten 2: Aus der Manpage von resize_reiserfs
Make sure you re-create [the partition] with the same starting disk cylinder as before! Otherwise, the resize operation will certainly not work, and you may lose your entire filesystem.
(Lassen Sie die neue Partition unbedingt mit dem gleichen Zylinder beginnen wie die alte! Andernfalls wird die Operation auf keinen Fall funktionieren und Sie verlieren unter Umständen Ihr gesamtes Dateisystem.)
Mit
fdisk /dev/hda
machen Sie sich über /dev/hda her, es erscheint zunächst die Aufforderung
Befehl (m für Hilfe):
m zeigt alle möglichen Kommandos an. Mit d für delete löschen Sie eine Partition. Nach der Eingabe fragt fdisk, auf welche Partition Sie es abgesehen haben; im Beispiel geben wir 8 für /dev/hda8 an. Dann legen Sie an derselben Stelle eine neue Partition an mit n für new. Im Beispiel erstellen wir mit l eine logische Partition, da die Partitionsnummer über 4 liegt. Der Startzylinder der neuen Partition muss nun derselbe sein wie vorher, bei uns 937. Um den Endzylinder zu errechnen, addieren Sie die oben errechnete Partitionsgröße in Zylindern zum Startzylinder, im Beispiel erhalten wir 937 + 2502 = 3439 (Listing 5).
p gibt die neue Partitionstabelle aus. Entspricht sie nicht Ihren Plänen, verlassen Sie fdisk jederzeit mit q und alle Änderungen gehen verloren. Wenn alles wie gewünscht funktioniert hat, speichern Sie die neuen Partitionierungsdaten mit w für write.
Den freigewordenen Platz verteilen Sie nach Bedarf auf neue Partitionen.
Ob /dev/hda8 dabei ein- oder ausgehängt ist spielt keine Rolle, denn der Kernel benutzt die alte Partitionstabelle weiter, solange das System die Festplatte noch verwendet. Das ist beispielsweise dann der Fall, wenn sich die Swap-Partition auf derselben Platte befindet. Um mit der neuen Partitionstabelle zu arbeiten, starten Sie ihr System neu.
Listing 5
Editieren der Partitionstabelle mit fdisk
root@linuxspider:/ # fdisk /dev/hda
Befehl (m für Hilfe): d # delete
, löschen einer Partition
Partitionsnummer (1-8): 8 # hda8
soll weg
Befehl (m für Hilfe): n # new
, neue Partition erstellen
Befehl Aktion
l Logische Partition (5 oder größer)
p Primäre Partition (1-4)l # eine l
ogische Partition soll es werden
Erster Zylinder (937-9964) [Standardwert: 937]: # der Standardwert entspricht hier dem Startzylinder
# der gelöschten Partition, so genügt ein [Enter]
Benutze den Standardwert 937
Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (937-9964) [Standardwert: 9964]: 3439
Befehl (m für Hilfe): p # print
Festplatte /dev/hda: 255 Köpfe, 63 Sektoren, 9964 Zylinder
Einheiten: Zylinder mit 16065 @L: * 512 Bytes
Gerät boot. Anfang Ende Blöcke Id Dateisystemtyp
…
…
/dev/hda8 937 3439 20105316 83 Linux
Befehl (m für Hilfe): w # write
, die Partitionstabelle wird geschrieben
Die Partitionstabelle wurde verändert! # Das war beabsichtigt!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Das Gerät oder
die Ressource ist belegt. # die Swap-Partition wird noch benutzt
The kernel still uses the old table. # der Kernel wird weiterhin die alte Tabelle benutzen
The new table will be used at the next reboot. # und beim nächsten Reboot die Neue einlesen
Syncing disks.
Anschließend sorgt
resize_reiserfs /dev/hda8
ohne weitere Parameter dafür, dass sich das Dateisystem genau an die Größe der Partition anpasst. Dadurch führen auch Rechenfehler bei den Größenberechnungen nicht zu größeren Kapazitätsverlusten.
Abschlussarbeit
Haben Sie neue Partitionen im freigewordenen Festplattenplatz angelegt, z.B. hda9 und hda10, formatieren Sie sie mit dem gewünschten Dateisystem:
mkreiserfs /dev/hda9
für ReiserFS oder
mke2fs /dev/hda10
für ext2. Wollen Sie ext3 als Alternative zu ReiserFS verwenden, erzeugt
tune2fs -j /dev/hda10
ein Journal (-j). hda10 können Sie dann als ext3 oder ext2 mounten. Anschließend passen Sie /etc/fstab an, um das Einhängen zu automatisieren.
Glossar
hda
"Harddisk A" ist die Master-Festplatte am primären IDE-Kanal (IDE0), es folgen hdb für den Slave am ersten Kanal sowie hdc und hdd für Master und Slave am zweiten Kanal (IDE1).
ReiserFS
Hans Reiser entwickelte dieses Dateisystem, das durch Protokollieren der geöffneten Dateien nach einem Absturz schnelles Wiederherstellen ermöglicht ("Journaling Filesystem"). Zudem speichert es kleine Dateifragmente kompakt und verschwendet damit weniger Platz als andere Dateisysteme.
Infos
[1] http://www.knopper.net/knoppix/
[2] http://www.lernnetz-sh.de/kmLinux/
[3] ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/8.2/boot/rescue
[4] Patricia Jung: "Datenrettung in letzter Not", LinuxUser 07/2003 @KE:



