Меню Рубрики

Автомонтирование флешки в linux

Автомонтирование Flash-накопителей в Linux средствами udev

Теги: flash, udev, linux, Автор: Brainsburn

Для начала, о ручном монтировании флешек.

У меня есть два жестких диска – /dev/sda и /dev/sdb, и флешка. После подключения флеш-накопителя к компьютеру, в системе появляется новое устройство – /dev/sdc. Его можно открыть в fdisk и создать новую партицию, а затем создать на ней файловую систему и примонтировать куда-нибудь: А теперь, об автомонтировании.

В userfriendly дистрибутивах автомонтирование работает “из коробки” и пользователь может и не знать, как оно там сделано. Но знать, как настроить автомонтирование флешек надо, если вы работаете не с DE, а с простым WM или вообще в консоли. Нижеописанный способ автомонтирования будет работать независимо от используемого оконного менеджера и даже без запущенных иксов.

Раньше автомонтирование осуществлялось средствами HAL, но сейчас он отбросил коньки и правильнее использовать настройку автомонтирования через udev. Об этом мы и поговорим.

Суть сводится к тому, чтобы указать udev-у при каком-то особом событии выполнять нужную команду. В нашем случае это монтирование флешки. Сделать это можно, создав правило для udev. Правила udev лежат в /etc/udev/rules.d/ . Вы можете заметить, что там уже есть несколько файлов с правилами. Имена этих файлов начинаются, обычно, с цифр. Это сделано потому-что udev читает файлы правил в алфавитном порядке. Т.е. файл 10-test.rules udev считает раньше, чем 30-blabla.rules. Запомните еще одну важную вещь – когда udev находит первое правило, подходящее для события, он прекращает дальнейший поиск.

Все, что нам надо – добавить следующие строки в файл /etc/udev/rules.d/10-automount.rules. На самом деле, имя может быть любым, а начинается оно с десятки, чтобы правило считывалось раньше других.

Разберем это по порядку. Во-первых, запомните – одно правило – одна строчка. В нашем файле два правила – одно на монтирование флешки при подключении ее к компьютеру, и второе – на отмонтирование ее при отключении.

SUBSYSTEM==”block” указывает класс блочных устройств. KERNEL==”sd*” – этот шаблон фильтрует устройства по именам. Вы можете использовать KERNEL=”sd[c-z]*” или что-то в этом духе. ACTION==”add” – событие добавления устройства. RUN+=”/bin/mount /dev/sdc1 /mnt/flash” – эта опция указывает, какую команду надо выполнять. Если честно, это не лучший вариант, но зато самый простой.

Во второй строке все аналогично. кроме того, что детектится событие не добавления, а удаления устройства, после чего выполняется команда umount.

Чтобы сообщить udev о добавлении новых правил, выполните команду Создайте каталог /mnt/flash (да-да, его надо создать вручную) и подключите флешку к компьютеру. Она должна примонтироваться.

Посмотрим, как можно улучшить наше правило udev для автомонтирования. Было бы не плохо, чтобы система сама создавала точку монтирования, а после отключения флешки – удаляла ее. И еще было бы хорошо подставлять текущее имя устройства в команду mount вместо ручного написания /dev/sdc1, т.к. имя устройства может и измениться. Для этого, приведем /etc/udev/rules.d/10-automount.rules к такому виду:
Для активации изменений не забудьте выполнить
Рассмотрим эти строки.
В первой строке создается каталог, в который будет осуществлено монтирование.
Во второй строке происходит само монтирование. Обратите внимание на uid=1000 – это uid вашего пользователя. Если у вас это значение отличается от 1000, измените его на нужное. “%k” в /dev/%k означает имя устройства, переданное ядром, т.е. sdc1.
В третьей и четвертой строке происходит отмонтирование флеш-накопителя и удаление каталога /mnt/flash.

Кому-то будет удобнее, если имя точки монтирования будет включать имя устройства, например /mnt/flash-sdc1. Как не трудно догадаться, для этого надо /mnt/flash заменить на /mnt/flash-%k:
Вот и все. Если что-то не получается, перепроверьте себя на опечатки.
Для вступления в силу изменений перезагружать компьютер не нужно.

PS:
Чуть не забыл рассказать об одной интересной команде.
Если хотите промониторить, что видит система при подключении/отключении устройства, выполните следующую команду: Теперь вставьте флешку в usb. На экран вывалится куча блоков текста. Вам нужен последний. В нем можно увидеть тип файловой системы, фирму-изготовитель, модель и серийный номер флешки, а так же много другой полезной информации, которая поможет при составлении правил для udev.

Возможно, эти материалы Вас заинтересуют:

Для активации изменений не забудьте выполнить
# udevadm config –reload-rules

Источник

Как примонтировать флешку в Linux

