Я новичок в Linux и программировании. Мой вопрос похож на этотодинно я использую Raspberry Pi 4 headless без рабочего стола [buster lite], который, похоже, автоматически монтирует USB-накопители. Я не нашел не дерганого способа автоматически монтировать новые USB-накопители, чтобы их путь был предсказуемым. У этого RPi4 есть датчик, и я хочу, чтобы он автоматически сохранял данные датчика на любой вставленный в него флэш-накопитель. Я могу просто периодически отключать диск и вставлять новый, а затем возвращаться домой. Мне нужно иметь возможность использовать любой новый USB-накопитель, а не просто повторно использовать те же несколько. Остальная часть работы, которую я делаю, написана на Python, но эта функция может быть выполнена отдельно без Python. Это решение должно выдерживать перезагрузки Pi.
Ценю помощь каждого. Поскольку я совсем новичок, я был бы особенно признателен за объяснения того, что вы рекомендуете.
решение1
- Напишите скрипт для заполнения /dev/sdX и монтирования usb-накопителей (или выполните другие проверки)
- Измените udevd для запуска вашего скрипта при подключении USB-накопителя.
Скрипт может начинаться так:
for i in $(ls /dev/sd* | awk -F '/' '{ print $3 }')
do
echo "Do stuff like: mkdir /mnt/$i"
done
Вы можете настроить udev следующим образом. С правильными значениями вы увидите устройства в /dev/usb/NAMEYOUCHOOSE
BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", RUN+="/usr/local/sbin/YOURSCRIPT"
Полезные команды
udevadm monitor
Подключите ваши устройства. Затем проверьте их атрибуты, например
udevadm info --path /devices/pci0000:00/0000:00:1d.7/usb1/1-4/usb_device/usbdev1.49 --attribute-walk
(Вам необходимо использовать другие значения)
После того, как вы напишете правила, заставьте udevd перечитать их.
udevadm control --reload-rules
Повторно подключите ваши устройства. Измените /etc/fstab по вашему желанию.
Но я предпочитаю что-то попроще. Возможно, у вас есть /dev/disk/by-label/ Так что пометьте свои носители соответствующим образом и измените свой fstab.