Banana Pi – Bananian von Festplatte booten

Um ausreichend Platz auf seinem Heimserver zu haben, schließt man am besten eine SATA-Disk an. Die hat gegenüber einer USB-Disk den Vorteil, dass man auch Datenbanken zuverlässig auf die SATA-Disk legen kann. Da gab es bei mir immer Probleme. Und wenn man schon eine Festplatte angeschlossen hat, kann man auch gleich das Root-Dateisystem dort installieren, damit die Banane künftig von Festplatte bootet.

Bei dem SATA-Kabel aber auf die Polung des Stromkabels achten. Das schwarze Kabel muss auf der linken Seite sein. Ich musste leider die Kabel zerschneiden und vertauschen ( sorry Frank 🙂 ).

Wenn die Platte angeschlossen ist, erstmal mit lsblk sehen, wo sie eingehängt ist (normalerweise sollte sie auf /dev/sda angemeldet sein)

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931,5G  0 disk 
mmcblk0     179:0    0   7,4G  0 disk 
├─mmcblk0p1 179:1    0    20M  0 part 
└─mmcblk0p2 179:2    0   7,4G  0 part 

Jetzt mit fdisk eine neue Partition auf der Festplatte erstellen.

fdisk /dev/sda

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): 1
First sector (2048-195371567, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-195371567, default 195371567): 
Using default value 195371567

Mit „w“ die die neue Partition auf die Festplatte schreiben und fdisk verlassen.

Jetzt muss die neue Partition noch formatiert werden mit

mkfs.ext4 /dev/sda1

Danach die Festplatte mounten und das Root-Dateisystem mit rsync von der SD-Karte auf die Festplatte kopieren.

mount /dev/sda1 /mnt/
rsync -ax / /mnt/

Nun müssen noch die Boot-Parameter in der Datei uEnv.txt eingestellt werden.

umount /mnt/
mount /dev/mmcblk0p1 /mnt/
nano /mnt/uEnv.txt

Dort den Parameter

root=/dev/mmcblk0p2

ändern in

root=/dev/sda1 

Jetzt den Banana Pi neu starten und das wars.

reboot

Noch kurz nachsehen, ob alles geklappt hat. Zum Beispiel mit

df -h      

Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
rootfs          917G    1,7G  869G    1% /
/dev/root       917G    1,7G  869G    1% /
devtmpfs        486M       0  486M    0% /dev
tmpfs            98M    220K   97M    1% /run
tmpfs           5,0M       0  5,0M    0% /run/lock
tmpfs           195M       0  195M    0% /run/shm

Wenn bei rootfs bzw. /dev/root wie hier die Größe der Festplatte angezeigt wird, hat alles geklappt.

