Cubietruck: Ein System von NAND Speicher auf die Festplatte verschieben

Cubietruck-kl Die Anleitung gilt für alle Linux Systeme auf dem Cubietruck. Im aktuellen Fall verschiebe ich Cubieez.

Zuerst steht natürlich ein Einloggen via ssh auf dem Programm, aber man kann sich auch lokal einloggen. Das macht keinen Unterschied. Auf jeden Fall müssen wir uns ansehen was wir überhaupt haben. Dazu machen wir im root (Superuser) Terminal ein: 

root@XYZ:~# df
Dateisystem 1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
/dev/root 7225720 2058224 4856424 30% /
devtmpfs 966292 0 966292 0% /dev
tmpfs 193280 548 192732 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 386540 72 386468 1% /run/shm
tmpfs 966396 12 966384 1% /tmp
tmpfs 966396 0 966396 0% /var/tmp

Der Hostname muss natürlich an den von euch gewählten angpasst werden. Die Ausgabe zeigt mir eine gemountete Partition /dev/root mit 8 GB Kapazität. Der Rest liegt wie man sieht im RAM. Die root-Parition ist zu 30% gefüllt. Das kann reichen aber je nach Einsatz wird es das nicht. Sehen wir nach was wir überhaupt an Massenspeichern haben: 

root@XYZ:~# cat /proc/partitions
major minor #blocks name

93 0 7520256 nand
93 1 65536 nanda
93 2 7340032 nandb
93 3 98304 nandc
8 0 488386584 sda
8 1 488385560 sda1

Es gibt demnach zwei Laufwerke, nand und sda. Nand ist der NAND-Flashspeicher und sda ist die normale Festplatte. Nand hat drei Partitionen, nanda, nandb und nandc. Die Festplatte hat eine, nämlich sda1. Letztere stammt aus früheren Versuchen, muss weg und gegen eine neue ausgetauscht werden. Das wird via fdisk erledigt. Als nächstes also ein: 

fdisk /dev/sda

Die Ausgabe davon ist nur der Hinweis auf m wie Hilfe. Wir drücken p um die Partitionstabelle anzeigen zu lassen:

Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes
81 heads, 63 sectors/track, 191411 cylinders, total 976773168 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: 0x0007cebd

Device Boot Start End Blocks Id System
/dev/sda1 2048 976773167 488385560 83 Linux

Command (m for help):

Wir sehen eine 500 GB HDD mit einer Partition die die ganze Platte umfasst. Ich könnte die jetzt einfach formatieren, aber ich will ja eine Anleitung schreiben, also wird die gelöscht mit als Eingabe. Das Linux fragt nicht nach einer Partition-Nummer weil es nur eine gibt. Diese wird direkt ausgewählt. Ansonsten müsste man jetzt die Nummer der Partition angeben. Diese Veränderung ist noch nicht auf die Platte geschrieben. Das passiert erst wenn wir w wie write eingeben. Alle unsicheren Fälle sollten jetzt ein q wie Quit wählen. Wird also w und enter gedrückt ist die Partition weg. 

Es muss eine neue her. Also nochmal ins fdisk, aber diesmal tippen wir n wie new. Dann kommt die Frage ob es eine primäre oder erweiterte Partition sein darf. Wir wählen p wie primär. Da wir nur eine Partition brauchen, die Swap Partition kommt später, können wir einfach Enter drücken, oder eben eine 1 angeben. Beides geht. Danach wird nach Start und Ende der Partition gefragt. In diesem Fall können wir jeweils einfach Enter drücken. Hier Ausgabe des Vorgangs: 

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-976773167, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167):
Using default value 976773167

Command (m for help):

Damit haben wir auf dem Laufwerk sda eine Partition /dev/sda1 erzeugt. Die Ausgabe der Partitionstabelle bestätigt das. Wie ihr seht habe ich bei der Partitionnummer nur Enter gedrückt und nichts eingegeben. Das Ergebnis ist: 

Command (m for help): p

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 / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007cebd

Device Boot Start End Blocks Id System
/dev/sda1 2048 976773167 488385560 83 Linux

Command (m for help):

Wir sehen das unsere Festplatte jetzt eine Partition hat. Wir sollten mit w speichern: 

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
root@XYZ:~#

Jetzt hat die Festplatte immer noch eine Partition, allerdings eine neue. Die muss formatiert werden. Unter Linux ist Ext4 Standard, das nehmen wir. Linux beherrscht übrigens über 80 verschiedene Dateisysteme. Also los gehts: 

root@XYZ:~# mkfs.ext4 /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
/dev/sda1 hat ein ext4-Dateisystem
zuletzt auf / auf Sun Feb 28 18:56:41 2016
eingehängtTrotzdem fortfahren? (j,n) j
Ein Dateisystems mit 122096390 (4k) Blöcken und 30531584 Inodes wird erzeugt.
UUID des Dateisystems: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock-Sicherungskopien gespeichert in den Blöcken:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000

beim Anfordern von Speicher für die Gruppentabellen: erledigt
Inode-Tabellen werden geschrieben: erledigt
Das Journal (32768 Blöcke) wird angelegt: erledgt
Die Superblöcke und die Informationen über die Dateisystemnutzung werden
geschrieben: erledigt

