LINUX.ORG.RU

Как обеспечить автомонтирование флешки в Debian?

 , , , ,


0

2

У меня есть Orange Pi One. Я хочу с его помощью обеспечить сбор данных с датчиков в режиме 24/7. И иметь возможность сохранять БД на флешку. Учитывая наличие всего одного порта USB, а также определённую автономность работы устройства, хотелось бы автоматизировать процесс копирования БД: вставляется флешка, по этому событию происходит автомонтирование, начинает мигать индикатор и происходит автоматическое копирование, затем происходит автоматическое отмонтирование, а индикатор начинает мигать иначе, сигнализируя, что копирование завершено и флешку можно удалить.

Проблема в автоматическом монтировании и демонтировании флешки.

Сперва я решил установить утилиту usbmount…

sudo apt install usbmount

Но её видимо нет в репозитории:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package usbmount

Затем я попробовал вставить в .sh, вызываемый по правилу из /etc/udev/rules.d команду…

mount /dev/sda1 /flash

Но такая команда закономерно не отрабатывается:

mount: /flash: must be superuser to use mount.

Тогда я почитал про /etc/fstab. В частности, вот этот способ: https://unix.stackexchange.com/questions/347006/systemd-how-do-i-automount-a-usb-filesystem-using-etc-fstab.

Я вставил флешку, выполнил команду…

lsblk -f

…и получил UUID

NAME        FSTYPE FSVER LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1      vfat   FAT32            0698-A3CF
└─sda2      vfat   FAT16 VTOYEFI    3A23-0E50

Затем внёс изменения в /etc/fstab заменив только UUID и таймауты (поставил по 15):

UUID=0698-A3CF  /mnt/32GBkey  vfat  noauto,nofail,x-systemd.automount,x-systemd.idle-timeout=15,x-systemd.device-timeout=15

Затем вместе с sudo обновил изменения:

sudo systemctl daemon-reload && sudo systemctl restart local-fs.target

Отмонтировал флешку, вытащил её. Команда lsblk -f показала, что флешки больше нет.

Переткнул её и снова выполнил lsblk -f. Флешка по-прежнему опознаётся, но в графе MOUNTPOINTS всё также пусто. Флешка не смонтировалась.

Что я делаю не так? Возможно ли обеспечить реализацию такой типовой задачи, как автомонтирование флешки без многодневного «изучения инструментов & профессионального саморазвития» в замечательной операционной системе Linux (и потратить освободившееся время, например, на написание кода на Питоне, реализующего решение прикладных проблем)?



Последнее исправление: flammmable (всего исправлений: 1)

Возможно ли обеспечить реализацию такой типовой задачи, как автомонтирование флешки без многодневного «изучения инструментов & профессионального саморазвития» в замечательной операционной системе Linux (и потратить освободившееся время, например, на написание кода на Питоне, реализующего решение прикладных проблем)?

Вот вроде и хотелось помочь. До этого пассажа.

google: udisks2, udiskie

frunobulax ★★★
()
Ответ на: комментарий от flammmable

Оно воняет идиотизмом. Без обид. Хочу сделать, но не надо мне тут про знания какие-то вещать. Так не бывает. Или ты сразу так тонко обосрал линукс и линуксоидов, мол, все они задроты какие-то зазнавшиеся, требуют учиться?

Чтобы сделать то, что ты хочешь, тебе надо подумать, почитав про udisks. Без подумать не получится. Не хочешь думать → иди своей дорогой, путник.

Zhbert ★★★★★
()
Ответ на: комментарий от frunobulax

То есть к отсутствию относительно простых (и желательно, встроенных, штатных) механизмов автоматического монтирования/демонтирования надо относиться с уважением?

flammmable
() автор топика
Ответ на: комментарий от flammmable

Да кому вы нахрен нужны со своим уважением?)

На лицо фундаментальное непонимание того, что из себя операционки на линуксе вообще представляют. Операционки на линуксе это именно что дистрибутив. Т.е. куча несвязных между собой чуваков пишут различные компоненты, потом другие чуваки пакуют их и собирают в единую операционку, так называемый дистрибутив. Если что-то не работает, то оно либо не установлено, либо это проблемы конкретно этого компонента. Но не всего линукса и всего линуксового ПО. Которое кстати бесплатно распростряняется и чо бубнеть-то.

Штатные механизмы есть, но обычно они не работают из-за сбоя в прокладке между монитором и креслом.

Если нужна прям операционка, единая и цельная, это хз, надо фряху какую ставить или макось. Линукс в этом плане больше конструктор, но обычно из коробки всё установлено и есть. В debian в том числе.

Pierre_Dolle
()
Последнее исправление: Pierre_Dolle (всего исправлений: 1)
Ответ на: комментарий от Zhbert

Чтобы сделать то, что ты хочешь, тебе надо подумать

Это безусловно. Например надо подумать над тем, как реализовать индикацию записи бэкапа БД светодиодами (это сделано, к слову). Как протестировать отсутствие сбоев, если идёт резервное копирование на флешку и одновременно происходит коммит в БД. Как обустроить само БД, какие запросы будут делать интересующий меня срез агрегированных данных. Как визуализировать эти данные, чтобы не высматривать их глазами в табличном виде а смотреть на красивые графики.

В общем, обдумыванию подлежат нерешённые и не-типовые задачи. Обдумывать же решение абсолютно ординарной, многократно повторяющейся задачи, учиться механизмам её решения и испытывать от этого благоговение у меня плохо получается. Это как если бы на цоколе лампы вместо резьбы был байонет в форме цилиндрического лабиринта с ложными ходами. И я бы «учился» быстро находить в нём правильный путь для вкручивания лампы. И был бы профессионалом по «закручиванию лампочек». Быть профессионалом по монтированию флешек - весьма странная честь, эта типовая задача должна решаться легко, просто и без «обучения» и «подумывания». Наличие же (с ваших слов) необходимости «учиться» этому процессу, на мой взгляд, вполне оправдывает сарказм.

В любом случае, когда я найду способ решить свою задачу, обязательно отпишусь здесь )))

flammmable
() автор топика

Ваши действия должны были привести к созданию юнитов автомонтирования в systemd — поищите их в выводе systemctl list-units (должны заканчиваться на .automount). Если их нет, то вы что-то сделали не так.

Если же они там есть, то для разбора причин того, почему именно флешка не монтируется автоматически, используйте journalctl -u <имя юнита>.

Дополнительная информация: man systemd.automount.

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Спасибо!

systemctl list-units обозначил, что соответствующий юнит (что бы это ни значило) создался.

Затем при вставлении флешки команда ls периодически выдавала её содержимое, при этом lsblk в графе MOUNTPOINTS имел пустоту напротив соответствующего девайса.

Затем я перезагрузился - чтоб уж наверняка. И автомонтирование заработало. И даже lsblk начал выдавать точку монтирования.

flammmable
() автор топика