Diese Anleitung geht davon aus, daß sich Cubian bereits auf dem NAND-Flash befindet. Das Cubian-Betriebssystem benutzt folgende Partitionen auf dem NAND-Flash:
- nanda -> Boot-Bereich
- nandb -> Root-Filesystem
In dieser Anleitung werden wir den Bootbereich auf 'nanda' belassen, der Root-Filesystembereich von 'nandb' auf die Festplatte umgezogen. Zum Booten wird das NAND-Flash verwendet, für Filesystem und Swap die SATA-Festplatte.
Festplatte vorbereiten
Der Cubietruck ist herunterzufahren und von der Stromversorgung zu trennen. Die im Gehäuseunterteil eingebaute SATA-Festplatte ist über das mitgelieferte SATA-Kabel am Cubietruck anzuschließen. Bitte bei den beiden weißen Steckverbindern auf die Kabelfarben achten!
Hier sieht man die Verbindung mit dem SATA-Kabel:
Nach dem Booten des Cubietruck ist ein SSH-Terminal zu verbinden. Man meldet sich als Benutzer 'cubie' an und wechselt die Shell, damit man zum 'root'-Benutzer wird:
sudo bash
Die SATA-Platte muß für das Root-Filesystem eine primäre Partition erhalten, welche mit dem Filesystem 'ext4' formatiert wird. Mit folgenden Befehlen wird die Harddisk vorbereitet:
Alle verfügbaren Speicher auflisten, hier findet man das NAND-Flash (grün markiert) und die Festplatte (rot markiert):
fdisk -l
Disk /dev/nand: 7700 MB, 7700742144 bytes
255 heads, 63 sectors/track, 936 cylinders, total 15040512 sectors Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000 Disk /dev/nand doesn't contain a valid partition table
Disk /dev/nanda: 67 MB, 67108864 bytes 255 heads, 63 sectors/track, 8 cylinders, total 131072 sectors Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System
Disk /dev/nandb: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/nandb doesn't contain a valid partition table
Disk /dev/nandc: 3321 MB, 3321888768 bytes 255 heads, 63 sectors/track, 403 cylinders, total 6488064 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xffffffff Disk /dev/nandc doesn't contain a valid partition table
Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Disk /dev/sda doesn't contain a valid partition table
Der Befehl 'fdisk' zeigt bei NAND-Partitionen an, daß keine gültige Partitionstabelle vorhanden ist. Das liegt daran, daß der 'fdisk'-Befehl nicht für NAND-Flash ausgelegt ist. Wir sehen zumindest, welche NAND-Partitionen vorhanden sind. Da im Beispiel eine 500GB-Festplatte zum Einsatz kommt, muß man zuerst die Partitionen planen:
- 300GB -> Root-Filesystem
- 50GB -> Swap-Bereich
- 150GB -> Für Daten-Backups
Jetzt wird die Festplatte partitioniert, man gibt die Gerätedatei der gesamten Platte an. 'fdisk' hat einen Befehlsmode:
fdisk /dev/sda
d<Enter>1<Enter> Löschen einer eventuell vorhandenen Partition
p Nachsehen, ob der Befehl erfolgreich war
Die Partitionen sollten den Typ "83" erhalten!
n<Enter>p<Enter>1<Enter><Enter>+300G<Enter> für das Root-Filesystem
n<Enter>p<Enter>2<Enter><Enter>+50G<Enter> für den SWAP
n<Enter>p<Enter>3<Enter><Enter><Enter> für den Backup-Bereich
v Die Partitionierung wird mit Verify überprüft
w Partititionstabelle auf Festplatte schreiben und 'fdisk' beenden.
Das Ergebnis sollte folgendermaßen aussehen (bei einer 500GB-Platte):
Device Boot Start End Blocks Id System /dev/sda1 2048 629147647 314572800 83 Linux /dev/sda2 629147648 734005247 52428800 83 Linux /dev/sda3 734005248 976773167 121383960 83 Linux
Die erste Partition für das Root-Filesystem wird mit EXT4 formatiert:
mkfs.ext4 /dev/sda1
Cubian auf die Festplatte übertragen
Jetzt ist das Root-Filesystem von /dev/nandb auf die erste Partition der Harddisk /dev/sda zu kopieren. Das kann viele Minuten (20-30) dauern, der 'dd'-Befehl gibt keine Rückmeldung - bitte Geduld!
dd if=/dev/nandb of=/dev/sda1 bs=1M
Nach dem Kopieren ist das Root-Dateisystem auf der Festplatte zu überprüfen und ggf. zu reparieren:
e2fsck -f /dev/sda1
Beim Kopieren des NAND-Inhalts mit "dd" ist das Filesystem von /dev/sda1 auf die Größe des /dev/nandb geschrumpft. Nach der Überprüfung wird das Dateisystem der Kopie an die Größe der Partition 1 der Platte angepasst (auch das dauert ein paar Minuten ohne Bildschirmausgabe):
resize2fs /dev/sda1
![]() |
Die folgenden Befehle weichen von anderen Anleitungen im Internet ab. Die Datei 'uEnv.txt' liegt nicht mehr auf /dev/nanda sondern im Rootfilesystem (/dev/nandb) im Unterverzeichnis 'boot'. Dies liegt vermutlich daran, dass ich die neuesten Updates von Cubian installiert habe. |
Jetzt müssen die Boot-Parameter in der Datei "uEnv.txt" angepasst werden, damit das Cubietruck in Zukunft von der Festplatte bootet. Zuerst wird die zweite NAND-Partition an einen Hilfspunkt gemountet und anschließend das Bootfile editiert:
mkdir /mnt/temp
mount /dev/nandb /mnt/temp
Das File befindet sich im /boot-Unterverzeichnis. Der Parameter "root=/dev/nandb" ist zu ersetzen durch die erste Plattenpartition "root=/dev/sda1":
nano /mnt/temp/boot/uEnv.txt
console=tty0
root=/dev/sda1 rootwait
extraargs=console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:$
machid=10bb
Nach Anpassung der Datei auf 'nandb' muß sie auch noch auf '/dev/sda1' angepaßt werden. Dorthin hatten wir mit dem 'dd'-Befehl vorhin den Inhalt von /dev/nandb kopiert:
sync
umount /dev/temp
nano /boot/uEnv.txt
console=tty0
root=/dev/sda1 rootwait
extraargs=console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:$
machid=10bb
Jetzt ist noch die Filesystem-Tabelle anzupassen:
nano /etc/fstab
#<file system> <mount point> <type> <options> <dump> <pass>
/dev/sda1 / ext4 defaults 0 1
Jetzt alle Änderungen auf die Festplatte schreiben und neu booten:
sync
reboot
Nach dem Boot meldet man sich wieder als 'cubie'-Benutzer an und stellt fest, welche Bereiche der Platte verwendet werden:
sudo bash
df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 296G 742M 280G 1% /
/dev/root 296G 742M 280G 1% /
devtmpfs 912M 0 912M 0% /dev
tmpfs 183M 176K 183M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 365M 0 365M 0% /run/shm
Man sieht an der 'Size', dass die Partition mit 296GB für das Root-Filesystem verwendet wird.
Einrichten des Datenbereichs
Auf der SATA-Platte ist noch Partition 3 mit etwa 150GB verfügbar. Sie soll später für Datenbank-Exporte oder Backups dienen:
Die dritte Partition für das Root-Filesystem wird mit EXT4 formatiert:
mkfs.ext4 /dev/sda3
Ein Mountpoint wird erstellt:
mkdir /mnt/backup
und die Partition an den Mountpoint verbunden:
mount /dev/sda3 /mnt/backup
Dies funktioniert nur bis zum nächsten Boot. Damit der Mount permanent eingerichtet wird, muß man ihn in der Filesystem-Tabelle eintragen:
nano /etc/fstab
#<file system> <mount point> <type> <options> <dump> <pass>
/dev/sda1 / ext4 defaults 0 1
/dev/sda3 /mnt/backup ext4 defaults 0 2
reboot
Nach dem Reboot wieder anmelden und
mount
eingeben. Das Backup-Filesystem ist jetzt eingebunden:
/dev/sda3 on /mnt/backup type ext4 (rw,relatime,data=ordered)
Ba jetzt können dort Daten gespeichert werden!
Einrichtung eines Swap-Bereichs auf einer Partition
Wenn ein Swap auf einer eigenen Partition eingerichtet wird, funktioniert er wesentlich performanter ein Filesystem-Swap. Zuerst bereiten wir die zweite Partition /dev/sda2 vor und ergänzen dann die /etc/fstab. In einem dritten Schritt wird der Filesystem-Swap entfernt.
sudo bash
cat /proc/swaps
zeigt uns den aktuellen Swap:
Filename Type Size Used Priority
das heißt, daß kein Swap eingerichtet ist. Der Swap wird jedoch für speicherintensive Anwendungen (z.B. Datenbanken) benötigt, wenn der Kernel temporär Speicherbereiche in den Swap auslagern muß. Zuerst wird die Partition für den Swap vorbereitet:
mkswap /dev/sda2
Anschließend wird der swap gestartet:
swapon /dev/sda2
Mit dem Editor wird der Swap in der /etc/fstab permanent verankert:
nano /etc/fstab
#<file system> <mount point> <type> <options> <dump> <pass>
/dev/sda1 / ext4 defaults 0 1
/dev/sda2 swap swap defaults 0 0
/dev/sda3 /mnt/backup ext4 defaults 0 2
und neu gebootet:
reboot
Nach dem reboot wieder als 'cubie' anmelden und in den Root-Kontext schalten:
sudo bash
Jetzt Swap-Informationen abrufen:
swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 52428796 0 -1
Jetzt ist auch der Swap eingerichtet, wir können mit dem Cubietruck arbeiten.
Nutzung
Spätestens jetzt sollten einige wichtige Grundkonfigurationen am System vorgenommen werden. Diese sind im Folgekapitel beschrieben!