Wer sich die Ausgabe durchliest wird feststellen das eine Sicherheitsabfrage auf eine bereits gelöschte Partition gemacht wird. Zur Erninnerung wir wollten mit Ext4 formatieren. Diese Ausgabe ist normal, denn durch das write aus fdisk heraus wurde lediglich die Paritionstabelle geändert, aber nicht die Partition. Wir merken uns: Nicht alles was gelöscht scheint ist auch gelöscht. Nach dem Format der gerade durchgelaufen ist, 500 GB dauern bei Linux eine oder zwei Sekunden, ist das eine frische Partition (aber noch immer können die Daten wieder hergestellt werden). Auf jeden Fall haben wir ein Ziel für unser Cubieez. Zeit sich an /dev/nand zu erinnern. 

In /dev/nanda liegen die Boot Dateien unter anderem die wichtige uEnv.txt, in /dev/nandb liegt das Dateisystem (root) und in /dev/nandc Binäres was der Rechner braucht. Wir müssen nanda, nandb und das Ziel sda1 einhängen, dazu brauchen wir unter Linux Mountpunkte die wir unter /tmp hängen weil sie eben nur kurz benutzt werden. Zunächst müssen die Mountpunkte erzeugt werden, woher soll Linux auch wissen wie die heissen: 

mkdir /tmp/a
mkdir /tmp/b
mkdir /tmo/hdd

Damit wurden drei Verzeichnisse erzeugt. Für Linux ist übrigens alles, auch Bildschirm, Tastatur usw. ein Verzeichnis. Jetzt verbinden wir die Partitionen mit den Verzeichnissen: 

mount /dev/nanda /tmp/a
mount /dev/nandb /tmp/b
mount /dev/sda1 /tmp/hdd

Ok, soweit so gut. Alles ist bereit. Kopieren wir das root Filesystem auf die Festplatte. Weil wir Dateien und kein vollständiges Laufwerk kopieren wollen nehmen wir dafür tar:

(cd /tmp/b; tar --backup -c *) | tar -C /tmp/hdd -xv 

Das dauert jetzt eine Weile bis das durch ist, ihr könnt ja mitlesen. Das komplette Linux außer dem Bootsektor wird jetzt auf die Festplatte kopiert. Der Bootsektor verbleibt in /dev/nand und dem müssen wir jetzt sagen das er von der neuen Partition booten soll. Das geht über die uEnv.txt. Zur Verdeutlichung erst einmal eine Auflistung dieser Partition: 

root@XYZ:~# cd /tmp/a
root@XYZ:/tmp/a# ls
boot.axf boot_signature.axf drv_hdmi.drv font32.sft magic.bin prvt.axf sprite.axf uImage
boot.ini drv_de.drv font24.sft linux os_show script.bin uEnv.txt

Die uEnv.txt enthält Boot-Parameter. Ich editiere sie mit nano (pico) aber Puristen nehmen jetzt vi: Also die Eingabe ist: nano uEnv.txt. In der dritten Zeile steht nand_root=/dev/nandb und das ändern wir in nand_root=/dev/sda1 (unsere neue Partition). Danach ein Strg x, ein j und ein Enter um den Editor zu verlassen nachdem dieser die Änderungen gespeichert hat die Kontrolle des Ganzen: 

root@XYZ:/tmp/a# cat uEnv.txt
console=tty0
extraargs=console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1280x720p50 rootwait panic=10 rootfstype=ext4 rootflags=discard
nand_root=/dev/sda1

Alles ist ok. Unser System ist bereit für den ersten Start auf der Festplatte, der Bootsektor zeigt auf die neue Partition. Machen wir's doch einfach über ein simples:

 reboot

Cubietruck bootet jetzt neu und wenn das System gestartet ist öffnen wir ein neues Terminal und verbinden uns wieder über ssh. Wir überprüfen ob wir auf dem richtigen Laufwerk sind mit df, denn die Festplatte ist definitiv größer wie der NAND-Speicher: 

root@XYZ:~# df
Dateisystem 1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
/dev/root 480720616 2221976 454079364 1% /
devtmpfs 966292 0 966292 0% /dev
tmpfs 193280 548 192732 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 386540 72 386468 1% /run/shm
tmpfs 966396 12 966384 1% /tmp
tmpfs 966396 0 966396 0% /var/tmp
root@XYZ:~#

Ok, das war's auch schon wir haben ein komplettes Linux verschoben. Wie immer wurde jeder Schritt der zu machen ist erklärt und parallel vollzogen. 

(Visited 444 times, 1 visits today)
Facebooktwittergoogle_plusredditpinterestlinkedinmail

Schreibe einen Kommentar

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden. Damit diese Seite funktioniert ist es notwendig kleine Dateien (genannt Cookies) auf deinem Computer zu speichern. Zudem erhöhen die Cookies den Bedienungskomfort für dich. Google selbst verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unserer Website zu analysieren. Außerdem gibt Google Informationen zur Nutzung unserer Website an dessen Partner für soziale Medien, Werbung und Analysen weiter. Die geschieht über die eingeblendeten Werbebanner. Wenn du diese Seite benutzt stimmst du der Nutzung von Cookies zu. Über Ihre Browsereinstellungen kannst du entscheiden ob Cookies angenommen werden oder nicht. Auch kannst du Cookies jederzeit und auch gezielt über den Browser löschen. Due kannst den Browser auch so konfigurieren das beim Schliessen alle Cookies automatisch gelöscht werden. Weit über 90% aller Webseiten setzen Cookies. Jedoch werden wir seit dem 26. Mai 2012 per EU Datenschutz Regelung dazu aufgefordert zuerst deine Zustimmung einzuholen.

Schließen