LINUX.ORG.RU

Монтировка флешек при помощи UDEV

 ,


1

3

Всем привет!

Пытаюсь разобраться с работой демона UDEV, пока успешно монтируется и размонтируется USB флешки в фиксированную директорию.
Никак не могу понять как смонтировать несколько флешек одновременно.
Видимо автоматом нужно создавать новые директории для точек монтирования, но как сделать я хз(
С этим UDEV-м сталкиваюсь впервые, знающих людей прошу подсказать как сотворить чудо..

usbmount.rules

ACTION=="add", KERNEL=="sd*", SYMLINK+="usbdisk%n"
ACTION=="add", KERNEL=="sd*", RUN+="/bin/mount /dev/%k /mnt/usb", OWNER="root"
KERNEL=="sd[a-d][0-9]", OWNER="root"
ACTION=="remove", KERNEL=="sd*", RUN+="/bin/umount /mnt/usb"


попробуй udisks вместо mount, типа того

udisksctl mount -b /dev/%k
udisksctl unmount -b /dev/%k
demidrol ★★★★★ ()

Системд, не системд?

И это, не монтировка, а фомка.

Zhbert ★★★★★ ()

Сначала через udevadm monitorсмотри какие свойства есть у флешки. Затем заверни монтирование в скрипт, а скрипту передавай параметры. В этом скрипте можно сделать создание точки монтирования, например, по метке файловой системы, или по UUID, или хотя бы по имени устройства — процесс творчества ограничен лишь твоей фантазией.
P.S. И да, размонтирование по событию 'remove' — плохая идея. Размонтируй вручную, а на событие повесь чистку следов, например удаление ненужных каталогов-точек монтирования.

yars068 ★★★★ ()
Последнее исправление: yars068 (всего исправлений: 3 )

У правильной OS Linux - есть фолдер/директория /run/media. Там и найдешь, свою флешку.

/mnt/usb - не обязательно вовсе в современных OS. Достаточно systemd.

blitz ()

Таких тем на лоре была целая куча. Воспользуйся поиском.

imul ★★★★★ ()
Ответ на: комментарий от Radjah

Radjah - спасибо за дельный совет!
Установил udevil и стало все монтировалься как мне и хотелось.
Правда обнаружилась проблема с монтировкой exfat, udevil ее видит но смонтировать не может, в чем может быть проблема?

лог

device: [/dev/sda1]
    systeminternal: [0]
    usage:          [filesystem]
    type:           [exfat]
    label:          [KINGSTON64G]
    ismounted:      [0]
    nopolicy:       [0]
    hasmedia:       [1]
    opticaldisc:    []
    numaudiotracks: []
    blank:          []
    media:          []
    partition:      [1]
devmon: /usr/bin/udevil --mount /dev/sda1 --mount-options "noexec,nosuid,nodev,noatime"    # (KINGSTON64G)
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option
FUSE exfat 1.1.0
devmon: error mounting /dev/sda1 (1)
===========================================
Monitoring activity from the disks daemon. Press Ctrl+C to cancel.
===========================================
changed:     /org/freedesktop/UDisks/devices/sda1
device: [/dev/sda1]
    systeminternal: [0]
    usage:          [filesystem]
    type:           [exfat]
    label:          [KINGSTON64G]
    ismounted:      [0]
    nopolicy:       [0]
    hasmedia:       [1]
    opticaldisc:    []
    numaudiotracks: []
    blank:          []
    media:          []
    partition:      [1]

Oxff ()
Ответ на: комментарий от Oxff

Нашел решение, теперь всевозможные флешки монтируются как надо!
Нужно добавить пару строк в udevil.conf

default_options_exfat     = nosuid, noexec, nodev, noatime, umask=0077, uid=$UID, gid=$GID, iocharset=utf8, namecase=0, nonempty
allowed_options_exfat     = nosuid, noexec, nodev, noatime, fmask=0133, dmask=0022, uid=$UID, gid=$GID, umask=0077, namecase=*, ro, rw, sync, flush, iocharset=*, remount, nonempty

Последняя проблема с монтировкой sata sdd диска.
Его devmon почему-то вообще не показывает, интересно почему...?

Oxff ()
Ответ на: комментарий от ABW

Немного в замешательстве, т.к. внес необходимые изменения в devil.conf, демон естественно перезапустил:
allowed_devices = /dev/*
allowed_internal_devices_vfat = /dev/sda*
allowed_internal_devices_exfat = /dev/sda*
#forbidden_devices =

SSD диск sda при этом видит, но не монтирует, в чем еще может быть зацепка?

lsblk -f
NAME        FSTYPE LABEL UUID                                 MOUNTPOINT
sda
├─sda1      vfat   EFI   67E3-17ED
└─sda2      exfat  aaa   56F2-DFEE
sdb
└─sdb1      vfat   FAT32 38D7-49E3                            /mnt/FAT32

Oxff ()

Тебе не нужно монтировать их. Просто создавай в fstab нужную запись + в /media нужную директорию:

# монтирование съемных накопителей
KERNEL=="sd[b-z]", GOTO="do-disk-rules"
KERNEL!="sd[b-z][0-9]", GOTO="end-of-file"
LABEL="do-disk-rules"
ACTION=="add", ENV{ID_USB_DRIVER}="usb-storage", GROUP="storage"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ACTION=="remove", ENV{ID_FS_TYPE}!="", RUN+="/bin/sed -i '/\/dev\/%k /d' /etc/fstab"
ACTION=="remove", ENV{ID_FS_TYPE}!="", RUN+="/bin/rmdir /media/$env{ID_FS_TYPE}-%k"
ACTION=="add", ENV{ID_FS_TYPE}!="", RUN+="/bin/mkdir -p /media/$env{ID_FS_TYPE}-%k"
# монтирование раздела fat32
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k vfat rw,noatime,noauto,noatime,dmask=022,user,fmask=133,iocharset=koi8-r 0 0' /etc/fstab"
# монтирование раздела ntfs
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k ntfs-3g rw,noatime,noauto,dmask=000,fmask=111,user,locale=ru_RU.koi8-r,allow_other 0 0' /etc/fstab"
# монтирование прочих ФС
ACTION=="add", ENV{ID_FS_TYPE}!="", ENV{ID_FS_TYPE}!="ntfs|vfat", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k $env{ID_FS_TYPE}  defaults,noatime,user,exec,suid,dev 0 0' /etc/fstab"
LABEL="end-of-file"
#ENV{ID_USB_DRIVER}="usb-storage",
Я уже давным-давно с таким правилом живу. Крайне удобно.

anonymous ()
Ответ на: комментарий от ABW

Ручками Udevil успешно монтирует ssd
Правда в директорию для монтирования USB накопителей.
Но другого пути я ему и не определил.

udevil mount /dev/sda2
FUSE exfat 1.1.0
Mounted /dev/sda2 at /mnt/USB/mydisk

Oxff ()
Ответ на: комментарий от Oxff

И как на это реагирует devmon?
А как на клиентский запрос 'devmon --mount /dev/sda2'?
Возможно, кроме конфигурации udevil, нужно ещё при запуске задавать
'devmon --internal'

ABW ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.