Donnerstag, 26. Februar 2015

DIY Budget NAS Server 2015 für Zuhause: Teil 2 (Hardwareauswahl)

Wenn ich die Eckpunkte des einleitenden Artikels berücksichtige und mich am Markt umschaue, stechen zwei Mainboards mit CPU ins Auge. Beide sind von ASROCK. Das eine ist das E350M1, welches mit AMD E-350 daher kommt, es bietet zwei Steckplätze für DDR3 Ram und liegt so bei 18W TDP. Nicht schlecht! Das andere Board ist das ASROCK C70M1. Es hat den C70 Prozessor von AMD verbaut, welcher vergleichbar it dem E350M1 ist. Auch die restlichen Spezifikationen sind vergleichbar. Ich habe mich für das letztere Board entschieden da es nur die Hälfte an Energie benötigt und mit 9 W TDP auskommt. Dazu ist es auch noch einige Euros günstiger.

Bei Arbeitsspeicher reichen 4 GB aus, da künftig kein ZFS eingesetzt wird. Ich habe eigentlich schon immer Corsair verbaut, deswegen fiel die Wahl auf 2 mal 2GB Riegel DDR3 welche mit 1333MHz getaktet sind.

Einen alten Netzwerkspeicher den ich mit dem hier Vorgestellten System ablösen möchte läuft seit Jahren stabil von einem USB Stick. Um den Stick zu schonen, wird nach dem Boot eine RAM Disk eingerichtet und viel benutzte Verzeichnisse in der Ramdisk gehalten. Bisher habe ich recht gute Erfahrungen gesammelt, Stromausfälle hat das SAN gut überstanden und einen bisher hatte ich noch keine Probleme mit dem Stick. Ich habe mich für Sandisk's Cruzer Ultra entschieden damit das Teil nicht so weit aus dem Gehäuse schaut.

Den geringen Strombedarf beziehe ich aus einem Be Quiet Netzteil. Mit dem Hersteller habe ich bisher keine Probleme gehabt. Man kann Gut und Günstig gemeinsam haben. Ich habe mich  für ein 300 Watt Netzteil entschieden, welches selbst bei Volllast extrem überdimensioniert ist. Bei der Evaluierung der Mainboards hatte ich zwischendurch ein Asrock mit Intel Celeron angeschaut welchen an einem Notebooknetzteil läuft. Das ist natürlich auch genial, da eine Menge Platz im Gehäuse bleibt. Aber naja... Das Mainboard mit Notebooknetzteil ist halt doppelt so teuer und damit raus. Und Be Quiet ist die Wahl.

Schlussendlich wollen wir die ganzen Komponenten zusammen in ein Gehäuse stecken. Ich habe mich für das Cooler Master  Elite 120 entschieden da die technischen Spezifikationen und der Preis dem Entsprechen was ich suche. Ästhetisch… darüber lässt sich streiten. Da das Ding im Keller seinen Dienst verrichten wird, werde ich es aber nicht so häufig zu sehen bekommen.

Zusammen aufgelistet und bei Amazon geklickt liegt der Warenkorb bei 188,66 und damit unter der Vorgabe von 200€. Ich habe alle Produkte unten aufgeführt und zu Amazon verlinkt.

KategorieProdukt*Preis**
BoardASRock C70M151,33 €
RAMCorsair 4GB (2x2GB) DDR3 1333 MHz47,18 €
FlashSanDisk Cruzer Ultra Fit 16GB USB 3.09,99 €
GehäuseCooler Master Elite 120 Advanced44,29 €
NetzteilBe quiet! BN140 System Power 7 Stromversorgung35,87 €
Summe188,66 €



Ein wesentlicher Aspekt für ein NAS wurde bisher noch nicht angeführt! Festplatten! Da in dem NAS Gehäuse 3 Festplatten laufen können und 4 Anschlüsse auf dem Board sind, habe ich beschlossen die alten Platten aus dem NAS welches ich ersetzen möchte weiter zu verwenden.  Wer sich neue Platten kaufen möchte findet diese in jeglicher Größe. Derzeit wird viel auf NAS Platten von WD geschworen. Diese als RED Serie bezeichneten Platten findet man in Größen von 1,2,3,4,5 und 6 TB in dem NAS mit Raid 5 kann man somit je nach Platten einen Speicher von 2 bis 12 TB für das heimische Netz bereitstellen.

