Bei SD-Karten-Knappheit für das Raspberry Pi: BerryBoot löst alle Probleme

18 April 2013 9 Kommentare Autor: Jürgen (jdo)
Raspberry Pi

Raspberry Pi

Das Raspberry Pi ist ein wunderbares Spielzeug und es kommen immer mehr Distributionen für den Winzling. Das Problem: So viele Betriebssysteme, so wenig SD-Karten. Nun könnte man sich behelfen, indem man Abbilder einfach auf den Rechner schiebt und bei Bedarf einfach wieder auf die SD-Karte klont. In einem Kommentar wurde mir damals BerryBoot empfohlen. Diese Software ist in der Tat des Rätsels Lösung. Allerdings brauchst Du dafür eine dedizierte USB-Fesplatte (oder Stick). Zum Glück habe ich hier noch eine alte 160 GByte IDE-Platte rumliegen, die sich perfekt für diesen Zweck eignet.

Wie funktioniert BerryBoot?

Im Prinzip ist BerryBoot auch ein Betriebssystem, das Du von der SD-Karte startest. Das OS bindet danach die dedizierte Fesplatte ein und installiert weitere Betriebssystem auf den Massenspeicher. Bei jedem Start von BerryBoot wird Dir ein Menü mit allen auf der Festplatte befindlichen Betriebssystemen gezeigt. Du kannst einfach eines auswählen und es startet sich dann von der Festplatte. Eigene Anpassungen, Änderungen, Einstelungen und so weiter werden in einem separaten Verzeichnis auf der Festplatte gespeichert.

BerryBoot auf die SD-Karte spielen

Diese Prozedur ist ein absolutes Kinderspiel. Du lädst die neueste Version herunter und entpackst das ZIP-Archiv. Den Inhalt kopierst Du einfach auf eine FAT-formatierte SD-Karte und das war es. Verwendest Du diese SD-Karte nun im Raspberry Pi, startet sich BerryBoot bereits. Einfacher geht es kaum.

Bei ersten Start kannst Du die Netzwerk-Verbindung festlegen. Das lässt sich später aber auch noch konfigurieren. Zeitzone und Tastatur-Layout konfigurierst Du in diesem Bildschirm ebenfalls.

Initialisierung des externen USB-Geräts

Die Warnung, dass bei der Auswahl des externen Gerätes alle Daten verloren gehen, solltest Du ernst nehmen. BerryBoot fackelt bei Bestätigung nicht lange und reißt sich die komplette Platte unter den Nagel. Sollten sich also Daten darauf befinden, die Du gerne behalten möchtest -> wo anders hinkopieren. Ich kann hier leider keinen Screenshot von meiner Konstellation zeigen, da ich schon ein paar Betriebssysteme installiert habe und die ganze Prozedur noch einmal durchführe müsste. Eine weitere Festplatte habe ich leider nicht. Deswegen leihe ich mir den Screenshot von der Entwickler-Seite, der sehr ähnlich aussieht. Wie Du siehst, ist auch ein Datenträger via iSCSI verwendbar – es muss also nicht zwingend USB sein.

BerryBoot: Massenspeicher festlegen (Quelle: berryterminal.com)

BerryBoot: Massenspeicher festlegen (Quelle: berryterminal.com)

Installation von Betriebssystemen

BerryBoot bietet gleich eine ganze Reihe an Betriebssystemen zur 1-Klick-Installation an. Das sind derzeit unter anderem Raspbian, Puppy Linux Alpha, OpenELEC, RaspRazor, Sugar, LTSP thinclient BerryTerminal, BerryWebserver und ein Memtester. Für eine Installation musst Du Verbindung zum Internet haben. BerryBoot lädt das entsprechende Abbild herunter. Ist die Prozedur abgeschlossen, kannst Du das System nutzen.

BerryBoot: Betriebssystem via Internet installieren

BerryBoot: Betriebssystem via Internet installieren

Installation von anderen Abbildern

Auch wenn BerryBoot schon eine Reihe an Betriebssystemen zur Verfügung stellt, bist Du nicht auf diese alleine festgenagelt. Mit ein klein wenig Handarbeit kannst Du auch andere Abbilder, die für den Winzling erstellt wurden, hinzufügen. Am besten sehen wir und das Schritt für Schritt an. Ich hatte bereits berichtet, dass es die Hacker-Distribution Kali Linux (der Nachfolger von BackTrack) für Raspberry Pi gibt. Anhand dieses Abbilds zeige ich DIr nun, wie man das in BerryBoot integriert.

