Linux автоматическое монтирование usb

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

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

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

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

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

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

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

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

Читайте также:  Линукс терминал копирование папки

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

usb

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

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

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

sudo mount /dev/sdc1 /mnt/usb

usb1

Если знаете файловую систему флешки, то лучше ее указать с помощью опции -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:

usb2

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

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

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

Читайте также:  Linux script exit code

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

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

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

udisksctl mount -b /dev/sdc1

usb3

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

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

udisksctl unmount -b /dev/sdc1

usb4

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

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

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

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

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

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

автоматическое монтирование подключаемых устройств через udev

Задача автоматического монтирования флешек решается довольно просто в KDE или GNOME — эти среды можно настроить так, что они сами всё смонтируют, откроют файловый менеджер и покажут значок в трее. Но что делать, если у вас только консоль или стоит, например, awesome? Или вы не хотите разбираться с конкретным DE, а ищите универсальное решение?

Читайте также:  Vmware mount vmdk linux

Независимое от DE решение есть — udev.
Создаём новый файл /etc/udev/rules.d/automount.rules со следующим содержанием:

ACTION=="add" KERNEL=="sd[c-z]8" RUN+="/bin/mkdir -p /mnt/%E_%E_%n" ACTION=="add" KERNEL=="sd[c-z]9" RUN+="/bin/mount -o uid=1000 /dev/%k /mnt/%E_%E_%n" ACTION=="remove" KERNEL=="sd[c-z]7" RUN+="/bin/rmdir /mnt/%E_%E_%n"

Укажем udev-у, что появилось новое правило:
sudo udevadm control —reload-rules

Результат
Вставляю флешку и вижу каталог /mnt/KINGMAX_Flash_Disk_1, в котором содержимое флешки. Размонтирую и вынимаю — каталог пропал.

Замечания
1. KERNEL==«sd[c-z]5» — значит, что будет срабатывать на все устройства вида /dev/sdc1 /dev/sdc2, /dev/sdg7. У меня 2 жестких диска: sda и sdb, поэтому я начал regex с «с».
2. mount -o uid=1000 — зашит id пользователя, который будет owner-ом. Если у вас не стандартный, то подправьте (проверка id -u). Конечно, можно действовать через группы и маски, но я выбрал наиболее простое решение.

umount
Проблему размонтирования (нужны права суперпользователя) я решил так:
1. sudo visudo
2. добавить строчку %wheel ALL= NOPASSWD: /bin/umount

upd
Как заметил darkk, ID_VENDOR=»; /bin/rm -rf /;» — потенциальная дыра в безопасности, поэтому лучше перестраховаться в ущерб наглядности:

ACTION=="add" KERNEL=="sd[c-z]4" RUN+="/bin/mkdir -p /mnt/%k" ACTION=="add" KERNEL=="sd[c-z]6" RUN+="/bin/mount -o uid=1000 /dev/%k /mnt/%k" ACTION=="remove" KERNEL=="sd[c-z]7" RUN+="/bin/rmdir /mnt/%k"

Источник

Оцените статью
Adblock
detector