В наши дни очень большую популярность у пользователей набрали USB флешки. Они используются для обмена файлами, различными фильмами и документами, установки операционных систем, а также восстановления системы после сбоя. Чтобы работать с флешкой в Linux ее нужно примонтировать в корневую файловую систему.

Дело в том, что организация файловой системы Linux немного отличается от того, что мы привыкли видеть в Winodws. Здесь нет никаких дисков C,D,E и так далее, есть только корень, самая верхняя точка файловой системы, в подкаталоги которой подключаются все жесткие диски и внешние носители.

Если в системе используется окружение рабочего стола, то оно, как правило, берет на себя всю низкоуровневую работу чтобы выполнить монтирование флешки в linux. Система обнаруживает подключенную флешку и в системном лотке всплывает уведомление о подключенном устройстве. Дальше остается кликнуть по значку флешки, чтобы система выполнила все нужные для ее монитрования действия. Но если окружение рабочего стола не запущенно или вам нужно работать в консоли можно выполнить все действия по монтированию флешки вручную.

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

Монтирование флешки в Linux

Самое первое, что нужно сделать после того, как вы подключили флешку – узнать имя ее файла в системе. В Unix все устройства имеют свои файлы и именно через эти файлы система и программное обеспечение взаимодействуют с ними.

Файлы флешек и других устройств хранения данных находятся в каталоге /dev. Устройства нумеруются по алфавиту sda, sdb, sdc, sdd и т д. Так как флешка подключается последней у нее будет старшая буква. Например, sdb или sdc. Имя sda принадлежит жесткому диску. Можно, конечно, просто посмотреть содержимое каталога /dev/, но такой способ ненадежный. Мы воспользуемся утилитой fdisk.

Подключите флешку и выполните:

Как видите, здесь мы можем посмотреть детальную информацию об устройстве. Имя файла, список разделов, формат таблицы разделов, список разделов. А главное для нас, размер раздела и его файловую систему. Теперь не сложно понять какая из них флешка. В этом примере это /dev/sdc1

Создаем папку для монтирования:

Теперь монтируем флешку с помощью команды mount:

sudo mount /dev/sdc1 /mnt/usb

Если знаете файловую систему флешки, то лучше ее указать с помощью опции -t. Чаще всего используется FAT, так как ее легко открывают как Windows так и Linux системы:

sudo mount -t vfat /dev/sdc1 /mnt/usb

Монтирование осуществляется от суперпользователя, но если нужно чтобы отмонитровать флешку мог любой нужно указать опцию users:

sudo mount -t vfat -o users /dev/sdc1 /mnt/usb

По умолчанию владельцем файлов на флешке при монтировании устанавливается root, поэтому если вы захотите работать с флешкой через файловый менеджер, то нужно будет его запускать с правами суперпользователя или же сразу примонтировать флешку в linux таким образом, чтобы владельцем был ваш пользователь. Для этого укажите группу и id своего пользователя в опциях uid и gid:

sudo mount -o users,uid=1000,gid=1000 /dev/sdc1 /mnt/usb

Удостовериться что флешка подключена можно посмотрев содержимое каталога, в который мы ее монтировали:

Или выполнив команду mount:

После завершения работы с флешкой не забудьте ее отмонтировать. Потому что иначе данные могут быть не сохранны или вообще повреждена файловая система флешки:

sudo umount /dev/sdc1

Автоматическое монтирование флешки в Linux

Популярные окружения рабочего стола выполняют монтирование флешки linux автоматически, как только она подключена к системе или по клику на ярлыке. Мы можем это реализовать с помощью службы udisks2.

Udisks – это служба dbus, позволяющая другим программам и пользователю взаимодействовать с udev. Мы можем получать сообщения о только что подключенных устройствах, выполнять их монтирование и отключение. Окружения рабочего стола используют именно этот сервис для монтирования устройств.

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

Для монтирования используется такая команда:

udisksctl mount -b /dev/sdc1

Здесь /dev/sdc1 – файл нашей флешки, а опция -b указывает, что нужно монтировать блочное устройство. Так же как и в mount здесь можно задать опции монтирования -o и файловую систему -t. Флешка будет примонтирована в папку /run/имя_пользователя/uuid-флешки/

Для размонтирования используется аналогичная команда:

udisksctl unmount -b /dev/sdc1

Автоматическое монтирование usb флешки в linux можно настроить с помощью утилиты udiskie. Все новые подключенные флешки будут автоматически подключаться, после подключения устройства будет всплывать окно с предложением открыть файловый менеджер, а также значок, с помощью которого можно получить доступ к каждому из устройств.

Устанавливается утилита в Ubuntu командой:

sudo apt install udiskie

Дальше остается запустить программу:

Теперь все подключаемые устройства будут автоматически монтироваться с помощью udisks. Рассмотрим что значат опции:

  • -a – выполнять автоматическое монтирование
  • -n – показывать всплывающее уведомление
  • -t – показывать значок в трее.

Выводы

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

Источник


Adblock
detector