Как правильно подключить USB HDD или флешку к Raspberry Pi

Raspberry Pi 3. Правильное монтирование USB HDD и флешек

Дата Автор Dmitry31 комментарий 33 035 просмотров

В этой публикации из цикла статей о Raspberry Pi и Arduino я хочу рассказать о том, как правильно подключать внешние жесткие диски (USB HDD) к Raspberry Pi.

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

Что нам понадобится

Для осуществления описываемых в этой статье действий понадобится:

Установке и настройке Raspbian на Raspberry Pi 3 посвящена статья “Raspberry Pi 3. Обзор и начало работы”. В этой статье подразумевается, что OS Raspbian уже установлена и готова к работе.

Добавление в Raspbian поддержки NTFS

Скорее всего, используемый жесткий диск будет отформатирован в NTFS.

В OS Raspbian нет поддержки NTFS “из коробки”, поэтому нужно установить соответствующий пакет:

sudo apt-get update
sudo apt-get install ntfs-3g

После этого можно приступить непосредственно к монтированию HDD.

Монтирование USB HDD через fstab

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

Добавлением строк в этот файл в *nix-системах совершается монтирование жестких дисков и других устройств.

Структура записей fstab выглядит так:

# <file system>        <dir>         <type>    <options>          <dump> <pass>

   /dev/cdrom         /mnt/cd         iso9660     ro,user,noauto,unhide   0      0

Наша цель – в правильной форме создать и записать строку для монтирования подключенного по USB жесткого диска (или флешки).

Настоятельно рекомендую перед редактированием файла fstab сделать бэкап системы, потому что ошибки в редактировании этого файла могут привести к тому, что Raspbian перестанет загружаться до конца, выдавая в процессе сообщение об ошибке. Новичка в *nix-системах это может сильно смутить.

Для начала найдем нужное нам значение <file system> для жесткого диска. Для этого при подключенном жестком диске нужно выполнить команду:

ls -l /dev/disk/by-uuid

В ответ на которую мы увидим нечто примерно такое:
Как правильно подключить USB HDD или флешку к Raspberry PiСтрока с /sda1 – наш жесткий диск. А написанное синим шрифтом – это как раз то, что мы ищем. Копируем эти символы куда-нибудь.

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

sudo mkdir /mnt/usbstorage

Я решил, что мой смонтированный жесткий диск будет доступен по пути /usbstorage, но этот параметр может быть любым.

Ничто не мешает назвать точку монтирования /hdd1, /500gb, /media, /data или любым другим ранее не задействованным именем.

Название точки монтирования – это наше будущее значение <dir> в структуре записи fstab.

Теперь разбираемся со значением <type>.

Поле <type> – тут нужно будет указать файловую систему, в которой отформатирован наш накопитель. Если мы ранее пользовались Windows, то скорее всего жесткий диск отформатирован в NTFS. Менее вероятно – FAT32. Практически невероятно – EXT4 и другие применяемые в *nix-системах файловые системы.

Если ошибиться в указании файловой системы монтируемого жесткого диска, то это гарантированно приведет к ошибке во время загрузки Raspbian.

Далее идут опции монтирования (<options>). Они перечисляются через запятую. Рекомендую просто написать как у меня: “nofail,uid=pi,gid=pi”.

И последними в структуре идут <dump> и <pass>.

Первый используется утилитой dump для создания резервных копий. Этот параметр нужно выставить “0”.

Второй определяет приоритет, с которым утилита для сканирования и исправления ошибок fsck будет приступать к сканированию данного диска. Значением этого параметра может быть “0”, “1” или “2”, где “1” и “2” – приоритеты, а “0” – отключение. Я выставил “0”, но можно поставить и “1” – особо это ни на что не влияет.

Таким образом, у меня формируется следующая строка для добавления в fstab:

UUID=E2CCEF5FCCEF2D0B /mnt/usbstorage ntfs nofail,uid=pi,gid=pi 0 0

Набор символов после UUID= нужно вставить свой, остальную часть строки можно использовать в таком виде без изменений.

Вставляем строку в fstab и сохраняем его:

sudo nano /etc/fstab

Как правильно подключить USB HDD или флешку к Raspberry Pi

Установка прав доступа

В завершении процедуры монтирования жесткого диска нужно выставить права доступа:

sudo chmod 777 /mnt/usbstorage

777 – полный доступ на чтение, запись и запуск файлов для всех пользователей. Рискованное с позиции безопасности разрешение, но гарантированно беспроблемное.

Если “малина” находится в домашней сети, то ничего страшного от выставления полного доступа для всех к примонтированному к ней жесткому диску не произойдет. Но в локальных сетях на предприятиях и на интернет-серверах полный доступ к файлам выставлять нельзя.

На этом процесс монтирования можно считать завершенным и остается только перезагрузить систему:

reboot

Заключение

Если с самого начала разобраться в процессе монтирования устройств в *nix-системах, то процесс подключения USB HDD к Raspberry Pi займет не более 5 минут.

Raspberry Pi 3B (английская сборка)в интернет-магазине GearBest Raspberry Pi 3B (китайская сборка)в интернет-магазине GearBest

31 комментария на «Raspberry Pi 3. Правильное монтирование USB HDD и флешек»

  1. Поправил в fstab строку, теперь она выглядит так
    UUID=B32738CA56783E6FF32 /mnt/usbdisk ntfs nofail,permissions,uid=pi,gid=pi 0 0
    Перегрузился
    Но всё равно не могу поменять права, так и висят 777

  2. К сожалению, не написано, как открыть для редактирования непосредственно сам файл fstab. А это самое важное тут.

    • Написано же:
      sudo nano /etc/fstab

      nano – консольный текстовый редактор, sudo – запуск от имени суперпользователя, /etc/fstab – путь к файлу

      • Для полных новичков с не установленным nano, может поставить их в тупик. Поэтому думаю стоило упомянуть про ее установку.

        sudo apt-get install nano

        Вот тогда редактор откроется.

        За туториал спасибо!

  3. Добрый день.
    У меня USB-HDD подключен к роутеру как медиахранилище.
    Возможно ли подключить к нему Raspberry?

      • zyxel giga II
        у него на борту transmission
        он качает из инета на себя всякое-разное и раздает в локальную сеть
        также есть возможность включить на роутере DLNA сервер
        будет через DLNA забирать?

        • Да, будет. Но по DLNA можно получать только медийный контент. Т.е. не софт, не архивы, не документы. Фильмы, музыка, фотографии – это можно.

  4. Здравствуйте. Есть проблема.
    Сделал все как написано в статье, но все равно сети не отображается сетевое хранилище и не могу понять почему, единственное что изменил в файле /etc/fstab вместо ntfs nofail,uid=pi,gid=pi, поставил rw,force,exec,users 0 0, но пробывал оставлять и так и так все равно сеть не видит хранилище также доступ 777 сделал, ничего не помогает, может из маршрутизатора Zexel

    • Может сетевое обнаружение в Windows отключено?

      Кроме того можно зайти напрямую, введя “\\raspberrypi” (или другое сетевое имя устройства, если оно менялось) в адресной строке проводника. Там должны отобразиться расшаренные ресурсы, на них можно создать ярлыки для быстрого доступа.

  5. А как восстановить обратно файлик fstab если распбери перестала загружаться после его редактирования?

    • Подключить монитор и клавиатуру, и открыть файл на редактирование после того как загрузка застопорится (sudo nano /etc/fstab). Удалить добавленные строки (после которых появились проблемы с загрузкой), сохранить изменения и перезагрузиться.

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

  6. Добрый день. Подключаю жесткий диск (NTFS), ввожу команду ls -l /dev/disk/by-uuid, но среди устройств жесткого диска нет. Что может служить причиной? Питание на RPI 2 Ампера, жесткий диск пробовал кидать на USB хаб с доп. питанием, но никаких изменений нет. Спасибо

    • Попробуйте вместо диска подключить что-то другое, например, флешку.

      Так будет понятнее в чем причина, в самом диске или у вас вообще дисковые носители почему-то не определяются.

      • Флешки определяет нормально. Если ввести команду sudo fdisk -l, то есть какая-то инфа по поводу HDD
        PS файлик fstab выглядит немного иначе, нежели у вас. У меня там нет UUID’ов

  7. Спасибо!
    Статья помогла, выполнил лишь
    apt-get update
    apt-get install ntfs-3g
    и проблемы исчезли.
    Теперь я могу сохранять файлы на внешнем носителе.

  8. Привет,
    Cпасибо за наводку про plex и hdd. Вопос скорее теоретического толка – что будет быстрее работать в контексте стриминга? Подмонтированный по smb диск, подключенный к usb роутера или диск подключенный по usb к малине?

    • На малине USB 2.0 и 10/100Mbit Ethernet, если на роутере так же, то разницы не будет.
      Если на роутере USB 3.0 и гигабитная LAN, то тяжелые файлы будут лучше проигрываться к подключенному к неу диска.

  9. Спасибо. Познавательно. Вопрос, если я подключаю флешку с несколькими разделами, два из которых нтфс и два ехт3, как быть в этом случае?

    • Если на флешке несколько разделов, то они все отобразятся при выполнении команды ls -l /dev/disk/by-uuid.
      Просто монтировать их по отдельности на разные пути, и для ext3 раздела прописать в fstab соответствующий тип файловой системы.

  10. Это все как бы хорошо, но вот в чем проблема.
    Таким образом рассшаривается конкретный диск, возможно ли сразу рассшарить усб порт, что любой диск подключающийся в порт автоматически становился доступным по сети?

    • Есть платное приложение VirtualHere Linux USB Server, расшарить USB-порт можно через него. Других способов я не знаю, средствами самой ОС это вроде бы не делается.

  11. Привет всем!
    Сегодня решил проделать это, и есть изменения в схеме, так как эта схема не работает =//
    в файле, что изменяется нужно ставить не UUID имя переменной, а PARTUUID, почему… хз)
    Но есть момент, который поможет увидеть успешный результат ДО перезагрузки малинки – прописать команду: `sudo mount -a`. И если ничего не ругалось – то все ок и все работает.

    Вот так :)

    после перезагрузки чтоб понять, что все точно ок – можно зайти на этот носитель
    `
    cd /mnt/usbstorage
    ls
    `

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

    • Ещё заметил что при использовании transmission демона процесс mount.ntfs грузит процессор под 100%, настраивал всё по вашим гайдам. Насколько я понял из инета проблема в том, что торрент клиент постоянно делает мелкие записи, что очень нагружает проц потому как ntfs сам по себе очень ресурсо затратен под линукс. Может ли стать решением отформатировать внешний винт в exfat и полностью отказаться от ntfs, как думаете?

      • Добрый день, если диск планируется использовать постоянно подключенным к Raspberry Pi, то действительно лучше отформатировать его в ext4 вместо NTFS.

        А вот как сделать автомонтирование при переподключении USB-накопителя пока не могу ответить.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

[Хамство, оскорбления и попытки крауд-маркетинга будут удалены]