Zunächst lädst Du Kali Linux für Raspberry Pi herunter. Weiterhin brauchst Du auf Deinem Linux-Rechner die Tools kpartx und mksquashfs. Ersteres war bei mir bereits installiere, zweiteres musste ich mir holen. Es ist Teil der squashfs-tools: sudo apt-get install squashfs-tools

Nun müssen wir auf die Konsole:

sudo kpartx -av kali-linux-1.0-armel-raspberrypi.img 
sudo mount /dev/mapper/loop0p2 /mnt
sudo sed -i 's/^\/dev\/mmcblk/#\0/g' /mnt/etc/fstab
sudo mksquashfs /mnt converted_image_for_berryboot.img -comp lzo -e lib/modules
sudo umount /mnt
sudo kpartx -d kali-linux-1.0-armel-raspberrypi.img

Nach dem ersten Befehl siehst Du eine zweizeilige Ausgabe auf dem Bildschirm, wobei uns Zeile 2 interessiert. Sollte diese nicht loop0p2, sondern zum Beispiel loop4p2 sein, musst Du das entsprechend in der zweiten Zeile anders einbinden.

BerryBoot: Abbild von Kali Linux umwandeln

BerryBoot: Abbild von Kali Linux umwandeln

Das Ganze funktioniert natürlich auch mit Bodhi Linux, Raspbmc und so weiter. Das neu entstandene Abbild kopierst Du nun auf einen USB-Stick. An dieser Stelle brauchte ich einen USB-Hub, da die beiden USB-Steckplätze auf dem Raspberry Pi nicht mehr ausreichten (USB-Stick, USB-Festplatte, Tastatur und Maus). Es ginge auch mittels VNC, wie am Ende des Beitrags erklärt ist.

Im BerryBoot menu editor hältst Du nun die linke Maustaste auf Add OS gedrückt und wählst Copy OS from USB stick aus.

BerryBoot: Betriebssystem vom USB-Stick hinzufügen

BerryBoot: Betriebssystem vom USB-Stick hinzufügen

Als nächstes führt die Reise zu unserem modifizierten Abbild auf dem USB-Stick (das ich von converted-bla noch anständig umbenannt habe):

BerryBoot: Modifiziertes Abbild aussuchen

BerryBoot: Modifiziertes Abbild aussuchen

Nun kopiert BerryBoot das Abbild auf die Festplatte und legt einen entsprechenden Menü-Eintrag an:

BerryBoot: Abbild kopieren

BerryBoot: Abbild kopieren

BerryBoot: Abbild hinzugefügt

BerryBoot: Abbild hinzugefügt

Ab sofort kannst Du das neue Betriebssystem starten. Gar nicht so schwer, wenn man weiß wie, oder?

Backup und Clone

Hinter Backup kannst Du Deine BerryBoot von der SD-Karte auf einen USB-Stick sichern, der allerdings komplett überschrieben wird! Die Option Clone ist sehr nett, da Du hier sehr einfach eine Kopie eines bestehenden Betriebssystems erstellen kannst. Das eignet sich hervorragend, wenn man krude Dinge ausprobieren möchte.

Die Sicherung der Festplatte ist recht einfach – einfach die Daten sichern. Welches die dedizierte Festplatte ist, speichert BerryBoot auf der SD-Karte in der Datei cmdline.txt. Der entscheidende Parameter ist datadev=sda1.

Die Abbilder auf der Festplatte liegen übrigens im Unterverzeichnis images und die persönlichen Daten und Einstellungen unter data.

BerryBoot: Abbilder unter images

BerryBoot: Abbilder unter images

BerryBoot: Persänliche Einstellungen unter data

BerryBoot: Persänliche Einstellungen unter data

BerryBoot via VNC starten

Du kannst BerryBoot auch in einem VNC-Modus starten lassen. Dazu öffnest Du die Datei cmdline.txt auf der SD-Karte und fügst Nachfolgendes in die Zeile der anderen Optionen an – keine neue Zeile beginnen, einfach hinten dran! Die IP-Adressen musst Du natürlich für Dein Netzwerk anpassen. Die erste ist die des Raspberry Pi und die zweite die des Gateways / Routers:
vncinstall ipv4=192.168.100.101/255.255.255.0/192.168.100.1

oder für WLAN

vncinstall ipv4=192.168.88.88/255.255.255.0/192.168.88.1/wlan0

Solltest Du WLAN verwenden, musst Du noch die Datei wpa_supplicant.conf auf der SD-Karte erzeugen und darin Deine Wi-Fi-Konfiguration hinterlegen. Das sieht in etwa so aus:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1
network={
ssid="ssid-of-accesspoint"
psk="wpa-password"
}

