Update: Es ist sinnvoller, eine SWAP-Partition anzulegen! Ich habe diesen Artikel entsprechend geändert. Wenn ihr bereits diese Anleitung durchgeführt habt, schaut euch diesen Artikel an.
In diesem Artikel beschreibe ich, wie man die SWAP-Partition Datei unter fyp anlegt. Er unterteilt sich in zwei Schritte:
- Vorbereitung der SD-Karte (Partitionierung, Formatierung)
Anlegen und Aktivierung der SWAP-Partition Datei
Bereits durchgeführte Schritte müssen natürlich nicht erneut durchgeführt werden. Diese Anleitung versteht sich als anfängerfreundliche, ausführliche Schritt-für-Schritt-Anleitung.
Schritt 1: SD-Karte vorbereiten
In diesem Schritt werden auf der SD-Karte zwei Partitionen angelegt – eine SWAP-Partition (ca. 128 MB) und eine Partition für /home (Rest der Speicherkarte) eine für die SWAP-Datei, eine für /home. Die SWAP-Datei wird ca. 120 MB groß sein, der Rest ist für /home.
Ich gehe davon aus, dass es sich um eine jungfräuliche Karte handelt, d.h. es existieren noch keine Partitionen. Bestehende Partitionen werden entfernt. Falls ihr bereits Daten in /home gespeichert habt, kopiert sie bitte an einen sicheren Ort und später nach /home zurück.
Hinweis: Alle Daten auf der SD-Karte werden gelöscht!
Zunächst muss man die Bezeichnung herausfinden, dies geschieht mit dem Befehl dmesg | grep 'mmc' mit folgender Ausgabe:
debian-gta02:~# dmesg | grep 'mmc'
[21474538.610000] mmc0: queuing CIS tuple 0x01 length 3
[21474538.630000] mmc0: queuing CIS tuple 0x1a length 5
[21474538.640000] mmc0: queuing CIS tuple 0x1b length 8
[21474538.660000] mmc0: queuing CIS tuple 0x80 length 1
[21474538.660000] mmc0: queuing CIS tuple 0x81 length 1
[21474538.665000] mmc0: queuing CIS tuple 0x82 length 1
[21474538.670000] mmc0: new SDIO card at address 0001
[21474578.510000] mmc1: new high speed SD card at address b368
[21474578.555000] mmcblk0: mmc1:b368 UD 486 MiB
In Zeile 10 steht der gesuchte Bezeichner: “mmcblk0″. Nun lässt sich die Karte partitionieren:
fdisk /dev/mmcblk0
Man kann sich jetzt jederzeit mit dem Kommando m die verfügbaren Kommandos anzeigen lassen. Abbrechen (ohne Änderungen) kann man jederzeit mit dem Kommando q.
Mit dem Kommando p werden alle existierenden Partitionen angezeigt. Falls Partitionen vorhanden sind, lassen sich diese mit dem Kommando d löschen. Jetzt wird die erste primäre Partition mit dem Kommando n angelegt. Als Partitionsnummer wird 1 gewählt und für den ersten Zylinder wird der Standardwert benutzt (mit Enter bestätigen). Die Größe soll 128 MB betragen: als Parameter wird +128M eingegeben. Mit dem Kommando t lässt sich die system id ändern, der hex code für Linux/SWAP ist 82 (die verfügbaren Codes lassen sich an dieser Stelle mit dem Kommando L anzeigen, im normalen fdisk-Modus mit dem Kommando l). Abschließend wird die angelegte Partition mit p angezeigt.
Command (m for help): p
Disk /dev/mmcblk0: 510 MB, 510132224 bytes
8 heads, 7 sectors/track, 17792 cylinders
Units = cylinders of 56 * 512 = 28672 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-17792, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-17792, default 17792): +128M
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
Command (m for help): p
Disk /dev/mmcblk0: 510 MB, 510132224 bytes
8 heads, 7 sectors/track, 17792 cylinders
Units = cylinders of 56 * 512 = 28672 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 4465 125016+ 83 Linux
Jetzt wird die zweite Partition mit n angelegt. Außer der Partitionsnummer 2 werden die Standardwerte benutzt. Dadurch wird der restliche, unbenutzte Platz auf der Karte für die Partition benutzt. Zum Abschluss werden wieder die Partitionen mit p angezeigt:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (4466-17792, default 4466):
Using default value 4466
Last cylinder or +size or +sizeM or +sizeK (4466-17792, default 17792):
Using default value 17792
Command (m for help): p
Disk /dev/mmcblk0: 510 MB, 510132224 bytes
8 heads, 7 sectors/track, 17792 cylinders
Units = cylinders of 56 * 512 = 28672 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 4465 125016+ 83 Linux
/dev/mmcblk0p2 4466 17792 373156 83 Linux
Hier sind die beiden Partition zu sehen. Bis jetzt wurde noch nichts auf die SD-Karte geschrieben. Wer jetzt noch abbrechen will, kann dies mit dem Kommando q tun.
Die Änderungen an der Partitionstabelle werden erst durch das Kommando w gespeichert:
Command (m for help): w
The partition table has been altered!
Zum Schluss wird die zweite Partition werden die beiden Partitionen mit dem Dateisystem ext2 formatiert:
Schritt 2: SWAP-Partition SWAP-Datei
Zunächst wird das Verzeichnis /mnt/msd angelegt, falls es noch nicht existiert und die SWAP-Partition aus dem 1. Schritt gemountet:
mkdir /mnt/msd
mount /dev/mmcblk0p1 /mnt/msd
Der nächste Schritt dauert ein paar Minuten, also nicht ungeduldig werden – das Anlegen der SWAP-Datei:
dd if=/dev/zero of=/mnt/msd/swapfile bs=1024 count=128M
Da auf der Partition keine 128 MB frei sind (nur ca. 120 MB), bricht dd mit einer Warnung ab, das macht aber nichts.
Mit mkswap /mnt/msd/swapfile wird die Datei zur SWAP-Datei. Aktiviert wird sie mit
swapon /mnt/msd/swapfile
sync
Die Partition wird zur SWAP-Partition mit:
mkswap /dev/mmcblk0p1
Aktiviert wird sie mit
swapon /dev/mmcblk0p1
sync
Dies ist allerdings nur temporär. Um die SWAP-Datei beim Start automatisch zu mounten, muss die Datei /etc/fstab editiert werden, z.B. mit
nano /etc/fstab
und dann diese Zeilen unten anhängen:
/dev/mmcblk0p1 none swap sw 0 0
/dev/mmcblk0p2 /home ext2 defaults,noatime 0 0
Nach einem Neustart, kann man mit dem Befehl free testen, ob alles geklappt hat:
debian-gta02:~# free
total used free shared buffers cached
Mem: 120808 101640 19168 0 64 47896
-/+ buffers/cache: 53680 67128
Swap: 117568 66580 50988
Stehen nach “Swap:” nur Nullen, ist irgendetwas schief gelaufen. Ansonsten: herzlichen Glückwunsch zur SWAP-Partition Datei! 
Das Home-Verzeichnis /home befindet sich nun auf der SD-Karte und wird bei einem eventuellen Distributionswechsel nicht gelöscht. Außerdem könnt ihr jetzt dazu übergehen, Maps für tangoGPS herunterzuladen. Dafür ist es nämlich sinnvoll, die Maps wegen der Dateigrößen auf der SD-Karte zu speichern. Dazu aber mehr im nächsten Artikel…