USB – Festplatten – Fest definierte Namen

Wer kennt es nicht, USB Festplatten unter Linux, mal sda, mal sdb, oder mal sdc.
Je nachdem in welcher Reihenfolge die Festplatten angeschlossen werden haben bekommen die Festplatten unterschiedliche Devicenamen. Um dieses Problem zu lösen kann man eine Datei anlegen in der man eigene udev Regeln definiert.

Hierzu benutzt man z.B. folgende Datei:

/etc/udev/rules.d/90-storage-custom.rules

Mit folgendem Inhalt:

KERNEL=="sd?1",ENV{ID_SERIAL}=="ST31500341AS_9VS0PAP7",SYMLINK+="disk_fotos"
KERNEL=="sd?1",ENV{ID_SERIAL}=="SAMSUNG_HD154UI_S1Y6J1KS904134",SYMLINK+="disk_arbeit"

Stöpselt man nun die Festplatte mit der ID_SERIAL = ST31500341AS_9VS0PAP7 ein, so gibt es auf dieser eine Partition 1 (KERNEL==“sd?1″), so wird für diese Partition Symlink auf die entsprechende Partition unter „/dev/disk_fotos“ (SYMLINK+=“disk_fotos“) angelegt, so dass man nun wenn man diese Festplatte angestöpselt immer /dev/disk_fotos mounten kann, egal ob die eigentliche Partition unter /dev/sda1, /dev/sdb1, dev/sdc1, … existiert, denn es wir nun immer ein Symlink angelegt, wie z.B:

lrwxrwxrwx 1 root root 4  2. Feb 16:43 /dev/disk_fotos -> sdf1
lrwxrwxrwx 1 root root 4 2. Feb 16:43 /dev/disk_arbeit -> sdd1

Um die ID_SERIAL für z.B. /dev/sdc auszulesen gibt man folgendes ein:

udevadm info --query=all  --name /dev/sdc |grep ID_SERIAL

Wobei das Device was hier abgefragt wird „/dev/sdc“ ist. Bei mir sieht das Ergebnis so aus:

udevadm info --query=all --name /dev/sdc |grep ID_SERIAL
E: ID_SERIAL=SAMSUNG_HD154UI_S1XWJ1KZ101955
E: ID_SERIAL_SHORT=S1XWJ1KZ101955

Mit den hier gesammelten Informationen kann man dann sehr einfach eine udev Regel, wie weiter oben im Beispiel, erstellen.

Nach dem editieren der udev Regeln, sollten die udev Regeln neu geladen werden. So wird beim nächsten anstöpseln der Festplatte diese mit dem „richtigen“ Namen (Symlink) angelegt. Ein reload der udev Regeln erfolgt mit dem folgenden Befehl:

udevadm control --reload-rules

Leave a Comment