Posts by [TOM]


    Also stelle ich mir die Frage, ob (oder eher wie) ich ein Raspbian Image so anpassen kann, dass die meisten (oder gar alle) notwendigen Konfigurationen schon nach der Installation fertig sind.


    Das Image erstellen ist die einfachste Sache. Ich nehme dazu unter Windows ODIN. Der Win32DiskImager wird zwar überwiegend von den Raspianern benutzt, aber er beherrscht keine Kompression. Wenn Du aber ein Image entwickelst, wirst Du mehrere Stände speichern wollen - und da spart Kompression einiges an Platz. Zu drei Image Tools habe ich hier mal etwas dazu geschrieben.


    Mit dieser Einleitung komme ich gleich zu Empfehlung Nummer 1: Die SD karte sollte so klein wie möglich sein, wenn Du von mehreren Ständen ein Image erstellen willst und Platz sparen möchtest. Beispiel: 5 Images einer 16 GB Karte, von denen nur 1,2 GB belegt sind, benötigen 80 GB Platz ohne Kompression. Mit einer 2 GB Karte sind es nur noch 10 GB. Und mit Kompression nur noch um die 2 GB. Eigene Images anpassen und erstellen mache ich sehr häufig und nehme dafür nur 2GB Karten (mit Jessie Lite).


    Einige Konfigurationsdateien kann man "auslagern". Das ist zwar unter Sicherheitsaspekten nicht so der Hit, aber wenn die Umgebung stimmt, ist das eine elegante Möglichkeit, wichtige Startparameter auch von "außen" beeinflussen zu können. Das sind zum Beispiel Netzwerkeinstellungen. Von "außen" heißt bei mir: SD-Karte in einen beliebigen Rechner (Windows, MAC, Linux), die Konfiguration anpassen, Karte in den Raspi, booten und läuft. Dazu werden die Konfigurationsdateien auf die /boot Partition ausgelagert. Diese ist FAT32 und kann von allen möglichen Rechnern, Kaffeemaschinen und Toastern gelesenund beschrieben werden. ;) Folgende Schritte sind dazu als root auf dem Raspi notwendig:

    Code
    $ sudo su -
    $ mkdir /boot/conf
    $ cp /etc/network/interfaces /boot/conf/interfaces.conf
    $ mv /etc/network/interfaces /etc/network/interfaces.original
    $ ln -s /boot/conf/interfaces.conf /etc/network/interfaces
    $ cp /etc/ssh/sshd_config /boot/conf/sshd.conf
    $ mv /etc/ssh/sshd_config /etc/ssh/sshd_config.original
    $ ln -s /boot/conf/sshd.conf /etc/ssh/sshd_config


    Vorausgesetzt, Du nutzt noch das alte init-V und noch nicht systemd. Dann muss das Ganze natürlich angepasst werden. Aber ich Denke, das Prinzip wird hier klar. Wenn Du auch noch wpa_supplicant nutzt, sollten die Dateien dazu auch mit ausgelagert werden. Jetzt könntest Du zum Beispiel ein Image erstellen und Deine Bekannten könnten dann die WLAN Konfiguration anpassen, bevor die Karte in den Raspi kommt und gebootet wird.


    Was nicht unbedingt notwendig ist, aber die Entwicklung etwas erleichtern kann: Erstell Dir auf der /boot Partition noch eine autorun.inf. Dort kannst Du neben den typischen autorun.inf-Parametern auch noch weitere informationen zu Deinem Image aufnehmen. Bei mir sieht die zum Beispiel so aus:

    Code
    [AutoRun]
    label=MY-PI [Basic]
    icon=\conf\MY-PI.ico
    
    
    [MY-PI]
    Project=Basic
    Version=0.1.0


    Das Icon musst Du Dir natürlich erstellen und in das conf-Verzeichnis kopieren. Dann siehst Du auch unter Windows gleich, was Deine Pi Bootpartition ist. :D


    Das war es eigentlich. Wenn Du noch weitere wichtige Konfigurationsdateien hast, die von außen geändert werden sollen/müssen, dann einfach nach dem beschriebenen Verfahren auslagern - that's it. :cool:



    [TOM]

    Mit zweiter SD-Karte und einem USB-Adapter für die Erste (Betroffene) kannst Du auch folgendes machen:


    1. Karte raus und Image erstellen. Unter Windows zum Beispiel mit USB Image Tool oder ODIN.
    2. Frisches, aktuelles Jessie-Light auf 2. SD-Karte kopieren.
    3. Von neuer 2. Karte booten. Die erste Karte mit Adapter in USB-Port.
    4. Mit fdisk die Partition der 2. Karte im USB-Port vergrößern. Anleitung gibt es hier.
    5. Raspi runter fahren und wieder erse Karte in SD-Kartenslot. Raspi booten.
    6. Jetzt sollte Dir auch der restliche Platz der SD-Karte zur Verfügung stehen.



    [TOM]


    Tom: Daran dachte ich auch erst, habs aber wieder verworfen weil ich dachte es müsste wenn dann ein Proxy sein ich mir dann aber nicht mehr sicher war und keine Zeit hatte das genauer zu recherchieren ;)
    Also irgendwie muss das ja permanent bestehen und die Daten die vom "nebenziel" gesendet werden auch zum "anfrager" zurück geschickt werden.. Geht das mit "redirect" ?


    Bei der Methode wandelt er es um, also aus zum Beispiel http://domain.de/pi1 wird dann http://<FritzBox-IP>:81. Es wird halt nur für die "Kommunikation" etwas hübscher, also für die Bekanntgabe in einer Email oder auf einer Website. Im Browser steht die URL mit dem Nicht-Standard Port. Aber wer schaut da schon hin... :D




    [TOM]


    OT: Ich lese hier jetzt schon ein paar Wochen mit, aber Dein Avatar irritiert mich immer noch. Hatte den mal jahrelang in einem anderen Forum. Wenn ich den sehe denke ich immer "Hmm - hab ich denn schon geantwortet? :s " :lol:

    Das sieht nach ASCII / Binary Konvertierung aus. Textdateien werden beim Austausch zwischen Windows, Linux und MAC konvertiert, sprich das Zeilenende wird dem Zielsystem angepasst.


    Wenn du die Dateien auf dem Raspi nicht wirklich brauchst, sondern nur lagerst, kannst Du alles in Binary übertragen.



    [TOM]

    Hast Du zufällig ein bisschen Webspace zu der Domain und läuft dort ein Apache Webserver? Wenn ja, klappt es vielleicht mit Redirects - kommt drauf an, wie der Apacahe konfiguriert ist. Erstelle oder ergänze die .htaccess in deinem DocumentRoot wie folgt:

    Code
    <If "1 -gt 0">        ### -gt = aktiviert | -lt = deaktiviert
    RedirectMatch 303 "/nas$" http://<FritzBox-IP>:80
    RedirectMatch 303 "/pi1$" http://<FritzBox-IP>:81
    RedirectMatch 303 "/pi2$" http://<FritzBox-IP>:82
    </If>


    Das <If> ist nicht notwendig. Man kann so das Ganze aber recht simple aktivieren bzw. deaktivieren. Für <FritzBox-IP> muss Du die IP-Adresse Deiner FritzBox eintragen. Das kann man mit DynDNS noch etwas hübscher hinbekommen.


    Jetzt sind Deine Geräte mit http://domain.de/nas bzw. http://www.domain.de/nas erreichbar. Wenn es nicht funktioniert liegt es mit großer Wahrscheinlichkeit an Restriktionen in der Apache httpd.conf. Dann gibt es noch eine Möglichkeit über PHP für Redirects. Entweder händisch oder mit YOURLS.


    [TOM]


    Damit ist das Thema natürlich nur angekratzt, vielleicht schreib ich ja doch mal ein Tut über die Sache mit systemd. [...]


    Das wäre eine coole Sache. :thumbs1: Insbesondere das Zusammenspiel mit wpa_supplicant wäre interessant. Bis jetzt habe ich nur Bruchstücke ergoogelt.



    [TOM]

    Dieses Tutorial erklärt, wie man:

    • Mit hostapd den Raspberry Pi als Access Point (AP) konfiguriert.
    • Mit dnsmasq einen DHCP und DNS Server für das AP-Netzwerk bereitstellt und konfiguriert.
    • Mit lighttpd und PHP einen schlanken und schnellen Webserver aufbaut.


    Für dieses Tutorial kam ein Raspberry Pi 2 Model B mit Ralink RT5370 Wireless Adapter zum Einsatz. Es wird das Netzwerk 192.168.222./24 aufgebaut bzw. benutzt. Der Pi hat in diesem Tutorial den Namen "my.pi". Als SSID habe ich "PiNet" gewählt und als dazugehörige Passphrase "myPiNetAP" gesetzt. Basis ist das Raspbian Jessie Lite Image vom 18.03.2016 (out of the box).


    Dauer, wenn keine Fehler auftreten: Maximal 30 Minuten
    Voraussetzungen: Basis Netzwerkkenntnisse.
    Eingesetzter Router: FritzBox


    Der Pi hat neben dem WLAN noch eine LAN-Verbindung zur FritzBox. Der Client (Windows Laptop) ist nur über WLAN verbunden - kein LAN.




    1. Vorbereitung:


    Das Image auf SD-Karte bringen. Ich habe dazu das portable USB Image Tool und eine 2GB SD-Karte verwendet.


    Nach dem ersten Start mit dem User pi anmelden und die notwendigen Pakete installieren. Gegebenenfalls vorher die Spracheinstellungen anpassen. Wenn der Pi ans LAN angeschlossen wird und euer Router automatisch IP-Adressen an beliebige Netzwerkteilnehmer vergibt, geht das sogar headless. Einfach in eurem Router nachschauen, welche IP-Adresse für den Pi vergeben wurde und mit dem SSH Client eures geringsten Misstrauens eine Verbindung aufbauen. Ich habe dafür von meinem Windows-Laptop aus die portable Version von Kitty verwendet. Die Installation:

    Code
    $ sudo apt-get install dnsmasq dnsutils hostapd lighttpd php5-cgi php5-cli php5-common


    Prüfen, ob der WiFi Adapter erkannt wird:

    Code
    $ lsusb
    Bus 001 Device 005: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
    [...]


    => Der WiFi Adapter wird erkannt.


    Feste IP Adresse vergeben. Es wird eine private IP-Adresse nach RFC 1918 gewählt. Dazu in /etc/network/interfaces folgende Einträge vornehmen:


    Zum Testen den Pi rebooten und mit ifconfig schauen, ob der Adapter wlan0 aktiv ist und ob die IP-Adresse 192.168.222.1 zugewiesen wurde. Wenn ja, weiter zum nächsten Schritt...




    2. AP (hostapd) konfigurieren:


    In /etc/default/hostapd die hostapd Konfigurationsdatei setzen. Dabei auch das Kommentarzeichen am Anfang entfernen:


    Code
    $ sudo nano /etc/default/hostapd
    
    
    [...]
    
    
    DAEMON_CONF="/etc/hostapd/hostapd.conf"
    [...]


    Die Konfigurationsdatei /etc/hostapd/hostapd.conf mit folgendem Inhalt erstellen (ACHTUNG: Keine Leerzeichen vor oder nach dem Gleichheitszeichen):


    Anm.: Die Wahl von "channel" ist abhängig von Eurer Umgebung. Ggf. einen Anderen wählen. Der Eintrag "driver" muss zu eurem WLAN-Adapter passen. nl80211 steht für meine Ralink. Für Edimax gibt es hier ein Tutorial.


    Den hostapd Service beim Booten starten und die neue Konfigurationsdatei einlesen:

    Code
    $ sudo systemctl enable hostapd
    $ sudo service hostapd restart


    Anm.: Normalerweise sollte der hostapd Service schon enabled sein.


    Jetzt sollte das Netzwerk "PiNet" sichtbar sein. Das kann man mit folgendem Befehl prüfen:

    Code
    $ iw wlan0 info


    Der Befehl sollte ungefähr folgende Ausgabe erzeugen:

    Code
    Interface wlan0
            ifindex 3
            wdev 0x1
            addr @@:@@:@@:@@:@@:@@
            ssid PiNet
            type AP
            wiphy 0
            channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz


    Man kann es auch mit einem anderen Rechner oder einem Handy testen. Mit einigen Handies soll es Schwierigkeiten geben. Der Test mit einem anderen Rechner ist daher zu bevorzugen. Für den Test zum Verbinden "PiNet" auswählen und mit der Passphrase "myPiNetAP" die Verbindung herstellen. Der Verbindungsaufbau sollte jetzt schon funktionieren. Allerdings wird noch keine IP-Adresse zugewiesen - zumindest nicht aus dem gewünschten Netzwerk 192.168.222.0/24. Dies kommt im nächsten Schritt.


    Wenn es an dieser Stelle zu Fehlern kommt den Service hostapd stoppen und manuell im Debug-Mode starten:

    Code
    $ sudo service hostapd stop
    $ sudo hostapd -d /etc/hostapd/hostapd.conf


    Dann hilft nur lesen, suchen und lösen. Ansonsten wenn alles funktioniert weiter zum Nächsten Schritt...




    3. DHCP und DNS (dnsmasq) konfigurieren:


    Originale Konfigurationsdatei verschieben:

    Code
    $ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.original


    Neue Konfigurationsdaei /etc/dnsmasq.conf mit folgendem Inhalt erstellen:

    Code
    $ sudo nano /etc/dnsmasq.conf
    
    
    interface=wlan0
    dhcp-range=192.168.222.100,192.168.222.254,255.255.255.0,48h
    listen-address=127.0.0.1
    listen-address=192.168.222.1


    Anm.: Mit "dhcp-host=..." kann eine permanente IP-Adresse an einem Host zugewiesen werden. Für die genaue Syntax bitte die Anleitung von dnsmasq konsultieren. Ich habe bei mir noch

    Code
    dhcp-host=@@:@@:@@:@@:@@:@@,Laptop,192.168.222.222,infinite


    gesetzt. Dadurch bekommt mein Client (Windows Laptop) immer die gleiche IP-Adresse zugewiesen. Das @@:... mit der eigenen MAC-Adresse ersetzen.


    In /etc/hosts die gewünschten Hostnamen setzen. Diese werden beim Starten von dnsmasq ausgelesen und im lokalen Netzwerk bereitgestellt. Hier ein Beispiel:

    Code
    $ sudo nano /etc/hosts
    
    
    [...]
    127.0.1.1        raspberrypi
    
    
    192.168.222.1    my.pi



    Den dnsmasq Service beim Booten starten und die neue Konfigurationsdatei übernehmen:

    Code
    $ sudo systemctl enable dnsmasq
    $ sudo service dnsmasq restart


    Zum Testen den Pi rebooten. Wenn alles OK ist, steht jetzt ein DHCP und DNS Server bereit. Dazu mit einem Client mit dem AP verbinden und die zugewiesene IP-Adresse, Subnetmask und Nameserver prüfen. Unter Windows geht das auf der Eingabeaufforderung (cmd) mit:

    Code
    > ipconfig /all


    Unter dem Windows WLAN Adapter sollten folgende Einträge zu finden sein (Auszug):


    Um zu prüfen, ob auch die Namensauflösung klappt, geben wir an der Windows Befehlszeile noch folgendes ein:

    Code
    > nslookup my.pi


    Das sollte folgende Ausgabe produzieren:

    Code
    Server:  my.pi
    Address:  192.168.222.1
    
    
    Name:    my.pi
    Address:  192.168.222.1


    Damit ist das kleine Netz aufgebaut und funktionsbereit.



    4. lighttpd und PHP konfigurieren:


    Installiert sind die beiden Pakete schon. Der Server ist auch schon "up and running". Wenn man noch immer mit dem AP verbunden ist, kann man dies testen. Dazu einfach die Adresse http://my.pi in euren Lieblingsbrowser eingeben. Es wird dann die Startseite von lighttpd angezeigt. Diese bzw. das DocumentRoot befindet sich unter /var/www/html.


    Es muss jetzt nur noch PHP für den lighty eingerichtet werden. Dazu in der Datei /etc/lighttpd/lighttpd.conf am Anfang im Abschnitt "server.modules =" folgenden Eintrag hinzufügen:

    Code
    "mod_fastcgi",


    Und am Ende der Datei die Konfiguration für fastcgi hinzufügen:

    Code
    fastcgi.server = ( ".php" => (( 
                       "bin-path" => "/usr/bin/php-cgi",
                       "socket" => "/tmp/php.sock" 
                   )))


    Nach einem Neustart von lighttpd ist PHP verfügbar:

    Code
    $ service lighttpd restart


    Zum Testen erstellen wir uns eine index.php im DocumentRoot mit folgendem Inhalt:

    PHP
    $ sudo nano /var/www/html/index.php
    
    
    <?php phpinfo(); ?>


    Wenn wir jetzt die Browseransicht (http://my.pi) aktualisieren, werden die PHP Infos angezeigt, da die index.php Vorrang vor der index.lighttpd.html hat.




    5. Fazit:


    Das war es. Mit diesen überschaubaren Schritten ist ein Access Point ohne Internetverbindung eingerichtet. Bei der Netzwerkkonfiguration habe ich hier noch die /etc/network/interfaces und nicht systemd verwendet. Dadurch sollte die Einrichtung eines AP auch unter wheezy funktionieren.


    Und wenn man über den Pi doch eine Verbindung ins Internet haben möchte? Dann einfach folgende Einträge ans Ende der /etc/network/interfaces stellen:



    Viel Erfolg...



    [TOM]


    Sobald ich "sudo hostapd -dd /etc/hostapd/hostapd.conf" benutze, dann startet der AP - auch wenn ich die gleiche config Datei angegeben habe ...


    Was steht denn in der /etc/default/hostapd bei DAEMON_CONF? Der Eintrag sollte wie folgt aussehen:

    Code
    DAEMON_CONF="/etc/hostapd/hostapd.conf"




    Ich habe aber noch ein Problem: Wenn ich mit meinem Android Smartphone verbinde, dann sagt es "keine Internetverbindung" [...]


    Das ist ja auch korrekt so. Der Pi hat ja keine Internetverbindung und demzufolge auch die Clients nicht, die sich mit ihm verbinden.




    [...] und beim Versuch im Browser per IP auf die Seite zu kommen versucht das Handy über's Mobile Internet die IP aufzurufen und gibt entsprechend eine Fehlermeldung


    Deaktiviere mal das mobile Internet im Handy und nimm die komplette URL, also mit http:// - nicht nur die IP-Adresse.




    Wie realisierst du denn noch das http://my.pi?


    Kommt auf das Szenario drauf an.Wenn der Pi - wie in diesem Thread - keine Internetverbindung hat dann in die /etc/hosts die IP-Adresse des Pi eintragen:

    Code
    192.168.222.1 my.pi


    Danach dnsmasq neu starten und die der Name wird in dem kleinen, lokalen Netz des Pi aufgelöst.


    Ich werde das in den nächsten Tagen mal etwas detaillierter als Tutorial zusammenschreiben.



    [TOM]

    Ich denke, wir haben etwas ähnliches vor. Allerdings will ich keine Bilder bereitstellen. ;) Ich skizziere mal kurz, was ich vorhabe bzw. teilweise schon realisiert habe - vielleicht passt das ja auch zu Deinem Vorhaben.


    Für meine Vorlesungen benutze ich einen Raspberry Pi, um einen Server im Internet zu simulieren. Der Pi ist als Access Point konfiguriert und vergibt per DHCP IP-Adresse, Subnetmask und DNS Server. Für eine minimale Namensauflösung wird ein Nameserver auf dem Pi bereitgestellt. Als Webserver läuft der Apache mit PHP. Der Pi hat keine Verbindung mit dem Internet - es ist also ein isoliertes Netz.


    Die Studenten können sich mit ihren Rechnern mit dem Accesspoint verbinden. Dazu gebe ich vorher die SSID und die Passphrase bekannt. Da auf dem Pi ein Nameserver läuft und entsprechend konfiguriert ist, kann durch den Aufruf eines festgelegten Namens (z. B. http://my.pi) die Startseite des Webs my.pi aufgerufen und angezeigt werden.


    Wenn Du jetzt eine "Anmeldung" möchtest, würde ich dafür mod_auth (Apache Verzeichnisschutz) verwenden. Dazu müssen natürlich die User vorher angelegt werden. Eine Selbstregistrierung habe ich nicht vorgesehen.


    Wenn das zu Deinem Vorhaben passt, kann ich morgen die Details dazu liefern - bin heute schon zu müde. :sleepy:



    [TOM]

    Hallo zusammen,


    ich habe gerade einen Benchmark mit john (John the Ripper) auf einem Pi2, Pi 3 und einem vServer im Internet laufen lassen. Dabei schaue ich ausschließlich auf die Standard-DES Werte (traditional crypt), also das erste Benchmarkergebnis beim Aufruf ohne Parameter. Heute ist mir ein Unterschied im Ergebnis zwischen den Raspians und dem vServer aufgefallen - der Hinweis DES 32/32 bzw. DES 128/128.


    Beim Pi 3 sieht das Ergebnis zum Beispiel so aus:

    Code
    Benchmarking: descrypt, traditional crypt(3) [DES 32/32]... DONE
    Many salts:     163142 c/s real, 163142 c/s virtual
    Only one salt:  159756 c/s real, 159756 c/s virtual



    Beim vServer sieht das Ergebnis so aus:

    Code
    Benchmarking: descrypt, traditional crypt(3) [DES 128/128 SSE2-16]... DONE
    Many salts:     2821K c/s real, 2826K c/s virtual
    Only one salt:  2581K c/s real, 2581K c/s virtual


    In der Doku und bei Openwall habe ich nichts dazu gefunden. Weiß jemand, was der Hinweis bedeutet? Auf allen drei Systemen läuft die Version 1.8.0.



    [TOM]


    Gibt es eine Möglichkeit jeden Aufruf in einem Browser auf eine bestimmte Seite zu leiten? Wenn der Pi quasi als DNS-Server fungiert? Oder eben zumindest o.g. "Captive-Portal" ("Sie müssen sich in diesem Netzwerk anmelden")?


    Ich verstehe die Frage noch nicht so ganz. Der Pi hat ja keine Internetverbindung bzw. soll ja keine haben nach Deinem ersten Post. Was ist der Hintergrund? Was hast Du vor?



    [TOM]


    Oder gibt es einen Trick das ich Webseiten die auf der SD-Card gelagert sind automatisch in den internen Speicher geladen werden und so schneller geliefert werden können?


    Hast Du es mal mit lighttpd versucht? Ich habe sonst auch immer den Apache als Webserver genommen, aber für den Pi bin ich probehalber mal auf lighttpd umgestiegen. Gefühlt ist der deutlich schneller. Für Projekte, bei denen ich nicht unbedingt den Apche nehmen muss, werde ich in Zukunft deswegen häufiger auf den lighty ausweichen.



    [TOM]

    Ich habe einen "Vorlesungs-Pi", der als Access Point konfiguriert ist, aber keine Internetverbindung aufbauen soll. Du brauchst dazu hostapd (den eigentlichen Access Point) und dnsmasq (als DHCP Server). Ich nehme an, die Kurzversion reicht Dir:


    Code
    $ sudo apt-get install hostapd dnsmasq


    In der /etc/dnsmasq.conf folgende Änderungen vornehmen:

    Code
    interface=wlan0
    dhcp-range=192.168.222.100,192.168.222.254,255.255.255.0,12h


    Damit werden die Adressen zwischen 192.168.222.100 und 192.168.222.254 vergeben. Lease time sind 12 Stunden.


    Die /etc/hostapd/hostapd.conf sollte wie folgt aussehen (Achtung: Keine Leerzeichen vor oder nach dem Gleichheitszeichen!):


    Bei "driver=" muss der Richtige Treiber angegeben werden. Das ist eigentlich der schwierigste Teil. Ich habe hier ein Ralink, daher nl80211. Die ssid und wpa_passphrase müssen noch angepasst werden.


    Die beiden Dienste noch (durch-) starten:

    Code
    sudo /bin/systemctl restart dnsmasq.service
    sudo /bin/systemctl restart hostapd.service


    Danach sollte das neue Netzwerk "Classroom" sichtbar sein.



    [TOM]

    Hallo zusammen,


    seit ein paar Wochen gehöre ich auch zum "Raspberry Pi Fan und Spieleclub". ;) Bin sehr begeistert und habe mir neben den beiden B+ Teststellungen einen Pi 2 und letzte Woche noch den Pi 3 geholt. Ich habe den Pi auch schon erfolgreich in einer meiner Vorlesungen eingesetzt. Ich werde ihn auf jeden Fall weiterhin einsetzten und entwickel dazu derzeit ein "Vorlesungs-Image" bzw. portiere mein Altes. In diesem Zusammenhang habe ich ein paar Anmerkungen bzw. Ergänzungen zu der SD-Image Erstellung für diejenigen, die eine angepasste, wiederverwendbare Raspberry Pi Linux Distribution als Image unter Windows erstellen wollen.


    Auf https://www.raspberrypi.org/ und auch hier im Forum/Thread wird der Win32DiskImager zum lesen und schreiben von Images empfohlen. Ich habe ihn mit zwei Alternativen verglichen, dem USB Image Tool und ODIN. Hier meine Erkenntnisse und Ergebnisse mit ein paar persönlichen Bemerkungen:


    -----------------------------------------------------------------
    Größe und Belegung der verwendeten SD-Karte:
    -----------------------------------------------------------------
    Disk /dev/mmcblk0: 1.9 GiB, 1.977.614.336 bytes, 3862528 sectors


    Filesystem Size Used Avail Use% Mounted on
    /dev/root 1.8G 1.1G 533M 68% /
    /dev/mmcblk0p1 60M 20M 41M 34% /boot
    -----------------------------------------------------------------


    -----------------------------------------------------------------
    [1] Win32DiskImager (=> Projektseite)
    -----------------------------------------------------------------

    • Installation notwendig.
    • Endung wird nicht automatisch vergeben.
    • Irreführend Bezeichnung (Read/Write: Welche "Seite" ist Read und welche Write? Write Image oder Write SD?).
    • Zeit zum Erstellen eines Images (manuell gestoppt):

      • Dauer: 1:51 Min.
      • Größe des Images: 1.977.614.336 Byte (1,84 GB)
      • MD5: 9BD29D6076928034AAA70F847EEEA28D


    -----------------------------------------------------------------
    [2] USB Image Tool (=> Projektseite)
    -----------------------------------------------------------------

    • Keine Installation notwendig.
    • Zeit zum Erstellen eines Images (manuell gestoppt):

      • Dauer: 1:46 Min.
      • Größe des Images: 1.977.614.336 Byte (1,84 GB)
      • MD5: 9BD29D6076928034AAA70F847EEEA28D



    -----------------------------------------------------------------
    [3] ODIN (=> Projektseite)
    -----------------------------------------------------------------

    • Keine Installation notwendig.
    • Auswahl über Devicenamen (gewöhnungsbedürftig).
    • Beim Restore wird kein Fortschritt angezeigt.
    • Folgende Optionen für das Backup gesetzt:

      • Save all Blocks
      • GZip Compression
      • Store image in one file


    • Zeit zum Erstellen eines Images (Werte von ODIN):

      • Dauer: 2:54
      • Größe des Images: 800.285.299 Byte (763 MB)
      • MD5: 8609FD9F2D02A0677BF199D7FB0CDD16



    Fazit:


    Win32DiskImager und das USB Image Tool erstellen identische Images. Ich persönlich ziehe für solche Images das USB Image Tool vor, da es nicht installiert werden braucht. Es wird bei mir als "PortableApp" eingesetzt.


    ODIN ist mein Favorit für die Imageerstellung. Es kommt zwar nicht mit den offiziellen Images klar - dafür muss man weiterhin [1] oder [2] nutzen, aber im Gegensatz zu den beiden vorherigen komprimiert es das Image, was bei einer großen Anzahl von Images Platz auf der Platte schafft. In dem zuvor gezeigten Beispiel wird as Image auf ca. 40% reduziert. Wer genug Platz für seine Images hat, kann sich natürlich die Kompression sparen und so schneller Images erstellen. Der Einsatz bzw. Umstieg auf ODIN ist dann nicht notwendig. Für mich ist die Platzersparnis wichtiger als die Zeitersparnis.


    Die Tests sind ohne "Nullen" des freien Bereiches erfolgt. Wer noch kleinere Images erzeugen will, kann die Karte unter dem Pi mit folgendem Befehl vorbereiten:


    Code
    $ sudo dd if=/dev/zero of=/tmp/zero bs=32k; rm -f /tmp/zero


    Bei mir ist mit dieser Vorbereitung zum Beispiel aus einer 4 GB SD-Karte mit ca. 1,1 GB Belegung eine 380 MB große (bzw. kleine) Imagedatei geworden.



    [TOM]