Ich bin neu bei Linux und beim Programmieren. Meine Frage ist ähnlich wie dieseeinsaber ich verwende einen Raspberry Pi 4 ohne Desktop [Buster Lite], der die USB-Laufwerke automatisch zu mounten scheint. Ich habe noch keine Methode gefunden, mit der man neue USB-Laufwerke automatisch mounten kann, sodass ihr Pfad vorhersehbar ist. Dieser RPi4 hat einen Sensor und ich möchte, dass die Sensordaten automatisch auf jedem eingesteckten USB-Stick gespeichert werden. Ich kann das Laufwerk einfach in regelmäßigen Abständen ausstecken und ein neues einsetzen und dann wieder nach Hause gehen. Ich muss jedes neue USB-Laufwerk verwenden können, nicht nur dieselben paar wiederverwenden. Den Rest meiner Arbeit arbeite ich mit Python, aber diese Funktion könnte auch separat ohne Python ausgeführt werden. Diese Lösung muss Neustarts des Pi überstehen.
Ich bin für jede Hilfe dankbar. Da ich noch recht neu bin, wäre ich besonders dankbar für Erklärungen zu Ihren Empfehlungen.
Antwort1
- Schreiben Sie ein Skript, um /dev/sdX zu füllen und die USB-Sticks zu mounten (oder führen Sie andere Prüfungen durch)
- Ändern Sie udevd, um Ihr Skript auszuführen, wenn ein USB-Laufwerk angeschlossen ist.
Das Skript kann folgendermaßen beginnen:
for i in $(ls /dev/sd* | awk -F '/' '{ print $3 }')
do
echo "Do stuff like: mkdir /mnt/$i"
done
Sie können udev wie folgt konfigurieren. Mit den richtigen Werten werden Sie Geräte unter /dev/usb/NAME, DEN SIE AUSWÄHLEN sehen.
BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", RUN+="/usr/local/sbin/YOURSCRIPT"
Hilfreiche Befehle
udevadm monitor
Schließen Sie Ihre Geräte an. Überprüfen Sie dann deren Eigenschaften wie
udevadm info --path /devices/pci0000:00/0000:00:1d.7/usb1/1-4/usb_device/usbdev1.49 --attribute-walk
(Sie müssen andere Werte verwenden)
Nachdem Sie Ihre Regeln geschrieben haben, erzwingen Sie, dass udevd sie erneut liest.
udevadm control --reload-rules
Schließen Sie Ihre Geräte erneut an. Ändern Sie /etc/fstab nach Wunsch.
Aber ich bevorzuge etwas Einfacheres. Vielleicht haben Sie /dev/disk/by-label/. Beschriften Sie Ihr Medium also entsprechend und ändern Sie Ihre fstab.