Nun kannst Du mit einem VNC-Client auf BerryBoot zugreifen. Allerdings solltest Du entweder schnell sein, da das Standard-System bereits nach 10 Sekunden gestartet wird, oder die Wartezeit erhöhen. Den Wert dafür findest Du ebenfalls in der Datei cmdline.txt auf der SD-Karte: bootmenutimeout=10. VNC ist allerdings nur für BerryBoot aktiv. Sobald sich ein Betriebssystem startet, auf dem kein VNC läuft oder Du anderweitig aus der Ferne zugreifen kannst ist der Remote-Spaß vorbei.

Abschließend

Einen weiteren großen Vorteil hat der Start der Betriebssysteme von der Festplatte – diese ist nämlich schneller als eine SD-Karte. Ich kann für BerryBoot eine langsame und günstige Class-4-Karte verwenden und die Pi-Betriebssysteme starten trotzdem angenehm schnell. Ein Nachteil ist natürlich, dass das Setup größer wird. Aber für mein OpenELEC-RasPi-Kino ist nun die Class-10-Karte dediziert und BerryBoot ist eine wunderbare Spielwiese.

Jetzt solltest Du eine gute Starthilfe zu BerryBoot haben und der SD-Karten-Knappheit erfolgreich einSchnippchen schlagen können. Viel Spaß beim Füllen der externen Festplatte mit einer bunten Mischung an Betriebssystemen!

Nette Pi-Konstellation

Du kannst gerne Deinen Senf zu diesem Beitrag geben: Hier geht es zu den Kommentaren




Schreiben macht durstig! Eine kleine Erfrischung kann daher nie schaden. Wem dieser freie Artikel gefallen hat, der darf mir gerne einen frisch gezapften Hopfen-Tee ausgeben (Paypal - der Spenden-Knopf
oder bitcoin - Adresse: 1NacVNwcLLePUVv8uSafu5Ykdwh8QyDfgK). Ich freue mich über jede noch so kleine Spende. Vielen Dank und Prost!
 Alle Kommentare als Feed abonnieren

