-- Graufilter
Beim Raspberry Pi ist das Mounten einer SSD nicht so einfach, wie bei einem herkömmlichen Linux PC, da die SSD beim Raspberry Pi 3B / 3B+ und 4B über den USB-Port angeschlossen wird. Wenn Sie die SSD nur in der fstab eintragen, dann kann es sein, dass diese manchmal nicht eingebunden wird. Das liegt daran, dass beim booten eventuell notwenige Treiber noch nicht geladen wurden. Im Netz findet man dann Lösungen die das Timing etwas verändern, aber auch hier ist nicht immer sichergestellt, das die SSD auch gemountet wird. Meine Lösung sieht wie folgt aus:
- SSD mit exfat formatieren (nur bei ersten mal)
- Eintrag der SSD in die fstab über UUID
- Über die rc.local prüfen, ob SSD gemountet wurde bzw. ggf. SSD mounten
Booten Sie den Raspberry Pi ohne das die SSD verbunden ist. Die M.2 SATA SSD muss erst formatiert werden, bevor Sie benutzt werden kann. Verbinden Sie nach dem botten die SSD mit einem USB-Port.
SSD formatieren:
Eine SSD sollte mit dem exfat Dateisystem formatiert werden. Exfat wurde speziell für Flashspeicher entwickelt und bietet kompatibilität zwischen Linux, Windows und MacOS. Wenn Sie die SSD auch an einem Windows PC nutzen möchten, dann müsen Sie diese auch über einen Windows PC mit exfat formatieren, sonst wird kein Laufwerksbuchstabe angelegt. Mit dem Befehl lsblk können Sie sich die angeschlossenen Massensteicher anzeigen lassen. An der Größe erkennen Sie einfach, um welches Device es sich handelt.
AME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
mmcblk0 179:0 0 14,9G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 14,6G 0 part /
Im Beispiel ist die SSD unter /dev/sda geführt.
Bei einigen Distrubution ist exfat nicht installiert. Mit dem folgenden Befehl können Sie das nachholen:
sudo apt-get install exfat-fuse exfat-utils
Das Device sda formatieren Sie mit dem folgenden Befehl:
sudo mkfs.exfat -n "SSD" -s 512 /dev/sda1
Achten Sie darauf, das eine Partition angelegt wird. Sie Zahl 1 hinter dem sda ist wichtig!
fstab Eintrag erstellen:
Öffnen Sie eine Konsole bzw. Terminalfenster und führen den folgenden Befehl aus:
sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="6341-C9E5" TYPE="vfat" PARTUUID="ea7d04d6-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="80571af6-21c9-48a0-9df5-cffb60cf79af" TYPE="ext4" PARTUUID="ea7d04d6-02"
/dev/mmcblk0: PTUUID="ea7d04d6" PTTYPE="dos"
/dev/sda1: LABEL="SSD" UUID="F66F-9A46" TYPE="exfat" PARTUUID="edc355e2-01"
Öffnen Sie mit z.B. nano die /etc/fstab und tragen die SSD nach der Einträgen für die MicroSD-Karte ein (Ihre PARTUUID bitte verwenden!):
PARTUUID=edc355e2-01 /mnt/ssd exfat noauto,rw 0 2
Mounten einer über USB angeschlossenen SSD:
Das mounten einer über USB angeschlossenen SSD über den fstab Eintrag funktioert oft aus Timing Gründen nicht. Die einfachste möglichkeit ist den Mountstatus über die rc.local Datei überprüfen zu lassen und ggf. die SSD einzubinden, da die rc.local ganz zum Schluß beim booten ausgeführt wird.
Öffnen Sie die /etc/rc.local Datei und fügen folgendes am Ende vor Exit 0 ein:
ssd-mounter
Speichern Sie jetzt noch das folgende Skript mit Dateinamen ssd-mounter unter /usr/bin ab:
#!/bin/bash
#
# Copyright (C) 2020 Holger Klemm
#
# This script is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
cat /etc/mtab | grep "/mnt/ssd"
if [ "$?" -ne "0" ]; then
mount /mnt/ssd
if [ "$?" -eq "0" ]; then
echo "SSD found and mounted at /mnt/ssd"
fi
fi
Mit dem Befehl Sudo chmod 744 /usr/bin/ssd-mounter muss die Datei ggf. noch ausführbar gemacht werden.
Jetzt legen wir noch unter /mnt dem Mountpoint an:
cd /mnt
sudo mkdir ssd
Nach einem reboot sollte jetzt die SSD unter /mnt/ssd eingebunden werden.