LINUX.ORG.RU

Rpi правила udev монтирования и размонтрвания usb флешки

 


0

1

Сделал монтирования и размонтирования:

root@pi:~# cd  /etc/udev/rules.d

root@pi:/etc/udev/rules.d# ls

99-com.rules

root@pi:/etc/udev/rules.d# nano autoMountFlash.rules

root@pi:/etc/udev/rules.d# ls

99-com.rules  autoMountFlash.rules

root@pi:/etc/udev/rules.d# nano autoMountFlash.rules

root@pi:/etc/udev/rules.d# 

Добавил в файл autoMountFlash.rules.

KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"

# Import FS infos  

IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get a label if present, otherwise specify one  

# ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"  

ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# Global mount options  

ACTION=="add", ENV{mount_options}="relatime"

# Filesystem-specific mount options  

ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=0$

# Mount the device  

ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k $

# Clean up after removal  

ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%$

# Exit  

LABEL="media_by_label_auto_mount_end"

Но чета не заработало.

Если правило не собственной ‘разработки’, а копируется со стороннего ресурса, то уж копировать полностью, вплоть до названия правила *.udev.
Здесь это 11-media-by-label-auto-mount.rules.
Так же, выполнить упомянутую перезагрузку udev, на всякий случай.

Далее, если все равно не работает, не помешает отладка, https://wiki.archlinux.org/title/Udev#Testing_rules_before_loading.

krasnh ★★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Сделал но все равно не монтируется флешка.

root@pi:~# mount
/dev/mmcblk0p2 on / type ext4 (rw,noatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=702432k,nr_inodes=89072,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=28,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=173456k,mode=700,uid=1000,gid=1000)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=173456k,mode=700)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)

вставил флешку:

root@pi:~# udevadm monitor --property --kernel --udev
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[825.892033] add      /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3 (usb)
ACTION=add
DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/001/007
DEVTYPE=usb_device
PRODUCT=781/5571/100
TYPE=0/0/0
BUSNUM=001
DEVNUM=007
SEQNUM=1848
MAJOR=189
MINOR=6
KERNEL[825.894404] add      /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0 (usb)
ACTION=add
DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
PRODUCT=781/5571/100
TYPE=0/0/0
INTERFACE=8/6/80
MODALIAS=usb:v0781p5571d0100dc00dsc00dp00ic08isc06ip50in00
SEQNUM=1849
KERNEL[825.896020] add      /devices/virtual/workqueue/scsi_tmf_0 (workqueue)
ACTION=add
DEVPATH=/devices/virtual/workqueue/scsi_tmf_0
SUBSYSTEM=workqueue
SEQNUM=1850
KERNEL[825.898939] add      /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host0 (scsi)
ACTION=add
DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host0
SUBSYSTEM=scsi
DEVTYPE=scsi_host
SEQNUM=1851
KERNEL[825.901941] add      /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host0/scsi_host/host0 (scsi_host)
ACTION=add
DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host0/scsi_host/host0
SUBSYSTEM=scsi_host
SEQNUM=1852
KERNEL[825.903137] bind     /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0 (usb)
ACTION=bind
DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
DRIVER=usb-storage
PRODUCT=781/5571/100
TYPE=0/0/0
INTERFACE=8/6/80
MODALIAS=usb:v0781p5571d0100dc00dsc00dp00ic08isc06ip50in00
SEQNUM=1853
KERNEL[825.905239] bind     /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3 (usb)

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

Надеюсь, вручную флешка монтируется?

А так то это udev-правило от 2013 года, может уже ‘протухло’ и в 2022 его пишут по-другому. :)
В принципе, я сам тоже не пишу их, пользуюсь готовыми решениями.

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

Вот еще попробовал

root@pi:~# udevadm test -a add /sys/class/block/sda

This program is for debugging only, it does not run any program

specified by a RUN key. It may show incorrect results, because

some values may be different, or not available at a simulation run.



Load module index

Skipping empty file: /etc/systemd/network/99-default.link

Created link configuration context.

Reading rules file: /usr/lib/udev/rules.d/10-local-rpi.rules

Reading rules file: /etc/udev/rules.d/11-media-by-label-auto-mount.rules

Reading rules file: /usr/lib/udev/rules.d/15-i2c-modprobe.rules

Reading rules file: /usr/lib/udev/rules.d/40-scratch.rules

Reading rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules

Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules

Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules

Reading rules file: /usr/lib/udev/rules.d/55-dm.rules

Reading rules file: /usr/lib/udev/rules.d/56-hpmud.rules

Reading rules file: /usr/lib/udev/rules.d/60-block.rules

Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules

Reading rules file: /usr/lib/udev/rules.d/60-crda.rules