9 Kommentare zu “Bei SD-Karten-Knappheit für das Raspberry Pi: BerryBoot löst alle Probleme”

  1. Marco sagt:

    Hi!

    Ganz praktisch das BerryBoot. Hab am WE auch meinen Pi bekommen und das gleich drauf gemacht. Allerdings ohne separaten Stick oder so. 2 GB SD-Karte geht ja auch n bissl was drauf 😉

    Werd mich bei Gelegenheit mal an das Einbinden eines separaten OS machen. Gibts da auch ne Möglichkeit unter Windows?

    • jdo sagt:

      Hi,

      Windows? Wasn das? 😉 ... ich weiß es ehrlich gesagt nicht, aber es sollte mit Hilfe einer virtuellen Maschine funktionieren (VirtualBox kostet ja nichts) - alternativ auch mit einer Linux-Live-CD.

      Viel Spaß mit dem RasPi - wunderschönes Spielzeug ... 🙂

  2. Marco sagt:

    Ich muss da noch mal nachhaken:

    Bin am Überlegen, mir nen USB-Stick zu holen und das so zu installieren wie du das hier beschreibst. Ich versteh nur nich, warum das vom Stick schneller sein soll?

    Wenn ich ne flotte (Micro)SDHC-Karte hab, dann erübrigt sich das doch, oder?!

    • jdo sagt:

      Kein Problem.

      Soweit ich gesehen habe, verlangt BerryBoot einen USB-Massenspeicher. Dann kommt es mit Sicherheit darauf an, welchen USB-Stick Du verwendest. Allerdings kann eine Class 10-SHDC-Karte maximal 10MByte/s. Während USB 2.0 einen theoretischen Wert von 480MBit/s oder 60 MByte/s hat, in der Praxis aber wohl eher 25 MByte/s, was immer noch schneller als die SHDC ist.

      Die günstigste Lösung ist eine sehr billige und kleine Class 4 SD-Karte (die brauchst Du für BerryBoot) und einen schnellen USB-2.0-Stick - meine Meinung.

    • MatthiasShalom sagt:

      SD Karten sind zum schreiben und USB Sticks universal geeignet, so als Faustregel: Cooler Beitrag auch wenn mir die Hardware nach wie vor zu schwach ist, sowas im Leistungsgebiet der Ouya nur mit einer x86 Architektur wärs für mich: Dann gingen nahezu alle Distros drauf und somit kann ich diese Geräte mit einem freien Betriebssystem ausliefern ohne mich mit hundert tausend verschiedenen Treiber Modulen herumzuärgern?

  3. Dennis sagt:

    Moin, wo finde ich genau das Unterverzeichnis Images wo sich sich die Clone-Datei befindet?

    Viele Grüße

    Dennis

  4. S. Bernhardt sagt:

    Hallo,

    zum Thema: 'Berryboot via VNC starten'

    Ich habe Berryboot auf einem BananaPro installiert. Dort soll einmal ein LAMP-Server laufen. Bei anstehenden Wartungsarbeiten die von einem entfernten Rechner ausgeführt werden ist es dann unter Umständen nötig, den Server neu zu starten. In diesem Fall bootet Berryboot normalerweise das favorisierte OS. Falls ich zu diesem Zeitpunkt aber ein anderes OS starten will bräuchte ich eine Möglichkeit während diese Bootvorgangs im Berryboot Menü vom entfernten Rechner aus die Auswahl zu treffen.

    Ihre beschriebene Vorgehensweise hat mir zunächst sehr große Hoffnungen gemacht das Problem zu lösen. Mir gelingt es aber nicht in Berryboot über einen Eintrag (vncinstall ipv4=Berryboot/255.255.255.0/Router) in die cmdline.txt den VNC server zu installieren bzw. zu starten. Ich halte mich dabei genau an die oben beschriebene Anweisung.

    Ist es überhaupt möglich in Berryboot (das ja lediglich ein Bootloader ist und kein eigenständiges OS) irgendetwas zu installieren? Der übliche Weg müßte doch sein das hier ein ein neues Verzeichniss angelegt wird, die benötigten Daten von den Installationsquellen installiert werden und dann den Server während des Bootvorgangs gestartet wird.

    Bei mir steht aber lediglich die Zeile (vncinstall usw.) in der cmdline.txt, es werden keine weiteren Veränderungen an den Verzeichnissen vorgenommen. In anderen Beiträgen in den Foren zum Thema VNC ist teilweise auch die Rede davon, über apt-get install den VNC-Server in ein schon laufendes Raspian-OS zu installieren. Wie sind hier bei Berryboot die internen Vörgänge? Wie wird diese Installation hier gehandelt? Ist es überhaupt eine Installation oder wird nur ein Modul geladen oder muß das VNC-Modul im Kernel integriert werden (muß ich selber einen Kernel bauen)?

    Sie beschreiben hier die Vorgehensweise für eine Rasberry. Wie schon erwähnt nutze ich den BananaPro, aber alle Anleitungen die für den Rasberry gelten, waren bis jetzt zu 99% auch für den Banana umsetzbar.

    Vielen Dank schon im Voraus
    Siggi

    • jdo sagt:

      Mit dem BananaPi habe ich leider keine Erfahrung.

      Der Witz hier ist ja, dass der VNC-Server nur für das Boot-Menü von BerryBoot läuft. Sobald man ein anderes OS startet, funktioniert VNC nicht mehr, außer man installiert es in diesem Betriebssystem. VNC in Raspbian zu installieren ergibt nur dann Sinn, wenn eine grafische Oberfläche läuft.

      Bei einem LAMP Server braucht man aber keine grafische Oberfläche und deswegen ist VNC in diesem Fall Unsinn. Da ist es sinnvoller, OpenSSH zu aktivieren (raspi-config) und sich dann mittels SSH auf der Konsole anmelden. Das wäre auch meine Herangehensweise bei Wartungs-Arbeiten - also via SSH auf der Konsole anmelden. Ich verstehe gerade den Sinn nicht ganz, ein anderes Betriebssystem starten zu müssen.

      BerryBoot dirigiert mehr oder weniger, welches Betriebssystem gestartet wird, dennoch lässt sich das Auswahl-Menü via VNC ansprechen - BerryBoot ist sozusagen ein eigenständiges Mini-Betriebssystem mit eigenem Kernel und X.

      Wie gesagt kenne ich mich mit dem BananaPi nicht aus, es scheint aber eine separate Berryboot-Version dafür zu geben? (klick) und hier geht es zur Original-Dokumentation von BerryBoot für Raspberry Pi: klick

  5. Tom sagt:

    Hi,

    ich habe als Neuling mit Berryboot begonnen. Nachdem ich mittlerweile ist das System schon 3x neu aufgesetzt hatte, auch diverse andere Dinge testen konnte, ist mein System nun fertig und sauber eingerichtet.
    Ich möchte es sichern. Allerdings dann auch die ganze SD-Karte nutzen.
    Über die Raspi-Config kann ich es nicht expandieren (Fehlermeldung ist mir eben entfallen)
    Nun hab ich gelesen das es eh nicht mit Berryboot geht.

    Frage:
    Wie bekomme ich nun mein fertiges Image aus Berryboot raus um es dann auf eine andere Karte zu spielen??
    Der Abschnitt oben zum Backup und Clone ist etwas ungenau.
    Von wo kann ich was kopieren? Die Ordner Data und Images finde ich nicht.

    Besten Gruß

Antworten