74 Gedanken zu “Banana Pi – Bananian von Festplatte booten

  1. Hallo.

    Die Anleitung ist mal einfach und sehr verständlich. Allerdings habe ich ein Problem: nach Reboot steht dort etwas mit „OED truncated“.

    Warum? Was meint das?

    73 de DE8MSH

    • Hey Marco

      Es tut mir Leid, aber bei mir sieht die Seite aus wie sie soll – auf dem Tablet und auf dem Laptop.
      Also das muss irgengein Fehler sein .. vielleicht irgendwas im Javascript — das heißt überhaupt nichts.

      Nach dem „Reboot“ kommt auch nichts mehr. Ich überprüfe da nur mit „df -h“, ob der Parameter rootfs bzw. /dev/root die korrekte Größe der Festplatte anzeigt.

      Gruß

  2. Hallo
    Also diese Anleitung ist echt mal Klasse. Sie funktioniert auf dem Banana Pi Routerboard. Ich habe die Anleitung auf einem 16GB USB Stick umgesetzt und der Pi hat anstandslos gebootet.

    Weitere solche guten „einfachen“ Anleitungen sind immer gerne gesehen und werden gelesen.

  3. Hey,

    den rsync-Aufruf wuerde ich etwas anders gestalten, da einige Verzeichnisse zur Laufzeit erstellt werden (/dev, /sys, /proc) bzw. bestimmte Daten einfach nicht kopiert werden muessen (/run, /tmp, /mnt und /media)

    Mein Aufruf sieht folgendermassen aus:
    rsync -hXAHP –exclude={/dev/*,/lost+found,/media/*,/mnt/*,/proc/*,/run/*,/sys/*,/tmp/*} / /mnt/newrootfs

    • ich habe ein -r (fuer recursive) vergessen …

      also richtig waere:

      rsync -rhXAHP –exclude={/dev/*,/lost+found,/media/*,/mnt/*,/proc/*,/run/*,/sys/*,/tmp/*} / /mnt/newrootfs

        • Hallo,

          rsync -rhXAHP –exclude={/dev/*,/lost+found,/media/*,/mnt/*,/proc/*,/run/*,/sys/*,/tmp/*} / /mnt/

          hat bei mir nicht funktioniert.
          Erstens meckert rsync wegen des Sternchens (*). Dieses habe ich weggelassen.
          Desweiteren wurden keine symbolischen Links (z. B. /etc/nginx/sites-enabled/default) kopiert — der Parameter -l ändert das.
          Benutzer und Gruppen wurden auch nicht übernommen — mit Parameter -og schon.

          • Hey

            Vielen Dank fürs Feedback. Ich hatte das hier nie getestet, sondern hab’s so gemacht, wie ich das oben geschrieben habe und das hat ohne Probleme geklappt -das war bei mir allerdings ein komplett jungfräuliches System. Kannst du vielleicht noch den kompletten Befehl hier posten? Dann hätte man es mal komplett.

            Gruß Bjoern

          • Der komplette Befehl:
            rsync -rhXAHPlog –exclude={/dev/*,/lost+found,/media/*,/mnt/*,/proc/*,/run/*,/sys/*,/tmp/*} / /mnt/

      • Kann es sein, dass da noch ein zweites Minus vor dem exclude fehlt? Mir ist er mit nur einem Minus in die Endlosschleife gerannt…
        Einen Vorteil kann ich auf jeden Fall nennen: Man sieht, dass etwas passiert. Bei der o.g. Variante war ich erst mal verwirrt, weil während des kompletten Vorgans keine Anzeige, kein Lebenszeichen oder ähnliches kam. 😉

        • Na Hauptsache, es blinkt und rasselt 🙂

          Während des Kopierens passiert halt nicht viel .. er kopiert ja nur 🙂
          Sollte aber tzrotzdem funktionieren 😉

          Übrigens – es ist wirklioch schlecht zu sehen, aber vor dem exclude stehen zwei Minuszeichen .. Das sieht blöderweise nur aus, wie ein Großes.

          Gruß

  4. Hi, bin Linux – Noob

    Hab alles wie in der Anleitung gemacht.
    Soll das jetzt so sein das der Pi auch ohne SD Karte hoch fährt ?

    Macht er nämlich bei mir nicht.

    mfg. M. Daniel

    • Hey Markus

      Nein, ganz ohne SD-Karte geht es nicht. Die kleine Boot-Partition mit dem Kernel braucht er weiterhin von der SD-Karte. Nur der Rest des Systems bootet dann von der Festplatte.

      Gruß Bjoern

  5. Hallo Bjoern,

    tolles tutorial – ging bei mir sofort.
    Nur… seit ich auf hdd umgestellt habe, geht sie nicht mehr schlafen.
    Gibt es eine Möglichkeit (Vorsicht bin Linux Beginner) eine swap partition einzurichten um die zugriffe auf die hdd zu verringern? Evtl. mittels eines USB-Stick?
    Wie hast Du das bei dir realisiert?

    Grüsse aus Haiger.

    Markus

    • Hallo Markus

      Und Gruß zurück aus Berlin in die Heimat .. 🙂

      Also erstmal: Klar kannst du den Swap auf einen USB-Stick verschieben. Falls du Bananian nutzt, gibt es für den Swap keine eigene Partition. Bananian nutzt eine Datei, die als Swap genutzt wird. Diese liegt gleich im Root und heißt swapfile1.
      Diese kannst du praktisch überall hin verschieben.

      Dazu musst du erstmal dafür sorgen, dass dein USB-Stick gemounted wird. Dazu muss du die Datei /etc/fstab bearbeiten.
      Dann Swap ausschalten mit dem Befehl „swapoff“
      Dann musst du die Swap-Datei auf den USB-Stick verschieben.
      Dann musst du nochmal die Datei /etc/fstab bearbeiten und den Eintrag für die Swap-Datei ändern in der Art
      /Pfad/zum/swapfile1 swap swap defaults 0 0

      /Pfad/zum/ ist dann der Pfad, auf den du den USB-Stick gemounted hast.

      Dann Swap wieder einschalten mit „swapon“.

      Mit dem Befehl „free“ kannst du nachsehen, ob der Swap wieder da ist.

      Wenn du dazu noch etwas Handwerkszeug brauchst, kannst du noch in den Artikeln
      http://my5cent.spdns.de/beaglebone-black-raspberry-pi/speicher-auf-dem-beaglebone-black-erweitern.html
      zum mounten von USB-Geräten und
      http://my5cent.spdns.de/beaglebone-black-raspberry-pi/swap-datei-auf-dem-beaglebone-black.html
      zu der Swap-Datei schauen.
      schauen. Ist zwar für den Beaglebone, aber funktioniert genau so für die Banane.

      Allerdings kommt es dann drauf an, was alles auf dem Rechner läuft, ob es auch den gewünschten Effekt hat – den viele Programme nutzen einen eigenen Cache und nicht unbedingt das Swap-File.

      Ich hab alles so gelassen und mir ist das im Prinzip wurscht, ob sich die Platte schlafen legt oder nicht. Der Stromverbrauch ist marginal und wenn ich mich nicht irre, wird die Lebenszeit einer Festplatte eher vom Schlafenlegen / Hochfahren begrenz als das sie ständig läuft.

      Ich hoffe, das hilft erstmal weiter. Wenn noch Fragen sind, melde dich einfach.

      Gruß Bjoern

  6. Hi Bjoern,

    danke für die schnelle Beantwortung meiner Fragen.

    Was Du hier geschrieben hast reicht mir eigentlich schon:

    „Ich hab alles so gelassen und mir ist das im Prinzip wurscht, ob sich die Platte schlafen legt oder nicht. Der Stromverbrauch ist marginal und wenn ich mich nicht irre, wird die Lebenszeit einer Festplatte eher vom Schlafenlegen / Hochfahren begrenz als das sie ständig läuft.“

    Im übrigen kann ich Dir nur mal folgende Images ans Herz legen. Debian von Igor Pečovnik (http://www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/).
    Habe es jetzt laufen und bin echt begeistert.

    Wünsche noch ein schönes Rest-Wochenende…

    Gruß Markus

    • Danke – und Danke für den Link. Klingt echt gut, aber ich hab jetzt alles so laufen, wie es soll. Falls ich nochmal einen aufsetze, werde ich das Image gerne mal probieren.

      Gruß Bjoern

  7. Lässt sich der Bootmanager auf eine (sehr) kleine SD Karte speichern, oder braucht es mindestens 2 GB große SD Karten?
    (Ich habe noch eine alte 128 MB große Karte)

    Ansonsten gutes Tutorial.

    VG
    Mario

  8. Hi Bjoern,

    sehr gutes Tutorial. Ich habe allerdings noch eine Frage. Bin Linux Newbie, ich hatte zuvor wenn ich den Banana pi konfiguriert habe immer wieder mal ein Backup von SD Karte mit W32Diskimager gemacht. Einfach und schnell und ein zurücksichern ist ohne großen Aufwand möglich, sollte ich mich verkonfiguriert haben.
    Wie kann ich das jetzt machen nachdem ich auf die SATA Platte ausgelagert habe ? Kann ich mit einem Befehl die Daten von der SATA mit der SD synchronisieren und dann wieder das Backup mit dem Diskimager machen und wenn ja wie oder gibt es andere einfache Wege ?

    Danke und Grüße
    Michael

    • Hallo Michael

      Im Prinzip kannst du das genau so machen wie mit deiner SD-Karte. Wenn auf deiner SD-Karte genug Platz ist, kannst du entweder mit rsync die Platte auf auf die SD-Karte zurück synchronisieren.
      Oder du synchronisierst deine SATA-Platte direkt auf einen USB-Stick / externe USB-Platte. Je nachdem, wieviel Platz du brauchst. Dann kannst du dir den Umweg über die SD-Karte sparen.

      Gruß Bjoern

  9. Hallo Bjoern,

    danke für die schnelle Rückmeldung. Da ja auf der SD Karte nur noch der Bootsector ist, würde ja wie du schreibst das Backup der SATA Platte ausreichen. Wie gesagt ich bin Linux Newbie, kannst du mir die bzw. den Befehl nennen mit dem ich das anstelle ? Und wie würde der Restore aussehen, wenn das System gecrasht ist und ich nur ein Windows Rechner zur Verfügung habe ? Was wäre da das einfachste Konzept ?

    Danke
    Michael

  10. Bravo, bravo, bravo,

    das ist das erste was bei diesem sch… Linux genauso geklappt hat wie Du es beschreibst. Alles andere was ich bisher aus diversen Foren zusammengetragen und ausprobiert habe scheitert letzendlich an irgendeiner Kleinigkeit. Und als NICHT-UNIXER hängt man da voll in der Uhr.
    Tausend Dank für diese Anleitung!!!
    Vielleicht kann ich mich ja in ein paar Wochen endlich mal um mein eigentliches Projekt kümmern anstatt darum, ein lauffähiges Linux mit allen beworbenen Features auf dem BananaPro zum laufen zu bringen.

    Gruß, Markus

    • Freut mich natürlich

      Und vielleicht findest du ja auf die Weise einen Einstieg ind dieses Linux 😉
      Ich sage nämlich mittlerweile das Selbe über dieses „andere“ Betriebssystem. Was möchtest du denn für ein Projekt starten? Vielleicht kann ich dir da ja auch noch ein wenig auf die Sprünge helfen, wenn es hakt ..

      Gruß Bjoern

  11. es war hier igor peciovnik image genant. Kann noch was von eewiki.net für banana pi empfehlen. Banana pi ist hier als „nicht geprobt“ eingestuft und offiziell noch nicht freigegeben aber ich habe es ausprobiert und es lief für mich besser als igors image mit 3.4 und 3.19 kernel. Vor allem deutlich besser funktioniert Installieren von neue Geräte und Kompilieren, man kann Kernel und boot-image online upgraden. Wer keine Lust selbst zu Crosscompilieren hat, kann Network-Install nutzen. Installation läuft dann genau wie bei Standard ubuntu mini cd. Einzige Problem mit diese System zu Zeit bei Banana: damit usb Anschlüsse funktionieren, muss man eine usb Hub anschließen. Hub muss nicht unbedingt self powered sein. Damit sind alle usb Ports wieder aktiv. Ich betreibe die System als live-tv Server mit tvheadend und 2 dvb-s usb karten. Hier der Link: https://eewiki.net/display/linuxonarm/A20-OLinuXino-LIME . Beim kompilieren von u-boot bananas defkonfig auswählen. Netinstaller funktioniert folgende Massen:

    git clone https://github.com/RobertCNelson/netinstall
    cd netinstall
    sudo ./mk_mmc.sh –mmc /dev/sdx –dtb Bananapi –distro trusty

    zum os auswahl gibts ubuntu 14.04 lts und debian 8.
    nicht vergessen vor dem boot ihre Tastatur über usb-hub anschließen sonst können sie nicht navigieren.

  12. Ich habe /dev/mmcblk0p2 mit dd auf die Platte Kopiert, dann die Partition geprüft und im Anschluss vergrössert. Hat prima geklappt.
    Eine Swap partition kann auch auf die HDD ausgelagert werden.
    Einfach in /etc/fstab folgenden Eintrag tätigen:
    #/swapfile1 swap swap defaults 0 0
    /dev/sda1 swap swap defaults 0 0

  13. Ein Hinweis: Im neuen Bananian 15.08 auf Debian Jessie funktioniert es an einer Stelle nicht mehr ganz so – es exisitert nämlich keine uEnv.txt mehr.

    Statt dessen muss die boot.cmd analog modifiziert werden und zur boot.scr umgewandelt werden. Dazu musste ich noch die u-boot-tools installieren.

    apt-get install u-boot-tools

    und dann folgenden angepassten Befehl im richtigen Pfad ausführen (und vielleicht vorher ein Backup der alten boot.scr machen 😉 :

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

    Viele Spass beim flotten booten von der HDD

    VG

    Mario

  14. Hallo,
    bei dem Schritt mit der erstellung einer neuen festplatte kommt bei mir folgendes…

    „no free sectors available“

    wieso?

    habe eine externe festplatte angeschlossen mit 2tb…. alles soll darüber laufen

  15. Hi Leute,

    ich habe eine externe Festplatte von WD My Passport Ultra mit 2TB dran gehängt und darauf soll es alles später laufen.
    Nun denn so weit so gut, habe ich alles gemacht was hier stand…
    aber die größte „Platte“ ist meine SD-karte……..
    meine externe festplatte wird garnicht erst angezeigt…….

    was kannn ich machen?

    • Hey Trick

      Ist bei dir die Polung des Stromkabels richtig? Bei mir war das Kabel falsch rum. Versuch mal, den Strom abzuziehen und wieder anzustecken und hör dabei mal an der Festplatte, ob sie anläuft. Sollte ein leichtes schraddeln zu hören sein .. 🙂

      • Hey Björn,

        danke erstmal für die schnelle Antwort.
        Also da ich nur einen USB-Anschluss habe, kann da nichts schief gehen ^^…
        Ist eine 2TB externe Festplatte 2,5 Zoll von WD. Er wird ja auch am Anfang erkennt unter sda bzw auch sda1….

          • Hi Björn,

            ganz am anfang wo wir dieses befehl mit lsblk eingeben ist sie angezeigt… jedoch mit df -h taucht sie nicht auf… mache ich dann wieder lsblk taucht die wieder auf… ich weiß ehrlich nicht warum, und das selbe problem wie Hans Peter habe ich auch… also vom prinzip her das gleiche glaube ich

  16. Hmm – ihr beide scheint das selbe Problem zu haben.

    Zum listen der Festplatten auch mal die Befehle

    fdisk -l ( kleines L ) oder
    df versuchen.

    Anschließend mal mit

    dmesg

    schauen, ob irgendwelche Fehlermeldungen erscheinen. Mal sehen, ob wir so weiter kommen.

    Gruß Bjoern

  17. Hallo, bin auch ein Neuling, was den banana angeht. Ich habe jetzt deine Anleitung befolgt und habe eine ein 4GB SD-Karte mit dem System bespielt. Nun bin ich an dem Punkt mit der Festplatte, muss ich diese anschließen oder kann ich auch eine größere SD-Karte anschließen?
    Ich habe folgendes vor mit dem Banana.
    Ein kleiner Server, an dem eine externe Festplatte angeschlossen ist. Der Server soll im Netz als Backup dienen, d.h., dass von meinen verschiedenen Geräten soll jeden Tag ein Backup auf der externen Festplatte erstellt werden. Es soll von außen (Internet) zugegriffen bzw. synchronisiert werden. Und ich würde gerne über Windows über den Explorer auf die Dateien zugreifen wollen, auch von aussen über eine App oder über den Browser. Geht es?

    • Hey Rob

      Die Frage mit der Festplatte oder der externen Disk versteh ich nicht so richtig. Kannst du die bitte nochmal anders stellen? 🙂

      Aber beim 2ten Teil kann ich weiter helfen.
      Wenn du von Windows mit dem Explorer auf die Dateien zugreifen möchtest, würde ich SAMBA empfehlen. Damit kannst du die Festplatte vom Server als Netzlaufwerk einbinden.

      Wenn du über das Internet an die Dateien möchtest, gibt es eon paar mehr Möglichkeiten:
      Wenn du die Dateien nur hin und her schieben möchtest, reicht ein FTP-Client wie Filezilla oder WinSCP. Dafür ist schon alles da – siehe
      http://my5cent.spdns.de/beaglebone-black-raspberry-pi/banana-pi-ftp-server-einrichten.html

      Wenn du ein wenig mehr willst, wäre vermutlich sowas wie Seafile oder Qwncloud ganz gut. Anleitungen dazu findest du auch hier.

      Ich hoffe, so kommst du erstmal weiter.

      Gruß vom Bjoern

  18. Hi Leute, so ein Problem wie Trick habe ich auch…

    bei dem Befehl lsblk steht meine externe festplatte drin.
    bei dem Befel df -h ist sie nicht zu finden…

    was komisch ist, bei dem Befehl: nano /mnt/uEnv.txt
    ist die datei leer…. wieso? was mache ich bloß falsch 🙁

      • Guten Morgen Björn,

        ich habe die aktuellste Bananian mit der Version 15.08 installiert. Da ich keine SATA-Festplatte besitze und eine 2,5 Zoll 2TB Externe Festplatte rumfliegen habe würde ich gerne diese benutzen.

        Bei dem Befehl lsblk wird sie auch unter sda bzw auch sda1 angezeigt. Aber bei den anderen nicht. Des weiteren ist die uEnv.txt datei Leer gewesen bei mir.

        Gruß
        HP

  19. Hallo Bjoern, um nochmal auf die Festplatte zurückzukommen. Mein Vorhaben war, dass ich eine externe Festplatte als Backup für meine Daten per USB anschliessen wollte. Ok, hat eigentlich mit der Frage nichts zu tun, denn meine Frage bezieht sich auf deine Anleitung, dass man eine interne Festplatte anschliessen soll und von dieser booten soll, da schneller und mehr Platz. Nun habe ich mich gefragt ob man einfach nicht bei einer SD-Karte bleiben kann, die größer ist. Wäre das nicht eine Alternative oder sollte man wirklich eine Festplatte bevorzugen?

    • Achso, noch eine Frage, da ich ein Backup von meinen Daten machen möchte, würde es mit einem FTP-Protokoll wahrscheinlich nicht funktionieren, da ich eine Synchro-Software nutze und dementsprechend die Pfade angeben muss. Es sei denn, es gibt die Möglichkeit auf dem Banana eine Software zu installieren, die automatisch eine Synchronisation bei Rechnern durchführt, sobald sie im Netz erreichbar sind. Diese Option würde ich sogar bevorzugen.

    • Natürlich kannst du auch eine große SD-Karte nehmen, aber die ist vergleichsweise teuer und langsamer und auch nicht endlos beschreibbar.

      Und wenn du syncen möchtest, kann ich dir Seafile empfehlen mit den entsprechenden Sync-Clients.
      Läuft bei mir sehr gut und stabil.

      Gruß Bjoern

  20. Wie sieht es aus mit einer SSD, wäre das eine Alternative? Wie viele Gigs brauche ich denn auf der Platte? Würden 64 GB reichen, um alles draufzupacken, denn diese würde ich sowieso nicht als Backup nutzen, wenn eine externe per USB, die am Banana angeschlossen ist.

    • Hey Rob

      Im Prinzip ist deine Idee völlig in Ordnung: Du lässt dein System auf dem Flash laufen, schließt eine externe Disk an, wo dann deine Backups drauf landen. Das ist in Ordnung und wird auch so funktionieren.
      Dafür brauchst du nicht mal eine größere Flash-Karte – da reichen die 4 GB schon völlig aus.

      Ich wollte nur das Problem ansprechen, dass auf einer Flash-Karte nur endlich viele Lese- und Schreibzyklen möglich sind und dass sie dann irgendwann in nicht allzu ferner Zukunft kaputt gehen wird. Dann fängst du mit einigen Sachen von vorne an!
      Daher die Frage: macht es nicht vielleicht Sinn, das System auch gleich mit auf die angeschlossene Festplatte zu legen. Das geht auch mit einer externen USB-Disk ..

      Dann brauchst du die Flash-Karte nur noch zum booten, was nicht allzu oft vorkommt und der rest passiert auf der Platte.
      Ist einfach ein etwas sichereres Gefühl .. 😉

      Gruß Bjoern

      • Naja, von einer externe Festplatte wäre gar nicht so abwegig, aber was ist mit dem Speed, da es ja über USB läuft. Oder reicht es für meine Zwecke aus?

        • Wenn du nur Backups machen willst reicht das auf jeden Fall ganz locker aus, denn wenn du übers Netz da ran gehst, ist der Flaschenhals immer die Netzwerkverbindung – sprich alles, was über das Netz da ankommt, kann auf jeden Fall schnell genug verarbeitet werden.

  21. Hallo zusammen,

    seit kurzem habe ich auf meinem BananaPi nun auch Debian Jessie installiert.
    Leider bekomme ich es nicht hin von der Festplatte zu booten.
    Mario schreibt am 25. August dass man die boot.cmd bearbeiten muss, die finde ich allerdings nicht im System.

    Kann mir hier eventuell jemand auf die Sprünge helfen?

    Vielen Dank im Voraus!
    Michael

  22. Hab es hinbekommen!

    ich fasse hier mal kurz zusammen was nötig ist um den BananaPi mit Debian 8 von der Festplatte zu booten.

    # Die u-boot-tools installieren
    apt-get install u-boot-tools

    # Festplate formatieren
    mkfs.ext4 /dev/sda1

    # Danach die Festplatte mounten und das Root-Dateisystem mit rsync von der SD-Karte auf die Festplatte kopieren.
    mount /dev/sda1 /mnt/
    rsync -ax / /mnt/

    # Nun die Boot-Parameter in der Datei boot.cmd ändern
    umount /mnt/
    mount /dev/mmcblk0p1 /mnt/
    cd /mnt
    nano boot.cmd

    # Dort den Parameter
    root=/dev/mmcblk0p2

    # ändern in
    root=/dev/sda1

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

    # Jetzt denn Banana Pi neu starten und das wars.
    reboot

    # Noch kurz nachsehen, ob alles geklappt hat. Zum Beispiel mit
    df -h

    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    rootfs 917G 1,7G 869G 1% /
    /dev/root 917G 1,7G 869G 1% /
    devtmpfs 486M 0 486M 0% /dev
    tmpfs 98M 220K 97M 1% /run
    tmpfs 5,0M 0 5,0M 0% /run/lock
    tmpfs 195M 0 195M 0% /run/shm

    Wenn bei rootfs bzw. /dev/root wie hier die Größe der Festplatte angezeigt wird, hat alles geklappt.

    Ich hoffe es hilft dem Einen oder Anderen!

    Gruß
    Michael

  23. Hey Leute,
    nur eine kleine generelle Info, dass sich mit dem update auf bananian 15.08. einiges ändert und es nicht mehr über die uEnv.txt Datei geht. Wollte ich nur los werden…

  24. man kann auch mit sed die Datei „inplace“ editieren lassen. Dann braucht man keinen nano, edit oder sonstigen Editor mehr.

    Das Kommando dazu lautet:

    sed -i ’s@root=/dev/mmcblk0p2@root=/dev/sda1@g‘ boot.cmd

  25. Hallo,
    vielen Dank für die tollen Beiträge in diesem Blog.

    Ich verwende einen Lemaker Bananan Pro = Banana M1plus mit Raspian Lite (Jessie)
    2016-07-12-raspbian-lite-bpi-m1-m1p-r1.img als OS. Kernel ist Version 3.4.112 .
    Leider ist es mir nicht gelungen eine SSD (/dev/sda1) als root FS einzubinden. Die Daten habe ich mit rsync problemlos übertragen können. Als Prerequisiten habe ich mit Apt-get install hdparm, rsync und u-boot-tools installiert.
    uEnv.txt hat keinen Eintrag für das Root, wie schon gesagt wurde.
    In der Boot.cmd kann man den root Eintrag auf /dev/sda1 ändern.
    „mkeimage -C none -A arm -T script -d boot.scr boot.cmd“ lauft ohne Fehler, die boot.cmd hat dann den geänderten root eintrag.
    Reboot zeigt als root FS immer noch die mmcblk0p2 an.
    Den root= Eintrag in der cmdline.txt zu ändern hat auch keinen erfolg gebracht.
    Hat vieleicht jemand eine Idee ?

    viele Grüße
    Heinrich

    • Hallo Heinrich

      Sorry für die späte Antwort. Also es klingt so erstmal alles richtig, was du gemacht hast.
      Daher muss ich mich mal ran tasten.
      Hast du deine Platte mit ext4 formatiert?
      was hast du für Ausgaben bei den Befehlen bei
      df -h und
      lsblk

      Gruß Bjoern

  26. Hallo Bjoern,
    danke für die Nachricht. Die /dev/sda1 habe ich mit ext4 formatiert und mit Size 30GB als primäre Partition angelegt. Die /dev/sda ist eine MBR Platte. df -h zeigt immer nur die SD Karte als root fs an. lsblk zeigt /dev/sda mit /dev/sda1 an. Manuell kann ich /dev/sda1 auch irgendwo hin mounten, auch OK. aber nicht als root FS.
    Für mein Projekt, zur Messwerterfassung, benötige ich ein ‚Lite-OS‘ ohne Ballast mit Unterstützung einer SATA Disk, WLAN, RS232 und I2C Bus.
    Ich habe das Prozedere lt. Deinem Blog mit Bananian 15.04 mit Erfolg durchführen können. Hier wird jetzt die /dev/sda1 problemlos als root FS verwendet. Das Problem liegt am u-Boot Loader. Die sehen auch bei den diversen Distris sehr unterschiedlich aus. uEnv.txt im Gegensatz zu boot.scr, boot.cmd mit mkimage zu generieren. Ausprobiert habe ich Lubuntu, Raspian Jessie, Bananian 16.04 und Bananian 15.04.
    Als Editor wurde immer nano verwendet. Stromversorgung per 5V 3A Industrienetzteil.

    Also die Anleitung ist für Bananian 15.04 , und funktioniert mit dem Banana PI M1+ und einer SATA 120GB SSD wie es soll.
    Nochmal Danke dafür.
    viele Grüße
    Heinrich

    • Hallo Heinrich

      Gerne – und freut mich, dass es geklappt hat.
      Wenn du den 15.04 Bootloader behalten und trotzdem Debian Jessie haben möchtest, kannst du ja ein Distupgrade machen.
      Hab ich am Wochenende durchgezogen und es lief – bis auf ein paar Kleinigkeiten mit Konfig-Dateien – reibungslos durch.

      Ich werde die Tage dafür ein kleines Howto schreiben, wenn ich dazu komme.

      Gruß Bjoern

  27. Hallo Bjoern

    Super Anleitung ….Funktioniert auf meinem Banana Pro mit 160 GB Festplatte und Jessie hervorragend.
    Habe nun aber vor meine 32 GB Micro SD gegen eine mit 128 MB zu tauschen.
    Habe die /dev/mmcblk0p1 auf die SD geschrieben mittels dd if=/dev/mmcblk0p1 of=/dev/sdb1….jedoch findet dann kein boot mehr statt.
    Wäre für einen Rat dankbar

    Grüsse Frank

  28. Hallo Bjoern,
    ich habe heute einen DistUpgrade gemacht.
    Wieder ein neues Bananian 15.04 auf SD Karte kopiert. Dann per Bananian-config die Hardware auf Banana M1+ gestellt und Keyboard konfiguriert. Anschl. das RootFS auf /dev/sda1kopiert und per uEnv.txt als root FS eingestellt. – wie schon besprochen.
    Upgrade von Wheezy nach Jessie:
    – apt-get update (für wheezy)
    – bananian-update (bereitet den eigentlichen upgrade vor)
    zeigt eine Zeile mit sed , welche die /etc/apt/sources.list von wheezy auf jessie ändert, und auch die weiteren notwendigen Kommandos an.
    – Edit sources.list per sed durchführen
    – apt-get update (für jessie)
    – apt-get upgrade
    – apt-get dist-upgrade
    Das System ist nun Jessie und es wird /dev/sda1 als root FS verwendet.
    Der Kernel ist aber noch 3.4.104 geblieben. Damit kann ich leben, alles OK.
    Nun gibt es keine Schreiboperationen auf die anfälligen SD Karten mehr. Der für mich wirklich wichtige Grund für den Banana M1+ ist ja die SATA Schnittstelle und onboard WLAN ist auch prima (ap6210 in /etc/modules bei diesem Kernel).

    Aber:
    Wenn man in diesem Zustand wieder bananian-update anwählt, bekommt man nun auch eine Warnung angezeigt, dass „switching from uEnv.txt to boot.cmd/boot.scr will break SATA installations“ Damit ist der Bananian Update Pfad für SATA vorerst zu Ende.

    Grüße
    Heinrich

  29. Hallo,
    nach deiner Anleitung hat eigentlich alles prima geklappt. Nur das Ergebnis stimmt leider nicht… Nach wie vor bootet mein Banana Pi von der SD-Karte. Kann das daran liegen, dass ich meine SSD in drei Partitionen aufgeteilt habe und die Dateien für den Bootvorgang auf einer von ihnen liegen? Die Datei uEnv.txt verweist ordnungsgemäß auf /dev/sdc2 (sda und sdb sind bei mir reine Datenträger).
    Hilfreicher Rat wär‘ nett 🙂
    Danke
    Carsten

    • Hallo Carsten

      Ganz ohne SD-Karte wird die Banane auch nicht booten, da der initiale Boot-Prozess nur von der SD-Karte funktioniert.
      Du kannst nur dafür sorgen, dass der Boot-Prozess danach – also wenn der Kernel geladen ist – von der Festplatte erfolgt.
      So gesehen scheint alles richtig zu sein.

      Gruß Bjoern

  30. Hi,
    erstmal vielen dank für die Anleitung.

    Dachte eigentlich ich hab alles richtig gemacht. Nur weiß ich nicht ob es jetzt geklappt hat oder nicht? Bekomme bei „df -h“ komischerweise kein „rootfs bzw. /dev/root“ angezeigt.

    Woran kann das liegen?

    Wollte es eigentlich auf der Platte laufen lassen:
    /dev/sda1 37G 5,3G 30G 16% /mnt/OS

    Ist das hier mein /dev/root?
    udev 435M 0 435M 0% /dev
    tmpfs 88M 3,4M 84M 4% /run

    pi@bpi-iot-ros-ai:~$ df -h
    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    udev 435M 0 435M 0% /dev
    tmpfs 88M 3,4M 84M 4% /run
    /dev/mmcblk0p2 6,9G 5,1G 1,5G 78% /
    tmpfs 437M 532K 436M 1% /dev/shm
    tmpfs 5,0M 4,0K 5,0M 1% /run/lock
    tmpfs 437M 0 437M 0% /sys/fs/cgroup
    /dev/sda1 37G 5,3G 30G 16% /mnt/OS
    /dev/mmcblk0p1 256M 209M 48M 82% /boot
    /dev/sdb1 459G 198M 435G 1% /srv/NAS-1
    tmpfs 88M 32K 88M 1% /run/user/1000

    pi@bpi-iot-ros-ai:~$ sudo nano /etc/fstab
    proc /proc proc defaults 0 0
    /dev/mmcblk0p2 / ext4 defaults,noatime 0 1
    /dev/mmcblk0p1 /boot/ vfat defaults 0 2
    LABEL=NAS-1 /srv/NAS-1 auto defaults 0 0
    LABEL=OS /mnt/OS ext4 defaults 0 0

    vielen dank

Schreibe einen Kommentar