Как подключить флешку к Linux.
Периодически пользуюсь флешками и съемным жестким диском для бэкапа семейных фоток и видео.
Установив Линукс, обнаружил, что подключить флешку как в винде, не получается. Система видит устройство, но при клике на него пишет, что мол «данное устройство не является папкой».
Включив голову, я подумал, что наверняка уже кто-то сталкивался с подобной проблемой, и полез гуглить. Честно говоря, я предполагал, что придется вручную прописывать флешку в каком-нибудь файле, и делать это через терминал. Называется процесс подключения красивым словом «монтирование». Звучит конечно внушительно:)
Смысл состоит в том, чтобы ввести в терминале команду
Эта команда выводит на экран список разделов, просмотрев которые, можно понять, какой из них является флешкой, и потом примонтировать его. Для этого нужно создать папку для монтирования, затем ввести команду для монтирования, а после завершения работы еще и отмонтировать устройство для корректного отключения. Немного громоздко, не правда ли?
Вместе с этим способом существует еще возможность установить утилиту для автоматического подключения любых usb-накопителей. Она называется udiskie. Я решил пойти именно этим путем.
Для установки пишем в терминале
sudo apt install udiskie
Система сама скачивает и устанавливает утилиту. Остается только запустить ее с ключом -а, который разрешает автоматическое монтирование.
После этого все мои накопители стали видеться в Линуксе, и жить стало немного проще.
Во время решения проблемы я пользовался подсказкой из этой статьи .
Как примонтировать флешку в 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 не вызовет у вас проблем. Даже если у вас не будет работать окружение рабочего стола и придется делать все вручную. Если остались еще вопросы, спрашивайте в комментариях.
Зайти на флешку в linux
Все привет. Нужно зайти на флешку в терминале путь:/dev/ttyUSB0 Подскажите, пожалуйста, как это можно сделать?
3 ответа 3
/dev/ttyUSB0 — это как бы более низкий уровень доступа к флешке. Устройство для флешки скорее всего будет выглядеть немного по другому. Самый простой способ найти — это вставить флешку и сразу в терминале запустит команду dmesg. Там в конце должно быть что то вида
это значит, что как минимум само устройство было распознано на низком уровне.
Чуть ниже будет где то такое
и смотрим ещё ниже по тексту и там должно быть такое
это значит, что флешка (диск) найдены, размер виден и известно имя — sde (у Вас, естественно, может быть другое). Но только sde — это название всей флешки, а конкретный раздел на флешке будет называться sde1 (или другие числа в конце, в зависимости от разбивки диска).
Проверяем наличие (флешка вставлена)
(вместо буквы e Вам нужно будет подставить свою. Если линукс совсем-совсем древний, то там будет /dev/hda* или подобное).
Ок, теперь имя уже известно. Можно пробовать монтировать. Для начала нужно создать для него каталог, можно даже в домашнем каталоге. Пусть это будет /home/Alexandr/usbstick Теперь монтируем
тут есть важный параметр — -t vfat — большинство флешек в fat, но бывают и в ntfs. (тогда нужно -t ntfs-3g )
В целом, очень странно, что флешка не подмонтировалась сама. Скорее всего она либо сломана, либо она на ntfs, а в системе не установлено под нее поддержка. Последние 10-20 строк с dmesg в момент вставки флешки могут прояснить ситуацию.
Переход на съёмный носитель в терминале
С помощью команды cd я могу переходить по каталогам и с помощью команды ls смотреть содержимое. А вот как перейти мне на съёмный носитель и посмотреть его содержимое в терминале?
Куда он примонтирован — туда и переходи.
а с помощью какой команды?
флешки положено в /media/ монтировать, точнее создавать там новый каталог, и монтировать к нему. Имя каталога обычно берётся из volue lable, а если ты его не удосужился забить, то UUID.
Монтирование осуществляет файловый менеджер, часть DE.
Можно ручками смонтировать, но по умолчанию это может сделать только root. Имя самого устройства можно узнать командой dmesg.
ну ты-то наверное как из ЖПП вылез, уже сразу начал правила к udev писать, и юниты к systemd.
флешки положено в /media/ монтировать
Есть тренд добавлять имя пользователя в качестве субдиректориии.
Часто монтируется в /run/media/ /
всем спасибо перешёл на флешку с помощью команды
Есть тренд добавлять имя пользователя в качестве субдиректориии.
да, это логично, т.к. флешки принадлежат юзеру, а /media/ принадлежит системе.
Вот к чему приводит дос головного мозга и полное незнание архитектуры GNU/Linux.
да, это логично, т.к. флешки принадлежат юзеру, а /media/ принадлежит системе.
Никогда не понимал, что в этом логичного. Ну вот вставил я флешку в комп, она же торчит в компе. Почему только один юзер, который был активным в момент вставки, имеет право ей пользоваться? Почему бы не смонтировать её в /media/$UUID и не дать права 770, root:plugdev на её точку монтирования?
потому что нельзя отличить, флешка конкретного пользователя это, с его голыми детьми, или публичная
Хм, довольно убедительно.
Почему бы не смонтировать её в /media/$UUID и не дать права 770, root:plugdev на её точку монтирования?
это вроде-бы можно сделать, но я полагаю, что это не нужно. У меня например есть «семейный» десктоп, которым пользуется вся семья. Если жена вставляет флешку, то она же её и вынимает. Просто непонятно, зачем мне вынимать флешку жены? А в случае, если жена накосячила, и забыла вынуть, и ушла, то тут вообще-говоря нужно вмешательство системного администратора, дети не имеют право вынимать, ибо может может мама туда что-то закачивает и т.п. Ежели вынуть, то жена будет недовольна, даже если я выну. Не, я могу конечно получить права рута, и посмотреть, что там флешку жены юзает, ежели уж так надо, но зачем? Дырок USB в нашем системнике полно, на всех хватает.
Короче, я не вижу пользы в твоём юз-кейсе на практике. И, очевидно, не только я, если такой дефолт.
потому что нельзя отличить, флешка конкретного пользователя это, с его голыми детьми, или публичная
только дебилы хранят на флешках личную информацию в открытом виде.