Wie der NAS Server zusammengebaut wird und welche Software zum Einsatz kommt und die Konfigurationen wird in den kommenden Tagen ausführlich beschrieben.

Mehr Informationen zu der Serie (welche sich noch im Aufbau befindet:)



Samstag, 21. Februar 2015

Raspbian auf Jessie upgraden

[Post erstellt am 21.02.2015]
Bei Debian steht ein Versionswechsel in Haus. In Naher Zukunft wird die aktuelle Version "Wheezy" durch "Jessie" ersetzt. Raspbian, als speziell auf den Raspberry zugeschnittene Version von Debian wird diese Aktualisierung auch erfolgen.
In diesem Artikel möchte ich beschreiben wie der Umstieg von dem derzeit als Stable geltenden Wheezy auf die „Testing“ Version Jessie erfolgt. Das der Stabile Betrieb des Raspberrys nicht garantiert werden kann wird in vielen Foren ausführlich erörtert. Ich möchte darauf hier nicht weiter eingehen :-)
Okay bevor es losgeht, sollte sichergestellt werden das alle wichtigen Daten gebackupt wurden... oder am besten das ganze Image von der SD Karte einmal auf einen anderen Rechner sichern.

Anschliessend schauen wir welche version von Raspbian auf unserem Raspberry läuft:

sudo lsb_release -a

Die Ausgabe ist so wie erwartet:

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.6 (wheezy)
Release:        7.6
Codename:       wheezy


Das Upgrade von Wheezy auf Jessie ist bei mir problemfrei durchgelaufen. Als erstes müssen die Paketlisten auf das Jessie umgestellt werden:

sudo nano /etc/apt/sources.list

Im Normalfall ist dort nur eine Zeile anzupassen:

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

sollten weitere Zeilen einkommentiert sein, welche auf raspbian.org verweisen, sollten diese auch von Wheezy auf Jessie geändert werden:

deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ jessie main contrib non-free rpi

Alle Sourcen welche nicht auf raspbian.org zeigen müssen geprüft individuell werden. Da ich eine neue Wheezy Installation verwende habe ich noch keine fremden Sourcen.
Anschließend werden die angepassten Paketlisten neu eingelesen und das System aktualisiert.

sudo apt-get update && sudo apt-get dist-upgrade

Während des upgrade Prozesses werden einige Abfragen zur Konfiguration von Jessie gemacht. Wie lange das Upgrade dauert kann ich nicht sagen, da ich nicht regelmäßig auf die Shell geschaut habe und so das Dist-Upgrade bei Nachfragen auf mich warten musste.Insgesamt hat das wohl ungefähr zwei Stunden gedauer, ich habe in der Zeit aber andere Dinge getan und nur ab und an mal auf den Putty Screen geschaut.

Sobald das Dist-Upgrade durchgelaufen ist wird der Raspberry rebootet und geprüft ob alle Dienste wie geplant gestartet wurden.

Es ist noch zu empfehlen, nach dem Upgrade die nichtmehr benötigten werden:

sudo apt-get autoremove
sudo apt-get autoclean 

Da alles sauber läuft noch der letzte Beweis, das der Raspberry mit Jessie  läuft:

sudo lsb_release -a

und... siehe da:

No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:        8.0
Codename:       jessie

Sobald ich eine Aussage zur Stabilität und zur Performance machen kann werde ich das hier berichten.


Samstag, 14. Februar 2015

Lighttpd aus Rasbian für die Verwendung von OwnCloud 8 patchen

Der Raspberry Pi 2 B+ hat jetzt ausreichend Leistung um auch etwas anspruchvollere Aufgaben zu übernehmen. Der Einsatz als Owncloud-Server ist eine davon. Nur eine Woche nach der Vorstellung der Raspberry Pi2 wurde auch OwnCloud 8 veröffentlicht. Das zwängt sich einem als kleines Nebenprojekt auf :)

Für die Verwendung von Owncloud 8 in Kombination wird Lighttpd auf einem aktuellen Rasbian Wheezy stehen wir vor einer kleinen aber lösbaren Herausforderung. Owncloud 8 benötigt die  HTTP Patch Methode, welche in Lighttpd erst in Version 1.4.32 eingeführt wurde. Das Standard Rasbian Whezey setzt verwendet die Lighttpd Version 1.4.31.

Um den Webserver mit dem Patch auszustatten sind einige Vorbereitungen notwendig. Zuerst werden die Packages Quilt, patch und Devscripts installiert.  dies Erfolgt mit dem Befehl:

apt-get install quilt patch devscripts

Anschließend werden für den Lighttpd alle Build-Abhängigkeiten installiert, das heißt alle Pakete, welche für ein eigenen Build notwendig sind.

apt-get build-dep lighttpd

Wenn alle Abhängigkeiten auf dem installiert sind werden die Sourcen von Lighttpd geladen.

apt-get source lighttpd


Jetzt wird noch der Patch benötigt. Dazu wird ein Verzeichnis erstellt und der Patch dort gespeichert.

mkdir lighttpd-1.4.31
cd  lighttpd-1.4.31
wget http://redmine.lighttpd.net/attachments/download/1370/patch.patch

Wenn der Patch auf der SD Karte ist, teilen wir Quilt mit, an welchen Platz der Patch  abgelegt werden soll. Dies erfolgt mit :

export QUILT_PATCHES=debian/patches

Mit dem Befehl
Quilt new http-patch.patch

Wird ein neuer Patch erzeugt. Anschließend wird Quilt angewiesen, die Änderungen, welche durch uns vorgenommen werden zu überwachen. Mit dem Befehl

patch –p1 –i  /verzeichnis/zum/Donwload/patch.patch

wird der Patch des Webservers durchgeführt.  Dabei sollte der Pfad zum heruntergeladenen Patch vollständig angegeben werden. Der Patch wird abgeschlossen, in die Informationen von  Quilt aktualisiert werden.

Quilt refresh

Um zu verhindern das apt-get upgrade wieder die Version ohne Patch einspielt wird die Paktetversion angepasst bzw. ein neuer Changelog Eintrag erzeugt.
Dies erfolgt mit dem Befehl:

dch –i

wen man mag kann man hier noch Informationen zum Patch angeben.
Anschließend wird das Debian Paket erzeugt :

debuild -us -uc

Dieses sollte sich im Verzeichnis über unserem Patch befinden

ls –df ../*

sollte jetzt eine Datei lighttpd_1.4.31.dep  oder ähnlich enthalten.
Da wir alle Abhängigkeiten für lighttpd schon installiert haben sollte die Installation des gepatchten Paketes mit

Dpkg –i /Pfad/zum/Paket/lighttpd.deb

problemfrei durchlaufen.

Fertig! Der gepatchte Paket ist installiert und wir können mit

service lighttpd restart

neu starten. Von einem Browser ist der lighttpd nun unter der IP Adresse oder des Domainnames des Raspberry erreichbar.

Wenn dir der Post weitergeholfen hat, oder du Verbesserungsvorschläge hast, würde ich mich über einen Kommentar sehr freuen.

Freitag, 6. Februar 2015

Raspberry Pi2: Alte SD Karten im Raspberry Pi2 nutzen

Der neue Raspberry bietet mehr Leistung. Dies kommt durch einen anderen, moderneren ARM Prozessor. Das führt dazu das alte Versionen des Betriebssystems (hier im Beispiel Raspbian Wheezy) nicht im neuen Raspberry läuft. Es ist jedoch möglich eine SD Karte mit der Installation der geliebten Software und deren Konfiguration für den neuen Pi2 lauffähig zu machen.

Im einfachsten Fall soll dazu eine Micro SD Karte aus einem Raspberry Model A+ oder B+ im Pi 2 eingesetzt werden. Hier reicht ein Upgrade von Raspbian.

Dazu führt man im ersten Schritt ein Backup der SD Karte an. Wird dafür ein Windows Rechner verwendet, wird die Micro SD Karte in den Kartenleser eingeführt und mit „Win32 Diskimager“ mit Read ein Imagefile geschrieben. Das Image kann noch gezipt und archiviert werden.
Anschließend wird die Micro SD Karte wieder im (alten) Raspberry gesteckt und der Pi gestartet. Nach dem man sich am Raspberry angemeldet hat, werden die folgenden Befehle zum Upgrade von Raspbian ausgeführt:

sudo apt-get update
sudo apt-get dist-upgrade
suod apt-get clean
sudo apt-get autoremove
sudo –apt-get install rpi-update
sudo rpi-update

Anschließend wird der alte Raspberry herunter gefahren.

sudo shutdown –h now

und die Micro-SD Karte wird in den Raspberry Pi 2 gesteckt und dieser gestartet. Alle Prozesse und alle Services sollten im neuen Pi so laufen wie im Vorgänger … nur halt schneller.
Wenn eine normale SD Karte aus einem Raspberry Model A (ohne Plus) oder Model B (ohne Plus) muss von der SD Karte ein Image gezogen werden und auf eine Micro SD Karte übertragen werden. Zuerst werden die im Absatz zuvor beschriebenen Schritte durchgeführt und Raspbian auf den aktuellen Stand gebracht. Ist der Speicherplatz auf der künftig verwendeten MicroSD Karte größer als auf der alten SD Karte, kann von der Alten Karte erneut ein Image gezogen werden. Unter Windows kommt dazu wieder der  Win32 Disk Imager zum Einsatz. Anschließend wird die neue Micro SD Karte in den Kartenleser gesteckt und das gerade erstellte Image auf die Karte geschrieben. Diese kommt jetzt in den Pi2 welcher dann ohne Probleme starten wird.

Mittwoch, 4. Februar 2015

Unboxing: Der neue Raspberry PI 2

Direkt nach dem am 2. Februar 2015 die Meldung über den neuen Raspberry Pi 2 Model B veröffentlicht wurde habe ich mir einen bestellt. Für meine Bastelprojekte ist etwas mehr Leistung gewünscht.

Der neue Raspberry kommt mit einem ARM Cortex A7 Prozessor und ist mit 900MHz getaktet. Der Chip ist das Model BMC2836 von Broadcom und kommt mit 1GB Speicher. Die restlichen Spezifikationen sind analog zum Raspberry Pi B+. Mehr Informationen gibt es in der Wikipedia.
Ein wichtiger Punkt ist jedoch zu beachten: Für die erste Generation ist eine Stromversorgung mit ca 700mAh als ausreichend. Der neue benötigt etwas mehr. In den Sezifikationen sind 1800mAh genannt. Mit einem guten Netzteil sind diese Ströme eigentlich kein Problem. Ich verwende für meinen Pi an den Belkin IPad Charger F8J040 gehängt da der mit 2400mAh ausreichend Power für die neue Generation des Raspberry hat. Die Gehäuse könnt ihr vom Raspberry Pi B+ verwenden, diese sind im Wesentlichen kompatibel. Ich habe meinen in dem Tek-Berry B+ Gehäuse von Teko, aber ich habe mir aber ein neues Gehäuse von OneNine Design bestellt. Der Vorteil dieses Gehäuses sind die Kabel Outlets für die GPIO Ports.

Mit der Nachricht, über den neuen Pi2 wurde auch eine Kooperation mit Microsoft bekannt gegeben. Microsoft bietet eine spezielle Version von Windows X für den Raspberry an. Dazu muss man sich auf der Website WindowsOnDevices.com als Windows Developer registrieren

Eine Sache noch! Das Betriebssystem sowohl Raspbian als auch Noob müssen neu gezogen werden. Die alten Releases für die erste Generation gehen nicht mehr. (aber die neuen Builds gehen auf dem alten Pis). Zusätzlich kann man jetzt auch noch Ubuntu einsetzen.

Heute war mein Gerät in der Post und ich mich direkt hingesetzt um das Schätzchen anzuwerfen. Ich habe dabei einige Bilder gemacht. 


Hier die Bilder vom Unboxing des Raspberry

Wie die früheren Modelle kommt der Pi im schlichten Karton. 
 Zusätzlich gibt es ein kleines Handbuch als Quickstarter Guide.

Der Pi ist natürlich in einer Antistatikfolie eingepackt.

Nachfolgend sind einige Bilder des Pi.


  


Montag, 5. Januar 2015

Shairport vom System entfernen

Mit folgenden einfachen Schritten kann ich eine Installation von Shairport wieder aus dem System entfernen.
  1. im ersten Schritt wird dafür gesorgt das Shairport nicht mehr beim Boot aufgerufen wird

    sudo update-rc.d -f shairport remove

  2. es wird das Boot oder Daemonskript aus dem Verzeichnis /etc/init.d gelöscht:

    sudo rm /etc/init.d/shairport

  3. normalerweise wird das Program in ein Unterverzeichnis von Shariport installiert. Mit dem folgenden Befehl kann danach gesucht werden:

    sudo find /usr -name 'shairport'

  4. Anschließend wird das Programm gelöscht

    sudo rm /Pfad/shairport

  5. nun kann man noch nach den Sourcen der Installation suchen
    sudo find / -name 'shairport'

  6. und diese entfernen.

    sudo rm -r /Pfad/shairport_source

  7. Je nachdem welche Pakete für Shairport noch installiert wurden, können diese entfernt werden. Dabei sollte darauf geachtet werden, das die Pakete nicht von anderen Programmen benötigt werden

    apt-get purge wegdamit && apt-get autoremove

Fertig alles Shairpoint ist vom Raspberry verschwunden.

Samstag, 11. Oktober 2014

Backup Raspberry SD Card im laufenden Betrieb

Heute habe ich mich mit dem Backup vom Raspberry beschäftigt. Hier gibt es verschiedene Ansätze:
  1. Backup der geänderten Konfigurationsdateien und der "Projektdaten"
    + schnell da es sich zumeist um wenige Daten und Dateien handelt
    + Backup kann auch in ein Backup Verzeichnis auf der SD Karte geschehen
    - es müssen alle geänderten Dateien gefunden werden
    - beim zurückspielen muss sichergestellt werden, dass alle Pakete und Module installiert sind
  2. Vollständige Kopie der gesamten SD Karte
    + einfacher Klon der SD Karte ohne große Aufwände
    + zurückspielen auf neue SD Karte recht problemlos möglich
    - sehr großer Speicherbedarf
    - kein inkrementelles Backup
Noch einen Hinweis im Vorfeld. In den allerwenigsten Fällen wird der gesamte Speicherplatz auf der SD Karte verwendet. Ich habe mir deswegen ein "Master Image" erstellt, in welchen schon alle notwendigen Informationen für mein Lan liegen und welches auf eine 4GB Karte passt. Die exakte Größe der SD Karte variiert von Karte zu Karte -selbst im selben Image. Ich habe deswegen maximal 3,9 GB als Imagedatei

Okay los geht ich habe mich für die zweite Methode entschieden und schreibe die Daten über das Netzwerk auf einen anderen PC. Dies kann sowohl auf die Freigabe eines Linux oder eines Windows Systems geschehen.

Für Windowsziele

Hier sind auf dem Raspberry einige zusätzliche Pakete notwendig. Diese werden mit folgenden Befehl installiert:

sudo apt-get install samba-client samba-common cifs-utils

Es wird ein Verzeichnis erstellt, welche dann auf das Netzlaufwerk des WindowsPCs gemountet wird.

sudo mkdir /WindowsVerzeichnis

Danach wird die Windowsfreigabe auf dieses Verzeichnis gemounted:

sudo mount -t cifs -o guest //WindowsPC/Freigabe /WindowsVerzeichnis

Dabei sollte darauf geachtet werden das die Windowsfreigabe keine Leerzeichen enthält. Ist dies der Fall muss die Freigabe in Anführungszeichen  geschrieben werden.

Für Linuxziele

Hier verwenden wir NFS. Normalerweise sollten die Clientpakete auf dem Raspberry sein. Last uns zu Sicherheit noch mal nachschauen:

sudo apt-get install nfs-common

Ich gehe mal davon aus das die Freigabe auf dem Ziel eingerichtet ist. Auf dem Raspberry erstellen wir ein Verzeichnis auf welches die NFS Freigabe gemountet wird:

sudo mkdir /LinuxVerzeichnis

Danach wird die Freigabe gemountet. Dazu wird der folgende Befehl verwendet:


sudo mount 192.168.76.110:/share /LinuxVerzeichnis

Okay es geht gemeinsam weiter

Anschließend kann ich nachprüfen ob alles funktioniert. Der Befehl

df -h

 solle in der Rückgabe auf das gemountete Verzeichnis verweisen:

//WindowsPC/Freigabe 2.0G 1.8G 200M 10% /WindowsVerzeichnis
//192.168.76.110:/share  2.0G 1.8G 200M 10% /LinuxVerzeichnis

Wir gehen in das Verzeichnis und schauen ob wir die Berechtigung zum Schreiben von Daten haben. Der einfachste Weg ist:

cd /Linux/Verzeichnis
touch test.txt
ls

Gibt touch keine Fehlermeldung und ls zeigt die Datei, dann kann man noch mal auf dem Zielsystem schauen ob die Datei auch dort zu sehen ist.... aber das ist dann schon eher unnötig.
Okay wir suchen uns jetzt die Bezeichnung der SD Karte:

fdisk -l

gibt bei meiner 16GB Karte folgende Ausgabe:

Disk /dev/mmcblk0: 16.1 GB, 16130244608 bytes
4 heads, 16 sectors/track, 492256 cylinders, total 31504384 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: 0x000981cb

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880     7403519     3640320   83  Linux

Die Bezeichnung, die wir suchen ist /dev/mmcblk0. Ebenfalls kann man hier sehen das auf der Karte zwei Paritionen sind. Die FAT32 parition wird verwendet um zu Booten. In der Linuxpartition sind alle Daten des Raspberry.

Die Größe der beiden Partitionen lässt sich von den Blöcken berechnen:
Die Bootpartition (FAT32) geht von Block 8192 bis Block 122879. Somit ist die Partition 122879-8192 Blöcke groß. Bei einer Blockgröße von 512bytes ergibt dies ca 59MB.

Die Datenpartition ist schon größer. Mit der Selben Formel Endblock - Startblock (7403519 - 122880) ergibt die Anzahl von 7280639 Blöcken. Das macht bei 512byte pro Block ca 3728 MB.

Zusammen belegen unsere beiden Partitionen 3,8GB auf der 16,1GB großen Karte. Im Vollbackup werden die gesamten 16GB über das Netzwerk geschoben. Da wir uns in einem Privaten Netz befinden und der Raspberry hoffentlich über LAN läuft ist das so erst mal ok. Nach dem Klonen der SD Karte werfen wir den ungenutzten Platz aus dem Klon wieder raus. Aber....wollen wir erst mal anfangen. Wir kopieren mit dd den gesamte Inhalt von mmcblk0 auf das Netzwerkshare:


sudo dd if=/dev/mmcblk0 of=/LinuxVerzeichnis/sdKarte.img bs=1M

Der Raspberry ist dann erst mal ganz gut am Knechten. Bei mir macht der das immer richtig gemütlich aber nach einer weile kommt:


sdKarte.img bs=1M
15383+0 records in
15383+0 records out
16130244608 bytes (16 GB) copied, 3221.12 s, 5.0 MB/s

Wie erwartet sind auf dem Zielverzeichnis jetzt 16GB in der Datei sdKarte.img. Mit dem  Befehl


ls -l

bekommen wir das erwartete Ergebnis:

-rw-r--r-- 1 4294967294 4294967294 16130244608 Oct 11 23:48  sdKarte.img

Wir wissen, dass davon nur 3,8GB verwendet werden. Deswegen lassen wir die Luft aus dem Image.


Dazu prüfen wir noch einmal die Blöcke in dem Image.

sudo fdisk -l /LinuxVerzeichnis/sdKarte.img

liefert ein ähnliches Ergebnis, wie wir es schon zuvor auf der SD Karte selbst gesehen haben:

Disk sdKarte.img: 16.1 GB, 16130244608 bytes
255 heads, 63 sectors/track, 1961 cylinders, total 31504384 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: 0x000981cb

                 Device Boot      Start         End      Blocks   Id  System
sdKarte.img1            8192      122879       57344    c  W95 FAT32 (LBA)
sdKarte.img2          122880     7403519     3640320   83  Linux

Das ist gut! Jetzt truncaten wir die Datei bei auf die verwendete Größe. Diese wird in dem Befehl mit der Anzahl der Sektoren * Blockgröße berechnet. Dabei darf nicht vergessen werden die Anzahl der Blöcke um eins zu erhöhen da der erste Block die Nr. 0 hat.

sudo truncate --size$[(7403519 +1)*512] sdKarte.img

anschließend machen wir ein ls -l und siehe da:


ls -l

bekommen wir das erwartete Ergebnis:

-rw-r--r-- 1 4294967294 4294967294  3790602240 Oct 12 00:15 sdKarte.img

Die Umkehrprobe habe ich atürlich auch gemacht. Ich habe die Datei sdKarte.img auf eine andere SD Karte kopiert und einen Raspi damit gestartet. Ergo. Funktioniert.

In einem zweiten Teil werde ich das Backup als Script beschreiben, damit dies künftig alles auch schon automatisch passiert.