Fedora 23, автомонтирование USB устройств

Cent OS, Scientific Linux

Модератор: Модераторы разделов

Ответить
Аватара пользователя
FrozeNangeL
Сообщения: 222
Статус: Linux newbie
ОС: Fedora 23 x86_64

Fedora 23, автомонтирование USB устройств

Сообщение FrozeNangeL »

Доброго дня.

Просьба подсказать где можно найти информацию по вопросу: как Fedora 23 с гномом осуществляет автомомнтирование устройств? В процессе самостоятельных поисков установил, что имеется udev и udisks2. Первый при подключении устройства осуществляет нумерацию (могу ошибаться). а за управление отвечает udisks2. При подключении устройства создается работа по монтированию, которая в соответствии с конфигами монтирует либо в контролируемое пространство пользователя либо в другое определенное место:

Spoiler

13:14:00.106: Added /org/freedesktop/UDisks2/jobs/32
org.freedesktop.UDisks2.Job:
Bytes: 0
Cancelable: true
ExpectedEndTime: 0
Objects: ['/org/freedesktop/UDisks2/block_devices/sdb1']
Operation: filesystem-mount
Progress: 0.0
ProgressValid: false
Rate: 0
StartTime: 1456470840102868
StartedByUID: 1000
13:14:00.120: /org/freedesktop/UDisks2/block_devices/sdb1: org.freedesktop.UDisks2.Filesystem: Properties Changed
MountPoints: /run/media/hah0l/Fedora-Live-WS-x86_64-22-3



Вопрос в том, в каком конфигурационном файле определено что необходимо монтировать.

Имеется сервер под Fedora Server 23, хотел чтобы и на нем работало автомонтирование - но использую его только через консоль по ssh. Писать каждый раз команду на монтирование лень (хоть и редко требуется)

Нашел статью где сказано что необходим дополнительный демон (udiskie, devmon, inotify) Но хочется понять, как все сделано на десктопе
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: Fedora 23, автомонтирование USB устройств

Сообщение Olej »

FrozeNangeL писал(а):
26.02.2016 10:27
Вопрос в том, в каком конфигурационном файле определено что необходимо монтировать.

Если вас интересует как работает udev, см. здесь (и по ссылкам): асинхронные уведомления и udev
Правила udev находятся в /etc/udev/rules.d
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Fedora 23, автомонтирование USB устройств

Сообщение yars »

Сейчас уже сложнее: udev выполняет лишь часть работы, остальное делает gvfs и udisks{,2}. Первое конфигурируется набором правил -- текстовых файлов с расширением *.conf, лежащих в /etc/udev/rules.d, второе -- *.mount файлами. А теперь добавьте сюда systemd и получите кашу, как в голове, так и в системе.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: Fedora 23, автомонтирование USB устройств

Сообщение Olej »

yars писал(а):
27.02.2016 01:21
А теперь добавьте сюда systemd и получите кашу, как в голове, так и в системе.

Не нужно добавлять ничего в кучу, тогда и не получится каша, ни в голове, ни в системе.

Нужно просто всё разложить на свои места...

yars писал(а):
27.02.2016 01:21
остальное делает gvfs

- ядро взаимодействует с файловой системой /sys и через сокет netlink посылает широкоещательные дэйтаграммы на любое событие в /sys всем желающим, в том числе и udev
- любые действия на события I/O в usespace предпринимает (инициализирует) udev, выполняя действия, предписанные в rules.conf на каждое сообщение netlink
- gvfs - это одна из реализаций файловая система FUSE - файловой системы в userspace ... по каким-то правилам udev может выполнять её команды... и вы можете легко написать и свою файловую систему с FUSE ...
- но точно так же udev может выполнять действия и с любыми другими файловыми системами.

Есть очень чёткая иерархия.
Спасибо сказали:
Аватара пользователя
FrozeNangeL
Сообщения: 222
Статус: Linux newbie
ОС: Fedora 23 x86_64

Re: Fedora 23, автомонтирование USB устройств

Сообщение FrozeNangeL »

Olej писал(а):
26.02.2016 13:47
Если вас интересует как работает udev, см. здесь (и по ссылкам): асинхронные уведомления и udev
Правила udev находятся в /etc/udev/rules.d


За ссылку спасибо, буду изучать.

По существу вопроса:

Указанный каталог я проверял, но там было два файла:

Код: Выделить всё

$ sudo ls -la /etc/udev/rules.d/
[sudo] пароль для hah0l:
итого 12
drwxr-xr-x. 2 root root 4096 фев  1 20:04 .
drwxr-xr-x. 4 root root 4096 фев 25 12:37 ..
-rw-rw-r--. 1 root root  290 авг 19  2015 60-io_schedulers.rules
lrwxrwxrwx. 1 root root    9 авг 21  2015 80-net-name-slot.rules -> /dev/null


Первый я не удосужился проверить, так как ожидал встретить что-то вроде 50-udisks.rules, а второй - остатки попыток на основе инфы с арча вернуть eth0 вместо enp3s0. Тем не менее, после Ваших слов проверил файл 60-* и нашел следующее:

Код: Выделить всё

# Set noop scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"
# Set deadline scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="deadline"
~


