Benutzer-Werkzeuge

Webseiten-Werkzeuge


usbraspi

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
usbraspi [2015/07/08 11:58] nooneusbraspi [2019/12/07 17:03] (aktuell) noone
Zeile 1: Zeile 1:
 +====USB-Festplatte am Raspberry Pi betreiben====
  
 +Eine SD-Karte hat nur eine begrenzte Lebensdauer von etwa 100.000 Schreibzyklen. Danach können einzelne Speicherbereiche korrupt werden, Datenverluste oder Abstürze sind die Folge. Bei einer Raspberry-Anwendung, welche mit Datenbanken und Massendaten arbeitet (z.B. HomeAutomation-Messwerte speichern) ist das Versagen der SD-Karte vorprogrammiert.
 +
 +Als Ausweg bietet sich die Verwendung einer USB-Festplatte an. Es gibt zwei Möglichkeiten der Umstellung:
 +  * Betriebssystem und Anwendungen auf SD-Karte, Daten auf USB-Disk
 +  * Betriebssystem, Anwendungen und Daten auf USB-Disk
 +
 +In dieser Anleitung wird die zweite Möglichkeit beschrieben. Die Umstellung auf USB-Festplatte ist jederzeit möglich, also bei einem neu aufgesetzten Pi oder wenn er mit Applikationen und Daten schon längere Zeit läuft. Die SD-Karte benötigt man in jedem Fall immer noch, da sich dort der Bootbereich befindet, welchen man nicht auf die Harddisk verschieben kann. Sie wird jedoch nur während des Bootens verwendet. Dazu reicht eine langsame 2GB-SD-Karte aus.
 + 
 +===Material und Vorbereitung des Raspberry Pi===
 +
 +Folgendes Material wird für dieses Projekt benötigt:
 +
 +  * Raspberry Pi Model B
 +  * Transcend SD-Karte Class 10
 +  * Aktiver USB2.0-Hub mit 2A-Netzteil
 +  * Kühlkörper für Raspberry Pi
 +  * Externe USB2.0-Festplatte 500 GB
 +
 +===Auswahl der USB-Festplatte===
 +
 +Für den Raspberry Pi reicht eine kleinere 2,5"-Harddisk mit USB2.0-Interface aus, also etwa 320 GByte bis 500 GByte. Fertig eingebaut im externen Festplattengehäuse gibt es sie bereits für 50 €. Wer noch eine einzelne Platte in der Schublade hat, kann im Zubehörhandel einen SATA/USB-Adapter kaufen. Die Platte ist am aktiven Hub anzuschliessen, die Stromversorgung des Raspberry reicht nicht aus! Eventuell reicht bei einer 2,5-Zoll-Platte auch die Erweiterung der Stromversorgung nach [[usbstrom|diesem Hinweis]] aus.
 +
 +===Installation===
 +
 +Die folgende Anleitung wurde an Hand meiner eigenen Installation erstellt und sofort mitdokumentiert. Das Nachvollziehen der Befehle sollte deshalb sofort gelingen.
 +
 +Alle Arbeiten sind als Benutzer Pi durchzuführen. Die USB-Festplatte ist noch nicht am Raspberry angesteckt!
 +
 +Zuerst überprüft man, ob die Namen der Gerätedateien der SD-Karte dem Standard entsprechen.
 +
 +   cat /proc/partitions
 +
 +liefert die Namen für
 +| Gerätedatei gesamte SD-Karte | mmcblk0 |
 +| Gerätedatei SD-Karte - Partition 1 (Boot) | mmcblk0p1 |
 +| Gerätedatei SD-Karte - Partition 1 (Root) | mmcblk0p2 |
 +
 +Der Raspberry Pi wird jetzt heruntergefahren:
 +
 +   sudo shutdown - h 0
 +
 +Anschließend den Strom ausschalten, die USB-Platte am aktiven HSB-Hub anstecken (nicht am Pi, der Strom reicht nicht aus!) und wieder einschalten. Nach dem Booten anmelden als Benutzer Pi
 +
 +   cat /proc/partitions
 +
 +liefert die Namen für
 +| Gerätedatei gesamte USB-Platte | sda |
 +| Gerätedatei USB-Platte - Partition 1 | sda1 |
 +
 +Die angezeigte Partition auf der Harddisk stammt vom Hersteller, meist ist es eine Windows-kompatible FAT32-Partition. Jetzt ist der letzte Zeitpunkt, sich zu überlegen, ob nicht doch noch wertvolle Daten auf der Harddisk sind. Der nächste Befehl zerstört alle Daten unwiderruflich. Bei "fdisk" ist die Gerätedatei der gesamten Platte (/dev/sda)  anzugeben, nicht die der Partition (/dev/sda1):
 +
 +   sudo fdisk /dev/sda
 +
 +Jetzt befindet man sich im Kommandomodus von "fdisk". Überblick über die vorhandenen Partitionen bekommt man über:
 +   p
 +
 +Die vorhandene Partition 1 wird gelöscht:
 +   d<Enter>1<Enter>
 +
 +und noch einmal nachsehen, ob der Befehl erfolgreich war:
 +   p
 +
 +Um eine neue Partition für das Swap-Partition zu erzeugen, gibt man Folgendes ein, um eine 2 Gbyte-Partiton zu erhalten:
 +   n <Enter>
 +   p <Enter>
 +   1 <Enter>
 +   2048 <Enter>
 +   +2G <Enter>
 +
 +Passt die Werte der Partitionen bitte auf Eure Erfordernisse an!
 +
 +Jetzt legt man noch eine eigene Partition für das Root-Dateisystem an:
 +   n <Enter>
 +   p <Enter>
 +   2 <Enter>
 +   Default <Enter>
 +   Default <Enter>
 +
 +Damit wird der Rest der Festplatte für das Root-System festgelegt.
 +
 +Jetzt ist die Partitionierung mit Verify zu überprüfen:
 +   v
 +
 +Anschließend Partititionstabelle auf Festplatte schreiben und beenden:
 +   w
 +
 +Wenn man sich bei den Partitionsgrößen vertan hat, dann mit <Ctrl> + C "fdisk" verlassen, ohne das "w"-Kommando einzugeben!
 +
 +Auf der zweiten Partition (Root) legt man ein Ext4-Dateisystem an:
 +
 +   sudo mkfs.ext4 /dev/sda2
 +
 +und noch einen Swapbereich in Partition 1:
 +   sudo mkswap /dev/sda1
 +
 +Nun muß Partition 2 (Root) von der SD-Karte auf Partition 2 (Root) der Festplatte kopiert werden:
 +   sudo dd if=/dev/mmcblk0p2 of=/dev/sda2 bs=32M conv=noerror,sync status=progress
 +
 +das dauert etwa eine halbe Stunde bei 32GB...
 +
 +Nach dem Kopieren ist das Dateisystem auf der Festplatte zu überprüfen und ggf. zu reparieren:
 +   sudo e2fsck -f /dev/sda2 -y
 +
 +Nach der Überprüfung wird das Dateisystem der Kopie an die Größe der Partition 1 der Platte angepasst:
 +   sudo resize2fs /dev/sda2
 +
 +Anschliessend sollte das erweiterte Dateisystem nochmal auf Fehler überprüft werden
 +   sudo e2fsck -f /dev/sda2 -y
 +
 +Die Boot-Konfigurationsdatei (auf der SD-Karte) muss jetzt auf die Festplatte angepasst werden. Zuerst wird eine Sicherungskopie angelegt:
 +   sudo cp /boot/cmdline.txt /boot/cmdline.SDboot.txt
 +
 +und dann wird die Datei angepasst:
 +   sudo nano /boot/cmdline.txt
 +
 +Hier ist der Eintrag /dev/mmcblk0p2 nach /dev/sda2 zu ändern. Dann speichern und beenden.
 +
 +Das Betriebssystem liest beim Boot eine Konfigurationsdatei für die Filesysteme ein, welche jetzt angepasst wird:
 +   sudo nano /etc/fstab
 +
 +Der Eintrag /dev/mmcblk0p2 ist nach /dev/sda2 zu ändern. Dann folgende Zeile hinzufügen:
 +   /dev/sda1 none swap sw 0 0
 +
 +Die Datei wird gespeichert und der Editor beendet.
 +
 +Damit hat man aber nur die "fstab" auf der SD-Karte geändert. In der Partition der Festplatte /dev/sda2 befindet sich aber eine Kopie (siehe "dd"-Befehl) davon, bei welcher die Änderungen ebenfalls gemacht werden müssen. Dazu montiert man "/dev/sda2" temporär, kopiert die Datei und löst den Mount wieder auf:
 +   sudo mount /dev/sda2 /mnt
 +   sudo cp /etc/fstab /mnt/etc
 +   sudo umount /dev/sda2
 +
 +Raspbian verwendet normalerweise eine Swap-Datei im Root-Filesystem (keine Partition wie jetzt auf der Festplatte erzeugt). Diese Swap-Datei beseitigt man mit:
 +   sudo update-rc.d dphys-swapfile remove
 +
 +Jetzt ist die Festplatte mit den Änderungen zu synchronisieren:
 +   sync
 +
 +und dann neu zu booten:
 +   sudo reboot
 +
 + 
 +===Überprüfung der Umstellung===
 +
 +Nachdem der Boot durchgeführt wurde, möchte man auch wissen, ob Raspbian von der Festplatte oder immer noch von der SD-Karte gebootet wurde. Das kann man mit 
 +   dmesg
 +
 +feststellen. Hier werden die Kernel-Messages geloggt. Man sucht die Einträge, welche mit der Festplatte zu tun haben.
 +
 +Außerdem kann man den Mount überprüfen:
 +   mount -l
 +
 +Damit ist die Umstellung fertig. Puristen könnten jetzt noch die Partition 2 der SD-Karte entfernen, weil sie nicht mehr verwendet wird. Ich habe darauf verzichtet, weil es auch nicht mehr nutzbaren Speicherplatz bringt.
 +Ausserdem kann es sich bei späterer Nutzung ganz zweckmässig erweisen, die freie Partition der SD-Karte wieder für den Start zu nutzen, um ein vollständiges System zur Verfügung zu haben. Mit diesem System kann man dann z. B. die Festplatte aushängen und überprüfen.
 +
 +https://www.debian.org/doc/manuals/debian-reference/ch09.de.html
 +© 2012 Familie Kriwanek

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki