Um eine zusätzliche Swap-Partition einzurichten müssen Sie auf der Festplatte eine neue Partition anlegen. Dies können Sie mit dem Befehl fdisk (10.1.1) erledigen.
Nehmen wir einfach mal an, daß Sie eine zweite Festplatte (/dev/hdb) in Ihren Rechner eingebaut haben. Um die Swap-Performance zu verbessern, sollten Sie auf dieser zweiten Platte auch eine Swap-Partition einrichten. Starten Sie also das Programm fdisk.
enterprise:~ # fdisk /dev/hdb The number of cylinders for this disk is set to 5005. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Befehl (m für Hilfe):
Mit dem Befehl n legen wir nun eine neue Partition an. Und zwar eine primäre Partition mit der Größe von 256 MB.
Befehl (m für Hilfe): n Befehl Aktion l Logische Partition (5 oder größer) p Primäre Partition (1-4) p Erster Zylinder (1-5005) [Standardwert: 1]: Benutze den Standardwert 1 Letzter Zylinder oder +Größe, +GrößeK oder +GrößeM (1-5005) [Standardwert: 5005]: +256M
Mit dem Befehl p überprüfen wir den Eintrag in der Partitionstabelle und notieren uns die Werte.
Befehl (m für Hilfe): p Festplatte /dev/hdb: 255 Köpfe, 63 Sektoren, 5005 Zylinder Einheiten: Zylinder mit 16064 * 512 Bytes Gerät boot. Anfang Ende Blöcke Id Dateisystemtyp /dev/hdb1 1 34 273088 82 Linux Swap
Nun brauchen wir nur noch mit w die Partitionstabelle zu schreiben und das Programm zu verlassen. Danach muß der Rechner neu gestartet werden, damit die neue Partitionstabelle übernommen wird.
enterprise:~ # dd if=/dev/zero of=/swap bs=1024 count=16384 16384+0 Records ein 16384+0 Records aus enterprise:~ # ls -l /swap -rw-r--r-- 1 root root 16777216 Nov 17 12:15 /swap
Das Gerät /dev/zero ist praktisch das Gegenteil von /dev/null. Während /dev/null praktisch ein WOM (Write Only Memory) ist, der alle Informationen schluckt und Sie nicht wieder hergibt, ist /dev/null ein unendlich großer Datenträger, auf dem aber nur Nullen stehen. Der obige Befehl liest praktisch 16384 Blöcke mit 1024 Bytes von diesem Gerät und schreibt Sie in die Datei /swap.
Nach dem Anlegen der Datei sollten Sie sicherheitshalber mit dem Befehl sync (10.3.4) die Dateisysteme wieder synchronisieren.
Auf keinen Fall darf die Swap-Datei eine Lücke besitzen. Die Blöcke der Datei müssen sich hintereinander auf der Platte befinden.
mkswap -c GERÄTENAME
GERÄTENAME steht für den Namen der Partition bzw. der Datei. Der Schalter -c ist optional und bewirkt, daß der Swap-Bereich bei der Formatierung auf fehlerhafte Blöcke untersucht wird.
Nehmen wir als Beispiel mal die oben angelegte Swap-Partition. Mit dem folgenden Befehl wird sie als Swap-Bereich formatiert.
enterprise:~ # mkswap -c /dev/hdb1 Swapbereich Version 1 mit der Größe 279642112 Bytes wird angelegt
Die Swap-Datei wird analog angelegt. Nur daß anstatt des Gerätenamens, der Dateiname angegeben wird.
enterprise:~ # mkswap -c /swap Swapbereich Version 1 mit der Größe 16773120 Bytes wird angelegt enterprise:~ # sync
Nach dem Einrichten einer Swap-Datei sollten Sie immer das Dateisystem mit sync synchronisieren um sicherzugehen, daß die Informationen auch physikalisch auf die Platte übertragen worden sind. Dies ist bei der Swap-Partition natürlich nicht nötig.
Als Beispiel schauen wir uns doch mal die Einbindung unserer Swap-Datei ins System an.
enterprise:~ # free total used free shared buffers cached Mem: 513448 466992 46456 0 63500 258672 -/+ buffers/cache: 144820 368628 Swap: 1028120 0 1028120 enterprise:~ # swapon /swap enterprise:~ # free total used free shared buffers cached Mem: 513448 467032 46416 0 63528 258672 -/+ buffers/cache: 144832 368616 Swap: 1044496 0 1044496 enterprise:~ # swapoff /swap enterprise:~ # free total used free shared buffers cached Mem: 513448 467036 46412 0 63536 258672 -/+ buffers/cache: 144828 368620 Swap: 1028120 0 1028120
Auf jeden Fall sollten Sie eine Swap-Datei nur dann löschen, wenn Sie sie vorher mit swapoff deaktiviert haben.
Wie üblich ist dieser Befehl nicht von Dauer. Nach einem Reboot ist der Swap-Bereich wieder inaktiv. Die Swap-Bereich müssen also bei jedem Start initalisiert werden. Dies geschieht mit dem Befehl swapon -a in einer der Startdateien.
swapon -a liest die Informationen aus der Datei /etc/fstab aus. Wenn dort Informationen des Typs
/dev/hda6 swap swap sw 0 0
bzw.
/dev/hdb1 swap swap pr=42 0 0
dann werden die jeweiligen Swap-Bereiche beim Booten initialisiert. Sie sollten für jeden neu angelegten Swap-Bereich einen Eintrag zur /etc/fstab hinzufügen.