Мне нужно составить список всех точек монтирования, связанных с внешними устройствами хранения данных, такими как USB-брелоки и внешние диски SATA.
Единственный способ, который я нашел в Ubuntu, это вызвать 'mount' и grep для '/media'. Но интересно, есть ли лучший, более универсальный способ.
Все это из интерфейса командной строки (терминал/bash).
решение1
Поиск /media
— это разумный способ найтигорячее подключениеблочные устройства. Вы также можете использовать lsblk
для перечисления блочных устройств и их возможности горячего подключения:
$ lsblk -l -p -o name,rm,hotplug,mountpoint
NAME RM HOTPLUG MOUNTPOINT
/dev/sda 0 0
/dev/sda1 0 0 /
/dev/sda2 0 0 [SWAP]
/dev/sda3 0 0 /home
/dev/sdc 0 1
/dev/sdc1 0 1
/dev/sdc2 0 1
/dev/sdc3 0 1 /media/wd3
/dev/sdc4 0 1
/dev/sdd 1 1
/dev/sdd1 1 1 /media/clip
Это показывает, что /dev/sdc
, вероятно, внешнее устройство (HOTPLUG=1), и что раздел смонтирован на /media/wd3
. Также есть еще одно устройство на /media/clip
. RM
Столбец означает съемный, что иногда применяется к устройствам для чтения карт SD, хотя в этом случае это на самом деле просто USB-флеш-накопитель.
Вы также можете использовать эту функцию, findmnt
чтобы получить из имени каталога имя устройства, на котором он находится:
$ findmnt -n -o source -T /media/wd3/my/sub/dir
/dev/sdc3
решение2
Нет никакой разницы между внутренними и внешними устройствами, так что нет, нет лучшего способа, чем надеяться, что монтирование было достаточно последовательным, чтобы все внешние устройства (и только они) были смонтированы под /media
. Но пользователь с соответствующими правами может легко смонтировать, например, USB-накопитель в любом месте.