Как отключить автомонтирование USB в Xubuntu 14.04
В Xubuntu 14.04 я попытался отключить автоматическое подключение USB, создав следующие два файла, как показано здесь: Предотвращение автоматического подключения и перезагрузки определенного USB-устройства:
/lib/udev/unmount.sh
#!/bin/bash
udisks --unmount /dev/sdn1
udisks --detach /dev/sdn
/etc/udev/rules.d/100-unmount-usb.rules
ACTION=="add", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/lib/udev/unmount.sh"
Это не сработало, поэтому я создал другой файл, найденный здесь https://unix.stackexchange.com/questions/85061/automount-not-disabling-in-ubuntu-12-04-or-13-04
/etc/udev/rules.d/85-no-automount.rules
SUBSYSTEM=="usb", ENV{UDISKS_AUTO}="0"
После перезагрузки USB все еще автоматически подключен.
Затем я установил утилиту gnome-disk, которая установила, но значок запуска не был создан, и ввод 'gnome-disk-utility' не распознается - я не могу понять, как его запустить. Я заметил, что gnome-system-tools установлен - но опять же я не могу понять, как это начать.
1 ответ
Для udisks2:
Если udisks2 используется, необходимо выполнить следующие действия, чтобы не выполнять автоматическое монтирование устройства. Во-первых, вам нужно получить информацию об устройстве, чтобы написать правило udev. Размонтировать устройство, войти через root
sudo su
затем выполните эту команду:
udevadm monitor --environment --udev
После этого подключите устройство к компьютеру. Теперь вы можете увидеть относительную информацию об устройстве. Вам нужны ENV{ID_VENDOR} и ENV {ID_FS_UUID}. Особенно ID_FS_UUID важен, потому что это уникальное значение для устройства. Нажмите Ctrl + C, чтобы выйти из udevadm.
Затем выполните следующую команду, чтобы получить другую необходимую информацию
udevadm info -a -p $(udevadm info -q path -n /dev/sdX)
Замените /dev/sdX на ваш диск. Найдите значения ATTRS{idVendor} и ATTRS{idProduct}. Необходимо указать значения SUBSYSTEM AND DRIVER, чтобы указать, к какому блоку устройства будет применено это правило, и ENV{UDISKS_AUTO}="0", чтобы сделать устройство не монтируемым автоматически. Если вы получите всю необходимую информацию, самое время написать правило udev. Откройте новый файл правил:
sudo -H gedit /etc/udev/rules.d/10-noautomount.rules
И напишите информацию, которую вы получили к нему:
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idVendor}=="3538"
ATTRS{idProduct}=="0070"
ENV{ID_VENDOR}=="PQI"
ENV{ID_FS_UUID}=="1A5AFC1F427754BF"
ENV{UDISKS_AUTO}="0"
Сохраните файл и закройте его. Правило в каталоге /etc/dev/rules.d/ имеет самый высокий приоритет. Написав правило в этом каталоге, мы предотвратим любую проблему, которая может помешать правилу.
Теперь вы можете проверить свое правило, чтобы увидеть, работает оно или нет. Во-первых, вам необходимо освоить "devpath" устройства. Вы увидите строки в выводе
udevadm info -a -p $(udevadm info -q path -n /dev/sdX)
Команда похожа на эту строку:
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5...'
Некоторые из них очень длинные и бесполезны для вас. Вы должны сократить эту линию до степени, которая полезна для вас. Чтобы узнать, где вырезать, выполните эту команду:
dmesg | grep usb
Вы увидите строки относительно устройства, аналогичные следующим:
usb 2-1.5: new high-speed USB device number 15 using ehci-pci
usb 2-1.5: New USB device found, idVendor=3538, idProduct=0070
usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1.5: Product: PQI USB Flash drive
usb 2-1.5: Manufacturer: PQI
usb 2-1.5: SerialNumber: XQVBW9KR
usb-storage 2-1.5:1.0: USB Mass Storage device detected
Обратите внимание на стоимость после USB (2-1,5). Это показывает, что путь вашего устройства и где вырезать. Так что "devpath" этого устройства
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5
Теперь вы можете проверить новое правило udev, выполнив следующую команду:
udevadm test /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5
Ближе к концу вывода вышеуказанной команды, если вы видите строку
UDISKS_AUTO=0
это означает, что ваше новое правило работает. Чтобы применить новое правило, вам необходимо перезагрузить
udevadm control --reload
Если это не работает, запустите
udevadm trigger
После этого вы можете увидеть, работает ли новое правило или нет, отключив устройство и подключив его снова. Ваше устройство будет отображаться в лаунчере Unity следующим образом:
В моем случае "nd" - это устройство, к которому применяется правило udev без автомонтирования. Если я нажму значок устройства, оно будет смонтировано.
Для удисков
Если udisks используется, вы можете использовать значение ENV{UDISKS_PRESENTATION_NOPOLICY}="0", чтобы сделать устройство неавтоматизированным. Поскольку моя система ( Ubuntu 15.04) не использует udisks, я не могу дать конкретные инструкции, но процесс аналогичен. Напишите новое правило udev в каталоге /etc/udev/rules.d/ для вашего устройства со значениями, которые вы получили выше, и добавьте значение ENV{UDISKS_PRESENTATION_NOPOLICY}="0" вместо значения ENV{UDISKS_AUTO}="0".
Я надеюсь, что этот ответ поможет вам.
Скопировано с https://unix.stackexchange.com/a/536545/302588:
# /etc/udev/rules.d/99-noautomount.rules
ENV{UDISKS_PRESENTATION_HIDE}="1"
ENV{UDISKS_PRESENTATION_NOPOLICY}="1"
ENV{UDISKS_AUTOMOUNT_HINT}="never"
ENV{UDISKS_SYSTEM_INTERNAL}="1"
ENV{UDISKS_IGNORE}="1"
ENV{UDISKS_AUTO}="0"
https://www.systutorials.com/docs/linux/man/7-udisks/:
UDISKS_PRESENTATION_HIDE
If set to 1 this is a hint to presentation level software that the device should not be shown to the user.
UDISKS_PRESENTATION_NOPOLICY
If set to 1 this is a hint to presentation level software that the device should not be automounted or autoassembled (for e.g. components of a multi-disk device).
UDISKS_AUTOMOUNT_HINT
A variable to influence whether a device should be automounted. Possible values include "always" (to hint that a device should always be automounted) and "never" (to hint that a device should never be automounted). Note that this is only a hint - the auto-mounter might not honor it.
UDISKS_SYSTEM_INTERNAL
If set, this will override the usual bus type based detection of whether a device is considered "system internal". "0" means "removable" (i. e. eligible for automounting, and normal users can mount), any other value means "system internal" (i. e. no automounting, and only administrators can mount).
https://www.systutorials.com/docs/linux/man/8-udisks/:
UDISKS_IGNORE
If set, this overrides the value of the HintIgnore property.
UDISKS_AUTO
If set, this overrides the value of the HintAuto property.