16.April 2024    
   homeProjekteRaspberry PiRaspbian von Festplatte betreiben

 

Hobby 234x60
reichelt elektronik – Elektronik und PC-Technik
Seite zuletzt geändert: 03.10.2012 09:49

Raspberry Pi mit Raspbian von Festplatte

Hin und wieder könnte vielleicht die Versuchung aufkommen, nicht für alle schreibintensiven Arbeiten SD-Karten belasten zu müssen, sondern dafür lieber eine "echte" Festplatte herzunehmen. Das ist eigentlich kein Problem, alle Werkzeuge werden vom Raspbian mitgeliefert.

Wir brauchen:

  • einen Pi wink
  • eine SD-Karte, die ein Raspbian aufnehmen kann (aktuell reicht da noch eine 2GB-Karte)
  • eine leere Festplatte mit einem USB-Anschluss (externe USB-Platte mit eigener Stromversorgung oder eine Festplatte mit einem ATA-zu-USB- oder SATA-zu-USB-Adapter sowie einer Stromversorgung)
    Eine nicht-leere Platte geht natürlich auch, aber darauf möchte ich jetzt hier nicht eingehen.

  1. Programmieren der SD-Karte wie gewohnt
  2. Start des Pi mit dieser Karte, Anfangskonfiguration vornehmen
  3. Anschluss der USB-Platte. Normalerweise sollten jetzt im Syslog bzw. auf der Console entsprechende Meldungen erscheinen, dass die Platte gefunden wurde. Sie dürfte als /dev/sda im System zu sehen sein.
  4. Einrichten der Platte (Ich gehe nachfolgend immer davon aus, dass auf der verwendeten Platte nichts mehr drauf war! Die alten Daten sind dann weg - richtig weg!!!):

    • Platte partitionieren mit
      sudo cfdisk /dev/sda
      Ich habe bei mir eine Uralt-PATA-Platte mit 8GB an einem PATA-zu-USB-Adapter hängen. Diese habe ich mit ca. 7,5 GB für eine Linux-Partition (Type 83), den Rest für Swap (Type 82) eingerichtet.
      Partitionsdaten auf die Platte schreiben und cfdisk beenden.
    • Dateisystem erzeugen mit
      sudo mkfs.ext4 /dev/sda1
    • Swap erzeugen mit
      sudo mkswap /dev/sda2

  5. Einbinden der Platte mit
    sudo mount /dev/sda1 /mnt
  6. Kopieren aller Daten von der SD-Karte auf die Festplatte mit
    cd /mnt
    sudo cp -axuv / .

    Den Inhalt von /mnt/boot können wir dann löschen, da dieses Verzeichnis von der VFAT-Partition der SD-Karte gemountet wird.
  7. Bearbeiten der fstab-Datei auf der Festplatte (!!!)
    sudo vi /mnt/etc/fstab
    Hier ändern wir diesen Eintrag:
    /dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
    wird zu
    #/dev/mmcblk0p2  /               ext4    defaults,noatime  0       0
    Und diese Einträge kommen neu dazu:
    /dev/sda1      /    ext4    defaults,errors=remount-ro       0       1
    /dev/sda2      none            swap    sw                      0       0

    Abspeichern nicht vergessen
  8. Bearbeiten der cmdline.txt auf der SD-Karte. Das kann man sowohl auf dem Pi machen als auch auf einem ganz normalen PC, die Partition ist vfat und die cmdline.txt eine normale Textdatei. Auf dem Pi wäre das dann:
    sudo vi /boot/cmdline.txt
    Dort finden wir etwas weiter hinten in der Zeile den Eintrag
    root=/dev/mmcblk0p2
    Diesen ändern wir nach
    root=/dev/sda1
    Und wieder abspeichern.

Das war's dann schon. Man kann sich jetzt noch den Spaß machen und den Swap-Bereich testen. Das Anschalten des Platten-Swap-Bereichs geht ganz einfach mit
sudo swapon -a
Zwischen einem "free" vor und einem "free" nach dem swapon sollte dann entsprechend ein Größenunterschied bei der "Swap:"-Angabe vorliegen, der der Größe der Swap-Partition entspricht.

Ein Neustart des Pi mit dem Affengriff oder "sudo reboot" sollte problemlos durchlaufen und wir sollten mit "mount" so etwas sehen:

/dev/root on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=18812k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,relatime,size=10240k,mode=755)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=126520k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)

 

Wer will, kann jetzt noch das dphys-swapfile deaktivieren, aber das macht eigentlich keinen großen Unterschied, da /var jetzt auch mit auf der Festplatte liegt.

Ab jetzt laufen sämtliche Dateizugriffe nur noch über die Festplatte, die SD-Karte wird nur zum Booten benutzt - und da dann auch nur lesend. Rein theoretisch könnte man jetzt auch z.B. mit einer alten SD-Karte mit 256MB booten. Den Aufwand habe ich mir aber nicht gemacht, mir kam es vor allem darauf an, meine SD-Karten für den Life-Einsatz zu schonen.

 

Steffen, 18-03-13 15:47:
Hallo

kannst du bitte die Anleitung für den Raspbian-Shutdown-Key wieder online stellen, denn leider ist sie nicht mehr verfügbar und ich möchte mir diese nachbauen.

Danke Steffen
Andreas, 05-02-16 21:56:
Nette Anleitung. :)
"Den Inhalt von /mnt/boot können wir dann löschen, da dieses Verzeichnis von der VFAT-Partition der SD-Karte gemountet wird."
Heißt das, das Verzeichnet selber kann ebenfalls geslöscht werden?
Kommentar hinzufügen

* - Pflichtfeld

*



*
Copyright © 2008-2017