В наши дни очень большую популярность у пользователей набрали USB флешки. Они используются для обмена файлами, различными фильмами и документами, установки операционных систем, а также восстановления системы после сбоя. Чтобы работать с флешкой в Linux ее нужно примонтировать в корневую файловую систему.
Дело в том, что организация файловой системы Linux немного отличается от того, что мы привыкли видеть в Winodws. Здесь нет никаких дисков C,D,E и так далее, есть только корень, самая верхняя точка файловой системы, в подкаталоги которой подключаются все жесткие диски и внешние носители.
Если в системе используется окружение рабочего стола, то оно, как правило, берет на себя всю низкоуровневую работу чтобы выполнить монтирование флешки в linux. Система обнаруживает подключенную флешку и в системном лотке всплывает уведомление о подключенном устройстве. Дальше остается кликнуть по значку флешки, чтобы система выполнила все нужные для ее монитрования действия. Но если окружение рабочего стола не запущенно или вам нужно работать в консоли можно выполнить все действия по монтированию флешки вручную.
В этой инструкции мы рассмотрим монтирование usb флешки в linux через терминал, а также настройку автоматического монтирования для оконных менеджеров, которые не поддерживают такую возможность.
Содержание статьи
Монтирование флешки в Linux
Самое первое, что нужно сделать после того, как вы подключили флешку - узнать имя ее файла в системе. В Unix все устройства имеют свои файлы и именно через эти файлы система и программное обеспечение взаимодействуют с ними.
Файлы флешек и других устройств хранения данных находятся в каталоге /dev. Устройства нумеруются по алфавиту sda, sdb, sdc, sdd и т д. Так как флешка подключается последней у нее будет старшая буква. Например, sdb или sdc. Имя sda принадлежит жесткому диску. Можно, конечно, просто посмотреть содержимое каталога /dev/, но такой способ ненадежный. Мы воспользуемся утилитой fdisk.
Подключите флешку и выполните:
fdisk -l
Как видите, здесь мы можем посмотреть детальную информацию об устройстве. Имя файла, список разделов, формат таблицы разделов, список разделов. А главное для нас, размер раздела и его файловую систему. Теперь не сложно понять какая из них флешка. В этом примере это /dev/sdc1
Создаем папку для монтирования:
sudo mkdir /mnt/usb
Теперь монтируем флешку с помощью команды 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
Удостовериться что флешка подключена можно посмотрев содержимое каталога, в который мы ее монтировали:
ls /mnt/usb
Или выполнив команду mount:
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
Дальше остается запустить программу:
udiskie -a -n -t
Теперь все подключаемые устройства будут автоматически монтироваться с помощью udisks. Рассмотрим что значат опции:
- -a - выполнять автоматическое монтирование
- -n - показывать всплывающее уведомление
- -t - показывать значок в трее.
Выводы
Теперь монтирование флешки linux не вызовет у вас проблем. Даже если у вас не будет работать окружение рабочего стола и придется делать все вручную. Если остались еще вопросы, спрашивайте в комментариях.
А почему не рассказали про udisks2 + udiskie?
Я писал только об ручном монтировании, а в сторону udisks даже не смотрел. Но это вещь очень интересная, спасибо за наводку, позже возможно допишу.
gvfs еще 🙂
А на мой взгляд — вполне добротно подан материал. Скопировал...
С уважением, Роман.
🙂
загрузился с live usb, подключил флешку. fdisk эту флешку не видит. Как примонтировать?
fdisk не может не видеть флешку, если она есть в системе, она определяется программой. Обычно флешки имеют адрес /dev/sdb1 или /dev/sdc1 попробуйте, может получится, но если fdisk не видит значит флешка не подкючена
Да очень просто fdisk может не видеть флешку. Причин для это 100500+. Модуль usb_common не загружен, например, и всё. Искать флешку надо командой lsusb. А вот если и она не показывает, тогда уже искать что препятствует/отсутствует.
Попробуйте от суперпользователя выполнить команду sudo fdisk -l
Большое спасибо, всё очень подробно и доступно даже для простого пользователя.
Все очень грамотно написано, исользую Ваши статьи как краткие конспекты по камандам. Однако, мне кажется, нужно добавить, что при использовании команды mount любые операции, кроме чтения, требуют пароля суперпользвателя или правильно настроенной утилиты sudo, т.к. владельцем файлов на флешке является root. udisksctl же монтирует файловую систему от имени текущего пользователя и исключает проблемы при работе с файлами.
не получается загрузить программу MC в Linux CentOC 7
пишет error getting repository dada for c5-media, repository not found
У меня вопросик.Можно ли обмануть систему,если админ закрыл доступ к другим флешкам кроме одной у начальника.Очень часто приходится обмениваться информацией с другими ПК.Вот и думаю,может перепрошить флешку что система ее восприняла как CD.Очень надеюсь на ваш ответ.
Команда lsusb выдаёт результат вида
Bus 003 Device 004: ID 8564:1000 Transcend Information, Inc. JetFlash
Как, зная это, примонтировать флешку?
(остальные способы не действуют)
Я вот тоже с этим гемороюсь - по-моему лучший способ снести линукс, если за несколько десятилетий они не смогли научить пингвина автоматически монтировать флешки, то о чём, вообще, говорить - дальше косяков будет ещё больше...
Уита)) полная, таких статей в просторах инет, непересмотреть до конца дней, одно и тоже, копирайтер уеф, тоже не могу смонтировать, стоит элементари под снос, флешка 32 гб, отделил 6 гбдля загрузки, и для всего остального остаток.
Немогу то что называют примонтировать, хотя пару раз и удалось, но в итоге опять, при загрузке выходили ошибки груд.
Выходит рукожоп 10 000 000 лвл, и смеюсь над более продвинутым )
С флешкой справлюсь когда то, а вот мудак это помоему навсегда.
все сделал так как в статье. но не могу найти флешку чтобы скинуть туда инсталятор винды. помогите плиз как найти флешку на компе
Как же пользователь, который мнит себя хакером, не может выполнять простые действия, скопировать файлы на USB / ржунемогууменянеработаетпробел))
У меня Ubuntu 21.04. Команда fdisk -l не сработала, а сработала команда lsblk.