Я хочу написать скрипт, который делает следующее:

  • Смонтировать устройство (всегда одно и то же)
  • Загляните в файл на устройстве и расскажите мне что-нибудь об этом
  • Размонтируйте устройство снова.

Это довольно легко, но я боюсь насчет точки крепления: что если кто-то (я?)уже подключил что-то в этот момент или сбросил файлы?

Можно ли сказать сценарию что-то вроде следующего псевдокода:

$whereToGo = mount /dev/device --justMountItSomewhereWhereItIsPossibleAndTellMeWhereThatIs
// Do something with $whereToGo/myFile
umount $whereToGo

1 ответ1

1

Дисковая утилита Gnome использует udisks2, похоже, что udisksctl - это инструмент командной строки, она может выполнять следующие действия:

status
    Shows high-level information about disk drives and block devices.

info
    Shows detailed information about OBJECT or DEVICE.

mount
    Mounts a device. The device will be mounted in a subdirectory in the /media
    hierarchy - upon successful completion, the mount point will be printed to
    standard output.

    The device will be mounted with a safe set of default options. You can
    influence the options passed to the mount(8) command with --options.
    Note that only safe options are allowed - requests with inherently unsafe
    options such as suid or dev that would allow the caller to gain additional
    privileges, are rejected.

unmount
    Unmounts a device. This only works if the device is mounted. The option
    --force can be used to request that the device is unmounted even if active
    references exists.

Если точка монтирования уже существует, udksks2 создаст и использует новую точку монтирования (возможно, добавив 1).

Так что вы должны иметь возможность написать скрипт примерно так (используя в качестве примера /dev /loop5):

$ udisksctl mount --block-device /dev/loop5
Mounted /dev/loop5 at /media/demo/675584e8-d292-4c69-96d6-0fdb720bdf93.

# parse stdout for the mount point, do something with it

$ udisksctl unmount --block-device /dev/loop5
Unmounted /dev/loop5.

(Можно даже смонтировать только для чтения, добавив --options ro в udisksctl mount)


Информация от Archwiki Arch на Udisks - Помощники Горы

Помощники горы

Автоматический монтаж устройств легко достигается с помощью упаковщиков Udisks. Смотрите также Список приложений # Инструменты для монтажа.

Примечание. Среды рабочего стола, такие как GNOME и KDE, также могут предоставлять оболочку для диска.

  • bashmount - скрипт bash для монтирования и управления съемными носителями как обычный пользователь с udisks2.
    https://github.com/jamielinux/bashmount
  • udiskie - автомонтир udisks2 с дополнительными уведомлениями, иконкой в трее и поддержкой защищенных паролем устройств LUKS. Посмотрите Удиские вики для деталей
    https://github.com/coldfix/udiskie
  • udisksvm - оболочка udisks2 с графическим интерфейсом, написанная на Python3 и использующая инфраструктуру Qt5. Он использует щелчки мыши для монтирования, размонтирования съемных устройств или извлечения CD/DVD. Смотрите файл README для деталей.
    https://github.com/berbae/udisksvm
  • udevil - включает devmon, который совместим с udisks и udisks2. https://github.com/IgnorantGuru/udevil

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .