
Как составить список ВСЕХ подключенных HDD-устройств в удобном для скриптов виде? Все - означает как смонтированные, так и не смонтированные. Удобный для скриптов - означает то, что я могу использовать для (u)монтирования в моем скрипте оболочки с минимальным использованием grep или sed.
Моя задача - написать скрипт, который при запуске определит, где находится HDD (если он вообще подключен) и смонтирует его. В моем скрипте мне нужен способ получить список доступных устройств в /dev. Какой инструмент мне использовать в моем скрипте?
Вот варианты, которые я рассматривал:
fdisk -l
дает гораздо больше информации, чем мне нужно - немного сложно анализировать ее вывод в оболочкеparted -l
не выводит список не смонтированных разделов, а также выводит много дополнительной информацииcat /proc/partitions
лучший вывод, но не перечисляет несмонтированные разделы
Какой инструмент лучше всего подойдет для моей задачи?
Чтобы немного прояснить, откуда я исходил, вот моя ситуация:
На некоторых ПК пользователь подключает жесткий диск через USB или SATA. Затем пользователь перезагружает ПК. Я ничего не знаю об устройстве жесткого диска, могу только предположить, что у него есть один раздел с файловой системой ext4. Устройство может отображаться как /dev/sda или /dev/sdb. У меня есть доступ su к устройству, и я могу добавить свой скрипт в /etc/rc.local или куда-либо еще, но у меня есть этот доступ только до передачи ПК пользователю.
решение1
Возможно, blkid
что дает строки вида:
/dev/sdXX: UUID="<UUID>" TYPE="<fstype>"
Также вы можете использовать эти UUID в fstab
: UUID="<UUID>"
можно заменить путь к устройству /dev/sdXX
.
решение2
В дистрибутивах, в которых есть udisks
udisks --enumerate-device-files | grep -v ^/dev/disk