Насколько я понимаю, данные строки не имеют отношения к монтированию в /run/media/%username%/%label%, такая строка должна содержать RUN+="/bin/mount

А я собственно ищу где бы могло быть именнно это. Каталог /usr/lib/udev/rules.d/ не содержит таких файлов (причин не доверять команде grep -r нет)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Fedora 23, автомонтирование USB устройств

Сообщение Bizdelnick »

FrozeNangeL писал(а):
27.02.2016 05:56
А я собственно ищу где бы могло быть именнно это. Каталог /usr/lib/udev/rules.d/ не содержит таких файлов

Конечно не содержит. Потому что работает автомонтирование в современных DE вовсе не через udev напрямую, а через udisks2.
Мой совет — плюньте на свою затею. Это слишком сложное решение для редко требующейся задачи. Если хочется, чтобы автоматически создавался и удалялся каталог для монтирования, используйте pmount/pumount или udisks --mount/udisks --unmount, но автоматизировать это не стоит. Для этого придётся отдельный демон изобретать (если, конечно, пытаться сделать «как в DE», а не изобрести свой собственный велосипед), а чего ради? К тому же в десктопном варианте наворочено всякого для того, чтобы отслеживать активную сессию (при посредстве ConsoleKit или logind) и привязывать устройство к ней, а это при ssh-подключении нереализуемо в принципе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
FrozeNangeL
Сообщения: 222
Статус: Linux newbie
ОС: Fedora 23 x86_64

Re: Fedora 23, автомонтирование USB устройств

Сообщение FrozeNangeL »

Bizdelnick писал(а):
27.02.2016 11:38
FrozeNangeL писал(а):
27.02.2016 05:56
А я собственно ищу где бы могло быть именнно это. Каталог /usr/lib/udev/rules.d/ не содержит таких файлов

Конечно не содержит. Потому что работает автомонтирование в современных DE вовсе не через udev напрямую, а через udisks2.

В процессе поисков я встречал мнение, что автомонтирование через udev или udisks - не linux-way, так как изначально обе системы предназначались для другого, одного конкретного дела. При этом есть мануал, как сделать автомонтирование через udev. Более православным считается использование udiskie, devmon и иже с ними, как я понимаю. Однако на ноутбуке нет udiskie

Я сравнил с помощью udisksctl monitor что происходит - на сервере доходит ровно до того момента, где на ноутбуке создается работа на монтирование. Это что-то вроде спортивного интереса, если позволите, понять как именно это работает и кто создает работу:

Spoiler

09:08:03.858: Added /org/freedesktop/UDisks2/block_devices/sdb1
org.freedesktop.UDisks2.Block:
Configuration: []
CryptoBackingDevice: '/'
Device: /dev/sdb1
DeviceNumber: 2065
Drive: '/org/freedesktop/UDisks2/drives/JetFlash_Transcend_32GB_JG4QJPQ7'
HintAuto: true
HintIconName:
HintIgnore: false
HintName:
HintPartitionable: true
HintSymbolicIconName:
HintSystem: false
Id: by-id-usb-JetFlash_Transcend_32GB_JG4QJPQ7-0:0-part1
IdLabel: SMSBOOT
IdType: vfat
IdUUID: 4C9F-B964
IdUsage: filesystem
IdVersion: FAT32
MDRaid: '/'
MDRaidMember: '/'
PreferredDevice: /dev/sdb1
ReadOnly: false
Size: 16044190720
Symlinks: /dev/disk/by-id/usb-JetFlash_Transcend_32GB_JG4QJPQ7-0:0-part1
/dev/disk/by-label/SMSBOOT
/dev/disk/by-path/pci-0000:00:14.0-usb-0:2:1.0-scsi-0:0:0:0-part1
/dev/disk/by-uuid/4C9F-B964
org.freedesktop.UDisks2.Filesystem:
MountPoints:
org.freedesktop.UDisks2.Partition:
Flags: 128
IsContained: false
IsContainer: false
Name:
Number: 1
Offset: 32256
Size: 16044190720
Table: '/org/freedesktop/UDisks2/block_devices/sdb'
Type: 0x0c
UUID: cad4ebea-01
09:08:03.961: Added /org/freedesktop/UDisks2/jobs/0
org.freedesktop.UDisks2.Job:
Bytes: 0
Cancelable: true
ExpectedEndTime: 0
Objects: ['/org/freedesktop/UDisks2/block_devices/sdb1']
Operation: filesystem-mount
Progress: 0.0
ProgressValid: false
Rate: 0
StartTime: 1456801683957746
StartedByUID: 1000
09:08:04.010: /org/freedesktop/UDisks2/block_devices/sdb1: org.freedesktop.UDisks2.Filesystem: Properties Changed
MountPoints: /run/media/hah0l/SMSBOOT
09:08:04.012: /org/freedesktop/UDisks2/jobs/0: org.freedesktop.UDisks2.Job::Completed (true, '')
09:08:04.014: Removed /org/freedesktop/UDisks2/jobs/0



И как я сказал выше, на сервере останавливается ровно перед строкой создания работы
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Fedora 23, автомонтирование USB устройств

Сообщение Bizdelnick »

На десктопах команду на монтирование даёт дополнительный демон, чаще всего gvfsd.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить