USB storage devices (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи USB storage devices. Дата последней синхронизации: 10 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Если у вас свежая система со стандартным ядром Arch и современная среда рабочего стола, USB устройство должно автоматически появляться на рабочем столе при подключении, и лезть в консоль не потребуется.

Автоматическое монтирование с помощью udisks

Это самый простой и самый часто используемый метод. Он используется во многих средах рабочего стола, но может применяться и отдельно.

Подробности и вспомогательные программы описаны в статье udisks (Русский).

Монтирование вручную

Примечание: Перед тем, как обвинить Arch Linux в том, что он не монтирует USB устройства, стоит проверить все доступные порты. Часть разъёмов могут не обслуживаться контроллером (или не подключены к контроллеру вообще, в случае портов на передней панели), и устройства физически не смогут монтироваться. Теоретически контроллер портов может оказаться выключенным; для того, чтобы это проверить, нужно зайти в BIOS и отыскать параметр с названием вроде "Onboard USB Controller" — должен быть "Enabled".

Где взять ядро, поддерживающее usb_storage

Если не используется самодельное (самосборное) ядро, то делать ничего не требуется, все официальные ядра Arch Linux настроены как нужно. В случае самосборного ядра следует убедиться, что при компиляции была включена поддержка SCSI, SCSI-Disk и usb_storage. Если установлена последняя версия udev, то можно просто подключить носитель, и система автоматически подгрузит все необходимые модули ядра.

Опознавание устройств

Самое первое, что нужно знать об устройстве, так это его идентификатор, присвоенный ядром. Смотрите fstab (Русский)#Определение файловой системы для подробностей.

Совет: Чтобы узнать, какое именно устройство является нужным вам USB-устройством, можно сравнить вывод lsblk -f (описанный в статье по ссылке) до и после подключения устройства.

Монтирование USB флэш-памяти

Для этого нужно создать папку, в которую в дальнейшем будет монтироваться флэшка:

# mkdir /mnt/usbstick

От имени суперпользователя (root)

Монтировать устройство рутом при помощи команды (только нужно заменить device_node найденным устройством, как было показано выше):

# mount device_node /mnt/usbstick

или

# mount -U UUID /mnt/usbstick

Если mount не распознаёт формат устройства (файловой системы), то можно попробовать с ключом -t <тип файловой системы>, а также глянуть в mount(8) для просвещения. Если монтирование не работает и на устройстве нет важных данных, можно попробовать отформатировать его или даже пересоздать таблицу разделов.

Примечание: Примеры скриптов монтирования с использованием sudo: [1]

Разрешить запись обычным пользователям

Чтобы непривилегированные пользователи могли записывать данные на USB носитель, нужно прописать следующую команду:

# mount -o gid=users,fmask=113,dmask=002 /dev/sda1 /mnt/usbstick

Если это не сработало, убедитесь, что файловая система монтируема и доступна для записи суперпользователю (смотрите предыдущий раздел).

От имени обычного пользователя посредством fstab

Если вы хотите, чтобы обычный пользователь имел право монтировать и размонтировать устройство, смотрите FAT (Русский)#Запись на FAT32 в качестве обычного пользователя.

Инструменты монтирования

Есть множество инструментов, облегчающих монтирование от имени обычного пользователя.

Решение проблем

Никакие устройства хранения USB не распознаются системой

Если вы подключили USB-накопитель к компьютеру, но он не отображается в списке lsblk или dmesg, убедитесь, что в BIOS включена функция XHCI Handoff и EHCI Handoff.

Устройство USB определилось, но его не получается примонтировать

Если вы недавно обновили ядро, модули для USB-накопителя для вашего текущего ядра были удалены и заменены модулями для свежеустановленного ядра. Эти модули не смогут загрузиться, пока вы не перезагрузитесь и не запустите новое ядро или не выполните откат пакета ядра до версии, соответствующей текущей версии ядра.

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

Невыключение питания устройства может привести к тому, что:

  • жёсткий диск не припаркует свою головку, издаст слабый царапающий звук при раскручивании и может деградировать [2], или
  • твердотельный диск (особенно старый) не сбросит буферы кэша или не обновит таблицы отображения, что может привести к потере данных [3].

После размонтирования разделов устройство всё ещё включено. Чтобы безопасно извлечь его, необходимо сначала попросить систему выключить его: [4]

# echo 1 > /sys/block/имя_диска/device/delete

Если вы используете udisks, можно использовать следующие команды: [5]

$ udisksctl unmount -b /dev/sdXY
$ udisksctl power-off -b /dev/sdX