Можно монтировать с помощью команды, но нельзя настроить правило udev.

Вопрос или проблема

Я купил SSD и хочу использовать его как хранилище на своем Raspberry Pi. Он форматирован, и когда я подключаю его к Pi, я вижу его с помощью:

> lsusb

Шина 001 Устройство 004: ID 152d:a580 JMicron Technology Corp. / JMicron USA Technology Corp. USB Mass Storage
# ... другие сведения здесь
lsblk
ИМЯ        MAJ:MIN RM   РАЗМЕР RO ТИП ТОЧКА МОНTAЖА
sda           8:0    0   1.8T  0 диск
├─sda1        8:1    0    16M  0 часть
└─sda2        8:2    0   1.8T  0 часть 
mmcblk0     179:0    0 117.8G  0 диск
├─mmcblk0p1 179:1    0   256M  0 часть /boot
└─mmcblk0p2 179:2    0 117.5G  0 часть /

Итак, я смонтировал диск:

sudo mount -o uid=leonardo,gid=leonardo,umask=000 /dev/sda2 /shared/usb

Проверяю, что он смонтирован правильно:

lsblk
ИМЯ        MAJ:MIN RM   РАЗМЕР RO ТИП ТОЧКА МОНTAЖА
sda           8:0    0   1.8T  0 диск
├─sda1        8:1    0    16M  0 часть
└─sda2        8:2    0   1.8T  0 часть /shared/usb
mmcblk0     179:0    0 117.8G  0 диск
├─mmcblk0p1 179:1    0   256M  0 часть /boot
└─mmcblk0p2 179:2    0 117.5G  0 часть /

Все работает прекрасно!

Теперь я хочу, чтобы это происходило автоматически. После некоторого поиска в Google я решил установить правило udev:

sudo nano /etc/udev/rules.d/99-usb-mount.rules

Внутри файла:

KERNEL=="sda2", SUBSYSTEMS=="block", ATTRS{idVendor}=="152d", ATTRS{idProduct}=="a580", ACTION=="add", RUN+="/bin/su leonardo -c '-o uid=leonardo,gid=leonardo,umask=000 /dev/sda2 /shared/usb'"

Затем я перезагружаю правила:

sudo udevadm control --reload-rules

Но ничего. Оно не монтируется автоматически, даже если я отключаю и снова подключаю его.

Почему? Что я делаю не так?

Ответ или решение

Проблема автоматического монтирования SSD-диска на Raspberry Pi с использованием правил udev может возникнуть по нескольким причинам. Рассмотрим все шаги в процессе настройки и основные моменты, на которые следует обратить внимание.

1. Правильность udev-правила

Сначала убедитесь, что ваше правило в файле /etc/udev/rules.d/99-usb-mount.rules сформировано корректно. Обратите внимание на следующую запись:

KERNEL=="sda2", SUBSYSTEMS=="block", ATTRS{idVendor}=="152d", ATTRS{idProduct}=="a580", ACTION=="add", RUN+="/bin/su leonardo -c 'mount -o uid=leonardo,gid=leonardo,umask=000 /dev/sda2 /shared/usb'"

2. Использование команды mount в udev

Команда mount требует прав суперпользователя и может не выполняться корректно из-за отсутствия контекста пользовательского окружения при вызове через udev. Вместо этого рекомендуется использовать udisksctl, который предназначен для автоматического монтирования устройств:

KERNEL=="sda2", SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/bin/udisksctl mount --block-device %N"

3. Проверьте, созданы ли все необходимые директории

Убедитесь, что директория /shared/usb существует до монтирования. Если она не создана, mount не сможет успешно выполнить свою задачу. Заранее создайте её:

sudo mkdir -p /shared/usb

4. Отладка правил udev

Чтобы отладить, почему ваше правило не срабатывает, выполните следующие действия:

  • Проверьте логи системы. Используйте команду journalctl -f для просмотра сообщений, относящихся к udev.
  • Удостоверьтесь, что устройство действительно соответствует заданному правилу, используя udevadm info --query=all --name=/dev/sda2.

5. Убедитесь в наличии прав доступа

Если вы хотите использовать функционал для монтирования с определенными пользователями и группами, проверьте настройки прав к папкам и настройкам, чтобы убедиться, что они соответствуют вашим требованиям.

6. Редакция и перезагрузка правил

После всех изменений в файл правил не забудьте обновить кэш правил udev:

sudo udevadm control --reload-rules
sudo udevadm trigger

Заключение

Суммируя, наиболее эффективный способ автоматического монтирования нового USB-устройства на Raspberry Pi — это использование udisksctl через udev. Убедитесь, что все директории существуют, права доступа установлены корректно, и следите за логами, чтобы отладить проблему. Если вы выполните предложенные шаги, это должно помочь вам устранить возникшие трудности и добиться нужного результата.

Оцените материал
Добавить комментарий

Капча загружается...