Skip to content

Instantly share code, notes, and snippets.

@Quaese
Last active April 28, 2020 07:55
Show Gist options
  • Save Quaese/f496a198afe87db564b5b9981884d44e to your computer and use it in GitHub Desktop.
Save Quaese/f496a198afe87db564b5b9981884d44e to your computer and use it in GitHub Desktop.

RPi 4 von USB booten

RPi 4 unterstützt derzeit kein komplettes Booten von USB-Geräten. Möglich ist jedoch, dass die Boot-Partition auf der SD-Card liegt, das System auf einem USB-Gerät.

Vorbereitung

  1. SD-Karte flashen
  2. USB-Laufwerk flashen

Zum Flashen kann zum Beispiel Etcher verwendet werden.

PARTUUID des USB-Laufwerks ermitteln

sudo blkid

Wenn es unklar sein sollte, welche Ausgabe für das USB-Laufwerk steht, einfach Laufwerk nochmals entfernen und blkid erneut ausführen.

$ sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="5203-DB74" TYPE="vfat" PARTUUID="6c586e13-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e" TYPE="ext4" PARTUUID="6c586e13-02"
/dev/mmcblk0: PTUUID="6c586e13" PTTYPE="dos"
/dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="4BBD-D3E7" TYPE="vfat" PARTUUID="738a4d67-01"
/dev/sda2: LABEL="rootfs" UUID="45e99191-771b-4e12-a526-0779148892cb" TYPE="ext4" PARTUUID="738a4d67-02"

In der Ausgabe nach rootfs suchen und aus dieser Zeile den Wert unter PARTUUID (hier: 738a4d67-02) kopieren.

/dev/sda2: LABEL="rootfs" UUID="45e99191-771b-4e12-a526-0779148892cb" TYPE="ext4" PARTUUID="738a4d67-02"

cmdline.txt bearbeiten

Zuerst die cmdline.txt sichern:

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

Anschliessend berabeiten

sudo vi /boot/cmdline.txt

Dort wird die UUID der SD Karte durch die UUID des USB-Laufwerks ersetzt.

sudo reboot

Anschließend wird das USB-Laufwerk als Systemlaufwerk verwendet und der RPi ist nicht mehr über SSH zu erreichen. Stattdessen muss mittels Monitor, Tastatur und Maus das System neu eingerichtet werden.

fstab anpassen

Auf der SD Karte und auf der SSD ist nun ein boot Verzeichnis. Das macht eigentlich nichts - aber durch Updates usw. könnte es sein, dass das System hier durcheinander kommt. Um dies zu verhindern und um es sauber anzuschliessen, wird nun noch die fstab geändert.

lsblk -o name,label,partuuid

Aus der Ausgabe wird die PARTUUID (hier: ea7d04d6-01) der SD-Karte unter dem boot Label kopiert.

$ lsblk -o name,label,partuuid
NAME        LABEL  PARTUUID
sda                
├─sda1      boot   97709164-01
└─sda2      rootfs 97709164-02
mmcblk0            
├─mmcblk0p1 boot   ea7d04d6-01
└─mmcblk0p2 rootfs ea7d04d6-02

Dieser Wert wird in die fstab in der Zeile eingetragen, in der auch /boot steht. Dafür wird lediglich die bereits bestehende UUID ersetzt.

sudo vi /etc/fstab
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment