Как получить точку монтирования флеш-накопителя при помощи uuid?

То, какой путь Вы хотите пойти с этим, будет зависеть в большой степени от того, сколько времени Вы хотите вложить капитал по сравнению с тем, сколько Вы хотите потратить. Если Вы хотите к DIY и ничего не тратите, можно использовать любимый метод, чтобы говорить с WMI, который имеет всю информацию, которая Вы после. Инструменты, такие как Scriptomatic могут сделать эти сценарии легче записать.

Можно сделать на скорую руку сценарий для выполнения при входе в систему, или - с верными полномочиями - можно вытянуть информацию удаленно (через RPC, я верю).

В другом конце спектра у Вас есть инвентаризация и контроль продуктов как Nagios - Вы получите десятки результатов, ищущих то имя на SF.

7
задан 21 May 2011 в 12:48
4 ответа

mount знает это.

Пример:

mount | grep /dev/sdc1

Или (вероятно, чтобы быть быстрее):

grep '/dev/sdc1' /etc/mtab
2
ответ дан 2 December 2019 в 23:21

Таблица монтирования ядра в /proc/mounts. Это немного более надежно, чем /etc/mtab, потому что система/программная ошибка может привести к mtab будучи поврежденным или не записанный в то, когда это должно быть.

2
ответ дан 2 December 2019 в 23:21

Чтобы найти фактическое устройство по UUID, blkid может быть лучше, чем ваш Решение readlink , основанное на udev.

myuuid="7DCD-9380"
mydev=$(blkid -l -o device -t UUID="$myuuid")

Чтобы получить точку монтирования для этого устройства, вы можете использовать следующее:

grep $mydev /proc/mounts | cut -d' ' -f 2

или

df -P | grep $mydev | awk '{print $6}'

Последнее более переносимо, потому что / proc предназначен только для Linux. Решение df с параметром -P (POSIX) также должно работать на Mac и других системах Unix.

Конечно, оба варианта не работают, если ваша точка монтирования содержит пробелы. Но никто не вешает вещи "

2
ответ дан 2 December 2019 в 23:21

То, что вам нужно, это findmnt . Например:

$ findmnt -rn -S UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -o TARGET
/mnt/mountpoint

или

$ findmnt -rn -S PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -o TARGET
/mnt/mountpoint

Если не смонтировано ничего, что соответствовало бы UUID, то ничего не выводится и код возврата равен 1 (сбой), в противном случае выводится точка монтирования и код возврата равен 0 (успех).

Пояснения к опциям

-r, --raw              use raw output format
-n, --noheadings       don't print column headings
-S, --source <string>  the device to mount (by name, maj:min, 
                         LABEL=, UUID=, PARTUUID=, PARTLABEL=)
-o, --output <list>    the output columns to be shown

Available columns:
      ...
      TARGET  mountpoint
      ...
9
ответ дан 2 December 2019 в 23:21

Теги

Похожие вопросы