Хорошо, это было долгое время, но я все еще отвечу на свой вопрос с наилучшим вариантом, который я нашел на данный момент. Подводить итог: создайте a udev
правило, связанное с некоторыми сценариями (который создаст/удалит каталоги и съемные устройства ООН/монтировать), и присоединенный к udev
тип события устройства =partition
.
1 - Создание добавляет / удаляют сценарии
Сохраните следующий сценарий storage-automount.sh
кому: /lib/udev/
и сделайте это исполняемым файлом (sudo chmod a+x /lib/udev/storage-automount.sh
):
#!/bin/sh
# set the mountpoint name according to partition or device name
mount_point=$ID_FS_LABEL
if [ -z $mount_point ]; then
mount_point=${DEVNAME##*/}
fi
# if a plugdev group exist, retrieve it's gid set & it as owner of mountpoint
plugdev_gid="$(grep plugdev /etc/group|cut -f3 -d:)"
if [ -z $plugdev_gid ]; then
gid=''
else
chown root:plugdev $mount_point
gid=",gid=$plugdev_gid"
fi
# create the mountpoint directory in /media/ (if not empty)
if [ -n $mount_point ]; then
mkdir -p /media/$mount_point
# other options (breaks POSIX): noatime,nodiratime,nosuid,nodev
mount -t $ID_FS_TYPE \
-o rw,flush,user,uid=0$gid,umask=002,dmask=002,fmask=002 \
$DEVNAME /media/$mount_point
fi
Сохраните следующий сценарий storage-autounmount.sh
кому: /lib/udev/
и сделайте это исполняемым файлом (sudo chmod a+x /lib/udev/storage-autounmount.sh
):
#!/bin/sh
# set the mountpoint name according to partition or device name
mount_point=$ID_FS_LABEL
if [ -z $mount_point ]; then
mount_point=${DEVNAME##*/}
fi
# remove the mountpoint directory from /media/ (if not empty)
if [ -n $mount_point ]; then
umount -l /media/$mount_point
rm -R /media/$mount_point
fi
2 - Создание udev
управляйте для присоединения тех сценариев к событиям
И наконец, добавьте a udev
правило в /etc/udev/rules.d/
, например, 85-storage-automount.rules
:
ENV{DEVTYPE}=="partition", RUN+="/lib/udev/storage-automount.sh", ENV{REMOVE_CMD}="/lib/udev/storage-autounmount.sh"
и заставьте его иметь те же полномочия как другие правила в том dir/папке
Теперь, когда Вы включаете устройство хранения, каталог будет создан в /media/
согласно имени раздела (я не помню, но я думаю, что оно работает с разделом NTFS также), и Ваш раздел будет смонтирован в него. Это - R/W для пользователей, если у Вас есть a plugdev
группа в Вашей системе. Кроме того, устройства смонтированы в синхронном режиме для ограничения рисков потери данных в случае горячего отключения.
Когда устройство удалено, оно размонтировано, и каталог удален из /media
Кроме того, инструмент для контроля udev
события udevadm monitor
, с опциями как --env
или --property
:
$ udevadm monitor --env
Это тестируется и хорошо работающий и на debian и на дуге, но, вероятно, работайте над всеми дистрибутивами, которые полагаются udev
.
Попробуйте что-нибудь подобное в xorg.conf
:
Section "InputClass"
Identifier "My second mouse"
MatchProduct "MouseModelName"
MatchIsPointer "on"
Option "Ignore" "on"
EndSection
MouseModelName
можно получить через xinput
.