Reading rules file: /usr/lib/udev/rules.d/60-drm.rules

Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules

Reading rules file: /usr/lib/udev/rules.d/60-flashrom.rules

Reading rules file: /usr/lib/udev/rules.d/60-i2c-tools.rules

Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules

Reading rules file: /usr/lib/udev/rules.d/60-libgphoto2-6.rules

Reading rules file: /usr/lib/udev/rules.d/60-libsane.rules

Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules

Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules

Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules

Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules

Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules

Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules

Reading rules file: /usr/lib/udev/rules.d/60-rpi.gpio-common.rules

Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules

Reading rules file: /usr/lib/udev/rules.d/60-serial.rules

Reading rules file: /usr/lib/udev/rules.d/60-triggerhappy.rules

Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules

Reading rules file: /usr/lib/udev/rules.d/64-xorg-xkb.rules

Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules

Reading rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules

Reading rules file: /usr/lib/udev/rules.d/69-libmtp.rules

Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules

Reading rules file: /usr/lib/udev/rules.d/70-microbit.rules

Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules

Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules

Reading rules file: /usr/lib/udev/rules.d/70-printers.rules

Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules

Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules

Reading rules file: /usr/lib/udev/rules.d/71-seat.rules

Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules

Reading rules file: /usr/lib/udev/rules.d/73-special-net-names.rules

Reading rules file: /usr/lib/udev/rules.d/73-usb-net-by-mac.rules

Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules

Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules

Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules

Reading rules file: /usr/lib/udev/rules.d/80-debian-compat.rules

Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules

Reading rules file: /usr/lib/udev/rules.d/80-ifupdown.rules

Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules

Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules

Reading rules file: /usr/lib/udev/rules.d/80-noobs.rules

Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules

Reading rules file: /usr/lib/udev/rules.d/85-hwclock.rules

Reading rules file: /usr/lib/udev/rules.d/85-regulatory.rules

Reading rules file: /usr/lib/udev/rules.d/89-alsa-ucm.rules

Reading rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules

Reading rules file: /usr/lib/udev/rules.d/90-console-setup.rules

Reading rules file: /usr/lib/udev/rules.d/90-libinput-model-quirks.rules

Reading rules file: /usr/lib/udev/rules.d/90-mu-editor.rules

Reading rules file: /usr/lib/udev/rules.d/90-pi-bluetooth.rules

Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules

Reading rules file: /usr/lib/udev/rules.d/91-pulseaudio-rpi.rules

Reading rules file: /usr/lib/udev/rules.d/95-cd-devices.rules

Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules

Reading rules file: /usr/lib/udev/rules.d/97-hid2hci.rules

Reading rules file: /etc/udev/rules.d/99-com.rules

Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules

Rules contain 393216 bytes tokens (32768 * 12 bytes), 29801 bytes strings

21068 strings (171213 bytes), 18305 de-duplicated (144176 bytes), 2764 trie nodes used

Invalid inotify descriptor.

DEVPATH=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda

DEVNAME=/dev/sda

DEVTYPE=disk

DISKSEQ=26

MAJOR=8

MINOR=0

ACTION=add

SUBSYSTEM=block

ID_VENDOR=SanDisk_

ID_VENDOR_ENC=SanDisk\x27

ID_VENDOR_ID=0781

ID_MODEL=Cruzer_Fit

ID_MODEL_ENC=Cruzer\x20Fit\x20\x20\x20\x20\x20\x20

ID_MODEL_ID=5571

ID_REVISION=1.00

ID_SERIAL=SanDisk__Cruzer_Fit_4C530000050912104303-0:0

ID_SERIAL_SHORT=4C530000050912104303

ID_TYPE=disk

ID_INSTANCE=0:0

ID_BUS=usb

ID_USB_INTERFACES=:080650:

ID_USB_INTERFACE_NUM=00

ID_USB_DRIVER=usb-storage

DEVLINKS=/dev/disk/by-id/usb-SanDisk__Cruzer_Fit_4C530000050912104303-0:0 /dev/disk/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0-scsi-0:0:0:0

ID_PATH=platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0-scsi-0:0:0:0

ID_PATH_TAG=platform-fd500000_pcie-pci-0000_01_00_0-usb-0_1_3_1_0-scsi-0_0_0_0

ID_PART_TABLE_TYPE=dos

ID_DRIVE_THUMB=1

TAGS=:systemd:

USEC_INITIALIZED=56699316

Unload module index

Unloaded link configuration context.

root@pi:~# 
Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Лучше покажи вывод команды:

udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/sda)

Подразумевается, что «/dev/sda» - это флешка.

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