Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke

17.04.2017: Banana Pi - > System von SD Karte auf SSD übertragen...

Der Banana Pi bootet brav von einer SD Karte ? - Jetzt habt ihr eine SSD dran gehängt und würdet gern davon booten ?

Prinzipiell geht das, mit Einschränkungen, denn die SD Karte muss weiter im Banana Pi bleiben. Von dort verweist der Bootsektor auf die SSD und dort wird dann das System geladen.

Der Geschwindigkeitsgewinn ist aber durch die Verwendung einer SSD erheblich ! - kein Vergleich mit einer SD Karte.

OK, Ich setze voraus das die SSD als Fat32 formatiert ist. Weiterhin erwarte ich das man als Root angemeldet ist, sonst müsst ihr ein "sudo" bei jeden befehl davor setzen - oder ihr macht alternativ :"sudo su" und gebt anschließend euer admin Passwort ein.

Getestet wurde dieses vorgehen mit den Images von BananaPi.org mit dem Image "Raspbian Jessie 3.4" und auch erfolgreich mit den "Raspbian Wheezy".

Sinnvoll ist es immer wieder, und man sollte ständig dran denken:

apt-get update

Viele Fehlermeldungen lassen sich damit schon mal umgehen.

Dann den Pfad der SSD herausfinden:

fdisk -l

Eigentlich sollte die Festplatte in dem folgenden Text als "sda" sichtbar werden, bzw. /dev/sda, einige male kam es schoin vor das es als sda1 sichtbar wurde, dann müsst ihr es entsprechend anpassen. Wir gehen mal vom Standard aus, das es "sda" heisst, d.h. es geht folgendermaßen weiter:

Partionieren:

fdisk /dev/sda

Wenn ihr "m" drückt kriegt ihr eine kleine übersicht über die möglichen befehle. Wenn die SSD ganz neu ist braucht ihr nur "n" für eine neue Partition drücken, dann die "p" Primäre Partition wählen und alle anderen fragen nur mit enter bestätigen. Wenn ihr mit dem Partitionieren fertig seid drückt ihr "w" und das ganze zu speichern und das partitionieren zu beenden.

 

Formatieren:

mkfs.ext4 /dev/sda1

Es wurde eine Partition mit dem Namen "sda1" angelegt, die wir jetzt als ext4 formatieren wollen. Das dauert einige Sekunden und dann haben wir es schon fast geschafft.

 

System übertragen:

mkdir /tmp/old
mkdir /tmp/new
mkdir /tmp/boot
mount /dev/mmcblk0p2 /tmp/old
mount /dev/sda1 /tmp/new
rsync -arx --progress /tmp/old/ /tmp/new

Diese Zeilen nach und nach eingeben. Hiermit werden temporäre Ordner und Mountpoints angelegt und anschließend die Daten auf die SSD übertragen. Das kann je nach Füllgrad etwas dauern.

Boot Vector umbiegen:

Jetzt muss der Boot Vector noch umgebogen werden, da muss man aber jetzt aufpassen welche Version von Bananian man installiert hat und welchen Banana Pi man einsetzt ! - ich bin selber darauf hereingefallen, es hat mich viel Zeit gekostet es lauffähig hinzubekommen...


Boot System Vector umbiegen: Bananian 3.1 / Raspberian 3.1 Wheezy - alle Banana Pi´s

mount /dev/mmcblk0p1 /tmp/boot
nano /tmp/boot/uEnv.txt

Der Banana Pi bootet IMMER von der SD Karte, aber dort steht dann der hinweis das es bitteschön auf der "SSD" weiter geht, das passen wir hier an. Die zweite Zeile Startet den "nano" editor, wo wir dann etwas vorsichtuig sein müssen.

Hier suchen wir folgendes: root=/dev/mmcblk0p2 und ersetzen es durch root=/dev/sda1

Wenn das gut war alles speichern und nochmal syncen...

sync

Nach einem Reboot mittels "sudo reboot" sollte das System von SSD booten.

Jetzt noch :

resize2fs /dev/sda1

Um den Speicherplatz dem Medium entsprechend anzupassen.

 


Ab Version 3.4 Bananian (Jessie) funktioniert das mit dem uEnv.txt nicht mehr, es ist etwas komplizierter geworden. Man kann alles wie gehabt oben handhaben, aber statt "nano /tmp/boot/uEnv.txt", geht es jetzt etwas komplizierter weiter:

Erstmal brauchen wir die u-boot tools...

apt-get install u-boot-tools

dann mounten wir das alte Boot Image (SD)

mount /dev/mmcblk0p1 /tmp/boot

Jetzt gibt es je nach Revision des Banana Pi Boards einen eigenen Unterordner, z.b. bpi-m1 für den ersten Banana Pi, den ich hier verwende. Dort editieren wir die boot.cmd datei.

nano /tmp/boot/bananapi/bpi-m1/linux/boot.cmd

Achtung, bei einem Banana Pi Pro würde wahrscheinlich (Ich habe keinen Banana Pi Pro!) die Zeile so aussehen : nano /tmp/boot/bananapi/bpi-m1p/linux/boot.cmd !!! Je nach Board Version muss die richtige boot.cmd angepasst werden, welche es gibt kann man dann hier nachgucken: cd /tmp/boot/bananapi/

bei der Zeile....

setenv bootargs "console=ttyS0,115200 console=tty1 board=${board} root=/dev/mmcblk0p2 rootwait und noch weiter text....

sollte das /dev/mmcblk0p2 gegen /dev/sda1 getauscht werden.

Weiter geht es, die boot.cmd muss noch "konvertiert" werden. (eigentlich nur ausführbar gemacht), dafür begeben wir uns wieder in das Verzeichnis wo wir das boot.cmd erstellt haben und führen die u-booit Tools aus. Auch hier wieder den korrekten Pfad zu passenden Board Revision beachten ! Ein Banana Pi Pro würde man jetzt wahrscheinlich (Ich habe keinen Banana Pi Pro!) mit "cd /tmp/boot/bananapi/bpi-m1p/linux/" aufrufen und dann mit mkimage weiter machen.

cd /tmp/boot/bananapi/bpi-m1/linux/

mkimage -C none -A arm -T script -d boot.cmd boot.scr

sync

Nach einem Reboot sollte der Banana Pi von der SSD booten, was man mit einen df -h überprüfen kann.

NACHTRAG / UPDATE 22.04.2017:

Oliver B. hat einen Banana Pi Pro und hat folgendes geschrieben:

mir hat das alles keine Ruhe gelassen....., also heute neue SD-Karte + HDD drangehängt und Bananian 16.04 (Jessie) installiert.
Dann Deine Anleitung genommen, nur mit dem Unterschied, das es hier keine verschiedenen U-Verzeichnisse je Banana (M1M2M3 etc) gibt.
Dort dann also im quasi root-Ordner die bood.cmd editiert und dann mit make... die neue boot.scr erstellt, reboot---- voila, von sda1 gebootet.

 


Nachtrag 10.12.2017 Boot System Vector umbiegen: Raspberian Strech - alle Banana Pi M2 Berry+

Beim Banana Pi M2 berry ist wieder alles etwas anders, ich habe es so zum laufen gebracht...

Erst die HDD wie oben beschrieben formatieren und dann:

mount /dev/mmcblk0p1 /tmp/boot
nano /tmp/boot/bananapi/bpi-m2u/linux/uEnv.txt

Dort muss an 3 Stellen das /dev/mmcblk0p2 gegen /dev/sda1 ersetzt werden, das ganze speichern und weiter gehts. Statt jedesmal für jede Bildschirmauflösung den Bootvecotr per Hand umzustricken, kopieren wir die bereits erstellte Datei einfach um und Synchronisieren das ganze zum Schluss:

cp /tmp/boot/bananapi/bpi-m2u/linux/uEnv.txt /tmp/boot/bananapi/bpi-m2u/linux/1080p/uEnv.txt
cp /tmp/boot/bananapi/bpi-m2u/linux/uEnv.txt /tmp/boot/bananapi/bpi-m2u/linux/480p/uEnv.txt
cp /tmp/boot/bananapi/bpi-m2u/linux/uEnv.txt /tmp/boot/bananapi/bpi-m2u/linux/720p/uEnv.txt
cp /tmp/boot/bananapi/bpi-m2u/linux/uEnv.txt /tmp/boot/bananapi/bpi-m2u/linux/lcd5/uEnv.txt
cp /tmp/boot/bananapi/bpi-m2u/linux/uEnv.txt /tmp/boot/bananapi/bpi-m2u/linux/lcd7/uEnv.txt
sync

Nach einem Reboot mittels "sudo reboot" sollte das System von SSD booten.

 

Jetzt sollte man über einen wöchentlichen "TRIM" nachdenken.

Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke