Raspberry Pi SD-Karte durch einen USB-Stick ersetzen
Wer kennt das nicht, die SD-Karte des Raspberry Pi geht im unpassendsten Moment kaputt und alle Daten sind futsch. Die Auslagerung der Daten auf einen USB-Speicher kann hier Abhilfe schaffen, desweiteren hat dies einige Geschwindigkeit Vorteile. Hochwertige SD-Karten sind im Gegensatz zu günstigen schnell, verkraften aber auch weniger Schreibzyklen und sind langsamer und nicht so langlebig wie USB Sticks. Der Raspberry Pi hat hat zwar einen integrierten USB Hub, von diesem lässt sich der RPi jedoch nicht komplett booten. In diesem Tutorial erkläre ich wie ihr die SD-Karte gegen einen USB-Stick austauschen könnt. Die SD-Karte muss allerdings weiterhin für die Boot-Partition verwendet werden.
Update:
Mit dem Raspberry Pi 3 ist es jetzt möglich komplett von USB zu booten, das hier gezeigte Vorgehen ist weiterhin möglich aber nicht sinvoll. Um euren Raspberry Pi 3 komplett von USB zu booten verwendet das aktualisierte Tutorial
Hardware
- Raspberry Pi mit SD-Karte und Raspbian
- Tastatur & Maus (Bei Verbindung per SSH WLAN Stick)
- USB Stick / Festplatte
Fesplatte oder USB-Stick einrichten
Steckt euren Stick oder eure Platte via USB an, als erstes müssen wir dann natürlich wissen unter welchem Pfad der Speicher gemountet wurde.
1 |
sudo blkid |
Falls die Disk gemountet ist muss diese nun ausgeworfen und formatiert werden (Achtung ihr verliert eure Daten auf diesem Speicher)
1 2 |
sudo umount /dev/sda1/ sudo mkfs.ext4 /dev/sda1 |
Daten verschieben
Zum verschieben aller Daten von der SD-Karte auf die Festplatte gebt ihr folgenden Befehl ein
1 2 3 |
sudo mount /dev/sda1 /mnt cd / sudo tar cf - * --exclude /mnt/* | ( cd /mnt; sudo tar xfp -) |
Bootsequenz aktualisieren
Das der USB-Speicher automatisch eingebunden wird und somit auch zum booten funktioniert muss die fstab angepasst werden.
1 |
sudo nano /mnt/etc/fstab |
Dort ersetzen wir den Inhalt durch
1 2 3 |
/dev/mmcblk0p1 /boot vfat defaults 0 0 /dev/sda1 / ext4 defaults,noatime 0 0 |
Boot.txt anpassen
Bevor Wir die für das booten verwantwortliche Datei /boot/cmdline.txt verändern, erstellen wir eine Sicherung davon.
1 |
sudo cp /boot/cmdline.txt /boot/cmdline.txt.save |
Nun kann sie geändert werden.
1 |
sudo nano /boot/cmdline.txt |
Den Inhalt der boot.txt ersetzen wir durch
1 |
dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2 |