Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 7d99e1c98e0277a4 • Your IP: Click to reveal 88.135.219.175 • Performance & security by Cloudflare
USB storage devices (Русский)
В этом документе описываются способы использования различных USB накопителей в Linux. Это также касается и других устройств, таких как цифровые камеры или телефоны, которые распознаются как обычные USB накопители.
Если у вас свежая система со стандартным ядром Arch и современная среда рабочего стола, USB устройство должно автоматически появляться на рабочем столе при подключении, и лезть в консоль не потребуется.
Автоматическое монтирование с помощью udisks
Это самый простой и самый часто используемый метод. Он используется во многих средах рабочего стола, но может применяться и отдельно.
Подробности и вспомогательные программы описаны в статье udisks (Русский).
Монтирование вручную
Где взять ядро, поддерживающее usb_storage
Если не используется самодельное (самосборное) ядро, то делать ничего не требуется, все официальные ядра Arch Linux настроены как нужно. В случае самосборного ядра следует убедиться, что при компиляции была включена поддержка SCSI, SCSI-Disk и usb_storage. Если установлена последняя версия udev, то можно просто подключить носитель, и система автоматически подгрузит все необходимые модули ядра.
Опознавание устройств
Самое первое, что нужно знать об устройстве, так это его идентификатор, присвоенный ядром. Смотрите fstab (Русский)#Определение файловой системы для подробностей.
Монтирование USB флэш-памяти
Для этого нужно создать папку, в которую в дальнейшем будет монтироваться флэшка:
От имени суперпользователя (root)
Монтировать устройство рутом при помощи команды (только нужно заменить device_node найденным устройством, как было показано выше):
Если mount не распознаёт формат устройства (файловой системы), то можно попробовать с ключом -t <тип файловой системы> , а также глянуть в mount(8) для просвещения. Если монтирование не работает и на устройстве нет важных данных, можно попробовать отформатировать его или даже пересоздать таблицу разделов.
Разрешить запись обычным пользователям
Чтобы непривилегированные пользователи могли записывать данные на USB носитель, нужно прописать следующую команду:
Если это не сработало, убедитесь, что файловая система монтируема и доступна для записи суперпользователю (смотрите предыдущий раздел).
От имени обычного пользователя посредством fstab
Если вы хотите, чтобы обычный пользователь имел право монтировать и размонтировать устройство, смотрите FAT (Русский)#Запись на FAT32 в качестве обычного пользователя.
Инструменты монтирования
Есть множество инструментов, облегчающих монтирование от имени обычного пользователя.
Решение проблем
Никакие устройства хранения USB не распознаются системой
Если вы подключили USB-накопитель к компьютеру, но он не отображается в списке lsblk или dmesg, убедитесь, что в BIOS включена функция XHCI Handoff и EHCI Handoff.
Устройство USB определилось, но его не получается примонтировать
Если вы недавно обновили ядро, модули для USB-накопителя для вашего текущего ядра были удалены и заменены модулями для свежеустановленного ядра. Эти модули не смогут загрузиться, пока вы не перезагрузитесь и не запустите новое ядро или не выполните откат пакета ядра до версии, соответствующей текущей версии ядра.
Устройство не выключается после размонтирования всех разделов
Невыключение питания устройства может привести к тому, что:
- жёсткий диск не припаркует свою головку, издаст слабый царапающий звук при раскручивании и может деградировать [2], или
- твердотельный диск (особенно старый) не сбросит буферы кэша или не обновит таблицы отображения, что может привести к потере данных [3].
После размонтирования разделов устройство всё ещё включено. Чтобы безопасно извлечь его, необходимо сначала попросить систему выключить его: [4]
Как примонтировать «флешку» в Linux
Недавно решил переконвертировать фильмы в формате AVI в MPEG, чтобы смотреть с «флешки» на странном телевизоре BBK, который воспроизводит не все «авишки» а вот с DVD-шным форматом проблем не было. Как я уже писал раньше, 90% всего времени я провожу за экономной Raspberry PI 3, а вот роль тяжелой артиллерии выполняет мой 6-ядерный системный блок. Через ssh я зашел на удаленный «системник» с Ubuntu 16.04, скачал через Rtorrent нужные фильмы и перекодировал при помощи ffmpeg. После удачного конвертирования я решил сбросить эти файлы на «флешку». Но каково было мое удивление, когда флеш-накопитель не определился системой автоматически. Это в моей практике было впервые, поэтому пришлось решать эту проблему при помощи Google. Если бы я запустил Ubuntu 16.04 в ее графическом режиме, то с монтированием «флешки» проблем не возникло бы, а вот в консольном режиме такое случается часто.
Монтирование носителя при помощи udisksctl
Сначала узнаем как система определила нашу подключенную «флешку». Выполним команду:
Вывод был следующий:
sdb 8:16 0 596,2G 0 disk
├─sdb2 8:18 0 5,9G 0 part
├─sdb3 8:19 0 561G 0 part /mnt/5b4d2ffa-cfa0-4419-8736-3c5e97cf1073
└─sdb1 8:17 0 29,3G 0 part
sr0 11:0 1 1024M 0 rom
sdc 8:32 1 7,5G 0 disk
└─sdc1 8:33 1 7,5G 0 part
sda 8:0 0 465,8G 0 disk
├─sda2 8:2 0 92,9G 0 part /home
├─sda3 8:3 0 344,1G 0 part /mnt/938eb7e4-1e03-48c9-a9d2-4b7a5f263b01
└─sda1 8:1 0 28G 0 part /
sr1 11:1 1 1024M 0 rom
Из этого видно, что наша «флешка», размером 7,5G, имеет системное имя — sdc. И хотя эта команда ее видит, в каталоге /mnt были примонтированы лишь два жестких диска, а /media был вообще пустой. Поэтому, чтобы примонтировать нужное устройство, воспользуемся помощью udisksctl. Это консольная утилита, которая входит в состав пакета UDisks. Выполним следующую команду:
udisksctl mount -b /dev/sdc1
/dev/sdc1 — моя «флешка»
-b — данный параметр указывает системе, что нужно примонтировать блочное устройство
После этого видим примерно такой вывод:
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-other-seat ===
Для монтирования UFD 2.0 Silicon-Power8G (/dev/sdc1) требуется подтверждение подлинности пользователя
Authenticating as: dm. (dm)
Вводим пароль и видим, что наш носитель появился в каталоге /media
==== AUTHENTICATION COMPLETE ===
Mounted /dev/sdc1 at /media/dm/Flash_Drive
После монтирования устройства можно работать с ним как обычно, удалять, перемещать и копировать файлы. Если нужно отмонтировать устройство, то выполните команду:
udisksctl unmount -b /dev/sdc1
Монтирование устройств при помощи mount
Точки монтирования нужно создавать в каталогах /mnt либо /media. Для этого выполним команду:
sudo mkdir /mnt/usb
Теперь дадим этому каталогу права доступа для простых пользователей:
sudo chmod 777 /mnt/usb
Далее определим имя монтируемого устройства и тип файловой системы командой:
Часть вывода команды:
Устр-во Загрузочный Start Конец Секторы Size Id Тип
/dev/sdc1 2048 15730687 15728640 7,5G 7 HPFS/NTFS/exFAT
Теперь нужно запомнить такую деталь. «Флешка», как правило, может иметь файловую систему FAT32 или NTFS. Поэтому нам нужно сообщить об этом системе. Для FAT32 выполним следующую команду:
sudo mount -t vfat -o rw /dev/sdc1 /mnt/usb
-t vfat — параметр, который указывает о файловой системе FAT 32 носителя
/dev/sdc1 — наше монтируемое устройство
/mnt/usb — точка монтирования
-o rw — разрешаем чтение и запись
Для NTFS соответственно:
sudo mount -t ntfs -o rw /dev/sdc1 /mnt/usb
-t ntfs — параметр, который указывает о файловой системе NTFS носителя
/dev/sdc1 — наше монтируемое устройство
/mnt/usb — точка монтирования
-o rw — разрешаем чтение и запись
Также иногда будет полезно добавить следующие параметры:
iocharset=utf8 — задает кодировку utf8
codepage=866 — добавляет поддержку русского языка
Команда будет иметь следующий вид:
sudo mount -t ntfs -o rw,iocharset=utf8,codepage=866 /dev/sdc1 /mnt/usb
Иногда устройство может не монтироваться, поэтому можно будет применить параметр — -o force
Вся команда будет иметь следующий вид:
sudo mount -t ntfs -o force /dev/sdc1 /mnt/usb
Чтобы отмонтировать устройство выполните:
sudo umount /mnt/usb
Для монтирования CD/DVD дисков нужно выполнить команду:
sudo mount -t iso9660 -o ro /dev/cdrom /cd
-t iso9660 — данный параметр указывает файловую систему iso9660
-o ro — разрешаем только чтение
/cd — точка монтирования, которую предварительно нужно создать командой:
sudo mkdir /mnt/cd
Для монтирования образа диска ISO выполним команду:
sudo mount -t iso9660 -o loop
/image.iso — образ ISO
/iso — точка монтирования
-o loop — этот параметр указывает об использовании .iso файла
Как примонтировать флешку в 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
Создаем папку для монтирования:
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
Удостовериться что флешка подключена можно посмотрев содержимое каталога, в который мы ее монтировали:
Или выполнив команду 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 не вызовет у вас проблем. Даже если у вас не будет работать окружение рабочего стола и придется делать все вручную. Если остались еще вопросы, спрашивайте в комментариях.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.