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

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

Дата Автор Dmitry29 комментариев 29 714 просмотров

В этой публикации из цикла статей о 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

29 комментария на «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. Есть проблема если внешний диск постоянно дёргать туда сюда, приходится каждый раз перегружаться чтобы система вновь его увидела.
    Есть какое нибудь решение чтобы автоматически подхватывало когда диск вернулся?

Добавить комментарий для Dmitry Отменить ответ

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