нет демона usbd
Решил сделать автоматическое монтирование флешки при подключении.
У меня FreeBSD 7.2, но демона usbd там не оказалось. Что делать? Есть ли какие-нибудь альтернативы или можно как-то установить этот демон? |
Вариантов несколько:
- devd - функционал usbd с 7-ки вынесен в него; - amd+automounter; - HAL/PolicyKit/D-Bus + рабочая среда, их использующая (Gnome, Xfce, KDE ...). |
Цитата:
В devd.conf пишутся такие же строки, как и в usbd.conf ? Я писал: Код:
device "USB flash" |
Цитата:
Цитата:
Цитата:
|
Спасибо, заработало.
Но пришлось внести коррективы. 1. У меня не оказалось mount_msdosfs_iconv, пришлось монтировать просто mount_msdosfs 2. Подсластил одну из ложек дегдя. Вместо указания имени пользователя-владельца каталога монтирования указываю группу. 3. В статье, наверное ошибка, ибо /sbin/umount /media/$device-name при отсоединении не работает Я добавил флаг -f и заработало. Но вообще у меня сомнения, корректно ли вот так просто выдергивать флешку. Я так понимаю, размонирование происходит уже после отсоединения. Следовательно такое отсоединение потенциально опасно для флешки. Наверное надо сначала вручную размонировать, а потом отсоединять. Кстати, такой вопрос. Тут для объединения команд служит логический оператор И (&&). Но если одна из команд завершается ошибкой, то остальные не выполняются. Например, если я размонтирую флешку вручную, а потом выну, то демонический скрипт не выполнится до конца (каталог не будет удален), потому что повторная команда размонтирования привет к ошибке. А как надо перечислить команды, чтобы они выполнились в любом случае? |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
У меня предположение, как сделать это возможным. Подскажите, сработает ли: в device-name "umass([0-9]+)"; [0-9] вложить в подмаску (это же регулярное выражение). В регулярках это же делается с помощью круглых скобок. А потом эту подмаску использовать. Только как, я уже затрудняюсь предположить. $1 - вряд ли. Да и вообще, там подмаску можно записать? Цитата:
Как писали на форумах, контроллер флешки часто сбивается как раз из-за некорректного отключения. |
Нашёл более аккуратное решение, полюбопытствуйте.
|
У меня знаний пока еще маловато, чтобы разобраться в этом коде. В принципе понятно, что там делается, но бездумно копировать я не люблю. Тем более, если это не заработает, я не буду иметь понятия, что и где исправлять.
|
Не учел я еще такой момент. Размонтировать вручную из под обычного пользователя нельзя. Надо делать это с правами root. А это не удобно. Как решается эта проблема?
|
$ sysctl -d vfs.usermount
vfs.usermount: Unprivileged users may mount and unmount file systems |
еще вопрос
У меня программа размонтирования лежит в /sbin/umount, как впрочем и mount Но почему-то при монтировании достаточно написать mount (без /sbin/), а umount обязательно надо полный путь писать, иначе не работает. Где и что надо прописать, чтобы и umount можно было выполнять без полного указания пути? |
Цитата:
Код:
$ echo $PATH |
Цитата:
Но размонтировать не удается. Я где-то прочитал, что требуется перезагрузка, но и после перезагрузки не удается размонтировать. Такое впечатление, что sysctl -d vfs.usermount=1 работает только на данный сеанс. В руководстве написано, что того же результата можно достичь отредактировав файл /etc/sysctl.conf vfs.usermount=1 Цитата:
|
Нужно просто sysctl vfs.usermount=1
Ключом -d я просто показал описание данного параметра ядра. Цитата:
Цитата:
Отмонтировать может только тот же пользователь, что монтировал (ну или рут, который может всё). Так что монтируйте примерно так: su user -c 'mount /dev/da0s1a /home/user/mountpoint' |
Цитата:
|
Цитата:
Раз прописано в sysctl.conf, то зачем руками повторять? |
Цитата:
Я смотрел этот файл после выполнения sysctl.conf, там нет строчки vfs.usermount=1 |
Цитата:
Цитата:
|
Время: 19:32. |
Время: 19:32.
© OSzone.net 2001-