linux: UUID einer gemounteten Partition feststellen
-
Hi,
angenommen ich habe in /path/to/mounted eine partition gemountet; wie finde ich am schnellsten aus einem bash skript, was die UUID der partition ist?
-
Weiß nicht, ob das auch eleganter geht, aber Du könntest auf alle Fälle checken, wohin die Links in /dev/disk/by-uuid/ gehen und ob einer davon der gesuchten Partition entspricht.
-
ls -l /dev/disk/by-id/ |grep `mount | grep '/hier/der/pfad/zum/mount' | cut -f3 -d\/ | cut -f1 -d\ `
-
SeppJ schrieb:
ls -l /dev/disk/by-id/ |grep `mount | grep '/hier/der/pfad/zum/mount' | cut -f3 -d\/ | cut -f1 -d\ `Das ist nicht unbedingt robust: Das grep-Pattern könnte alles mögliche matchen, das ist nicht eingeschränkt aufs richtige Feld und auch nicht eingeschränkt auf "vollständiges match". Es könnte z.B. ein Prefix oder Suffix matchen statt des gewünschten Pfads, oder ein ganz anderes Feld in der Ausgabe von mount.
Eine elegante Methode kenn ich auch nicht. Man könnte die gezeigte Methode vielleicht ein bisschen sicherer machen, wenn man nicht Pfade, sondern inode-Nummern vergleicht. Ob zwei Pfade identisch sind, ist nicht so einfach festzustellen, aber für zwei inode-Nummern ist das sehr einfach.
Das könnte dann so in der Art aussehen:
find_uuid() { local DEVICE_INODE=$(/usr/bin/stat -c '%i' $(grep "^[^ ]* $1 " /etc/mtab | cut -d ' ' -f 1)) local INODE_UUID=$(ls -Li1 /dev/disk/by-uuid | grep "^ *$DEVICE_INODE ") echo ${INODE_UUID##* } }Die Funktion wird so aufgerufen:
find_uuid /pfad/zum/mountAllerdings geht diese Funktion ziemlich sicher auch schief, wenn der mount-pfad Leerzeichen enthält.
-
Christoph schrieb:
...
