Подключение hdd к raspberry pi

Обновлено: 03.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вариант 2. Автоматическое монтирование через pmount

Для этого нам потребуется установить утилиту pmount:

Затем создадим файл с правилами монтирования накопителя:

И впишем в него следующую строку:

Затем создадим новый сервис:

Впишем в него следующее содержимое:

Создадим файл скрипта для монтирования:

Со следующим содержимым:

Сделаем скрипт исполняемым:

Заключение

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

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

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

Ну ntfs-систем нет особо понятия прав доступа как в ехт, поэтому там все как 777 для линуха)

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


Dmitry :

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

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

sudo apt-get install nano

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

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


Dmitry :

В обычном Raspbian Jessie он предустановлен по умолчанию уже). Хотя может в Lite-редакции его и нет, не проверял.

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


Dmitry :

А вот если роутер Xiaomi и у него какая-то хитрая система с доступом к медиахранилищу через свои приложения, то скорее всего нет.

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


Dmitry :

Если используемый жесткий диск будет отформатирован не в NTFS, а в ext4. Что изменится?


Dmitry :

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


Dmitry :

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

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


Dmitry :

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

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

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


Dmitry :

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

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

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


Dmitry :

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

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


Dmitry :

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

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


Dmitry :

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

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

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


Dmitry :

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

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


Dmitry :

Здравствуйте! Buster еще не устанавливал, посмотрю.

Добрый день. Потянет ли pi3b 4 диска (2,5) подключенных по usb? или нужно организовывать для дисков отдельное питание? (остались 4 диска *500гб при переходе на ssd. хочется использовать).


Dmitry :

Добрый день.
Сомневаюсь. 2 диска без доп.питания еще может потянуть, но сразу 4 точно нет. Так что, да, нужно будет организовывать отдельное питание.

Спасибо, так и думал. Подыскиваю что можно прикупить не сильно дорогое и с доп питанием.
За статьи спасибо. Реально выручили!.


Dmitry :

Руководство обновлено, добавлено описание настройки автоматического монтирования накопителей через pmount.


Dmitry :

Точно, сейчас поправлю

Давай, может быть, как-то например так перепишем скрипт монтирования? :)

echo No available mountpoints
done

День добрый.
raspberry pi 4. По USB подключаем винт NTFS и он прекрасно опознается.
Только когда пропадает / появляется питание, raspberry не может стартовать с подключенным винтом.
Приходится вытаскивать винт из USB, запускать raspberry и только потом снова подключать винт.
Как это побороть? Чтобы после восстановления питания Raspberry нормально запускалась?
Спасибо

Добрый день! У меня чуть другой зверек. но это сути дела не меняет. в fstab монтирую флешку по дефолту. файловая система exfat. флешка тупо не хчет форматироваться в другую файловую систему. повторяю не хочет зависает при создании журнала ext4. поэтому только exfat. раздаю самбой. ресурс виден. но запись запрещена. куда рыть? 68 лет и голова не хочет отдупляться. неделю сижу. нужен тихий домашний серверок без крутилок типа харда. 2 тб ссд в продаже нет. да и затея по цене потеряет смысл.


Dmitry :

Если нет аппаратных проблем в самой флешке, то это решит проблему.


Dmitry :

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

Доброго времени суток, Хабр! Пару недель назад зачесались руки гика — захотелось мне приобрести довольно нашумевший и всем известный одноплатный мини-компьютер Raspberry Pi. Модель была выбрана самая «крутая» — версия «B» с 512Mb ОЗУ на борту.

Этот пост о другом. После всех манипуляций с настройкой захотелось попробовать машинку, так сказать, «в деле». Идея возникла практически сразу. Дома у меня имеется 3 компьютера, 2 смартфона, бюджетный роутер, и внешний жёсткий диск на 2Tb — Seagate Expansion External. Интерфейс подключения у HDD — USB. Роутер из разъёмов имеет только Ethernet и дырку для шнура электропитания. Все мои устройства соединяются с роутером только по WiFi, и ни одно не может работать в постоянном режиме. Но тут появляется Raspberry. Миниатюрные размеры платы позволяют разместить систему вида [HDD<=USB=>RPi<=Ethernet=>DIR300NRU(роутер)<=WiFi=>LAN] прямо на подоконнике и использвать диск в локальной сети, а её мизерное энергопотребление позволяет держать включенной практически постоянно. RPi работает под управлением семейства ОС Linux, а именно я на неё установил Raspbian. Казалось бы, поставить сервер samba и расшарить диск… но это было бы слишком просто. Конечная задача усложнилась: необходимо делать внешний диск доступным в локальной сети, только в том случае, если мой смартфон к этой сети в данный момент подключён, иначе диск размонтировать, тем самым снижая на него нагрузку и его энергопотребление. Значит писать будем демон, и писать будем на Python. Поехали!

Первым делом, первым делом. samba!

Сначала нужно настроить самбу и железо. Цепляем хард к Малине через USB, Малину к роутеру по Ethernet. Всё включаем в розетку. Коннектимся по SSH к RPi, я использую PuTTY под Windows в качестве клиента.
В Raspbian «из коробки» нет возможности подключить NTFS-раздел диска для записи, монтируется он только как Read-Only и не пускает к себе по локальной сети.
Не беда, сейчас установим нужный драйвер:

Дальше нам нужно знать имя раздела для монтирования, узнаём так:

И получаем примерно такой вывод:

Disk /dev/sda: 2000.4 GB, 2000398931968 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029164 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006573a

Device Boot Start End Blocks Id System
/dev/sda1 2048 409602047 204800000 83 Linux
/dev/sda2 409602048 419842047 5120000 82 Linux swap / Solaris
/dev/sda3 419842048 3907028991 1743593472 7 HPFS/NTFS/exFAT

Внешний HDD у меня имеет имя sda, раздел обзывается sda3, у вас может быть другое. Запоминаем его.
Дальше смотрим куда монтировать. По умолчанию диск автоматически монтируется в /media/Имя_тома. Я решил не заморачиваться и оставить его там. Путь к директории у меня: /media/DataR.

Теперь настраиваем сам сервер samba. Открываем файл конфигурации для записи:

Про настройку можно подробно прочитать в сети, я лишь приведу свой файл конфигурации:


Настроили? Идём дальше. Проверяем работоспособность всей конструкции. Монтируем раздел (сначала размонтируем, на всякий), перезапускаем сервер samba.

Если ошибок не наблюдается, то пробуем найти сервер в сети. Если и тут всё нормально, то идём дальше.

Пишем скрипт

Писать будем на Python. Интерпретатор нам уже доступен предустановленным на Raspbian. Я решил писать сразу в консоли:

  • Проверять, доступен ли IP в локальной сети
  • Выполнять системные команды
  • Ждать некоторое время
  • Зациклить всё это дело
Итоги

Получилось, что можно настроить абсолютно всё, а также отключить (раз)монтирование раздела. Осталось прописать на устройстве статический IP для подключения к нашей локальной сети и всё, своеобразный ключ доступа к диску готов! Для полной автоматизации можно добавить скрипт в автозагрузку при старте системы. Открываем системный файл rc.local:

И дописываем в него следующую строчку:

Путь, конечно, указываете свой.
Вот и всё, спасибо за прочтение! Это был мой первый опыт разработки под Raspberry Pi, да и под Linux вообще.

UPD1: спасибо, что подсказали насчёт перезагрузки и автозапуска, первое выкинул, второе поправил

Подключить жесткий диск к Raspberry Pi — это просто

29277

Подсоединить к Raspberry Pi HDD с USB-интерфейсом не составляет труда. У пользователей Raspbian на выполнение всех необходимых действий уйдет около 10 минут.

Как подключить USB HDD к Raspberry Pi

Вначале нужно подключить накопитель – просто вставить кабель от него в USB-разъем "Малины". Лучше делать это при отключенном питании Raspberry, но данное правило не является обязательным к исполнению.

Скорее всего жесткий диск отформатирован в NTFS. Однако в Linux по умолчанию нет поддержки данной файловой системы, но это легко преодолеть. С соответствующей целью нужно открыть консоль и из-под sudo выполнить команду apt-get install ntfs-3g. Как можно легко понять, в результате этого произойдет загрузка и последующее инсталлирование утилиты. По завершению процесса перезагрузка не потребуется – Raspbian сразу включит поддержку NTFS.

Raspberry Pi: подключение hdd

Следующее, что предполагает подключение USB HDD к Raspberry Pi через терминал – создание каталога, в который система будет монтировать внешний накопитель. Это делается командой mkdir /mnt/usbdrive. Естественно, под sudo.

После создания каталога нужно «сказать» Raspbian, что можно записывать. Для этого директории требуется назначить соответствующие права: chmod 777 /mnt/usbdrive (под sudo).

Однако после этого диск по-прежнему будет не готов для использования. Но остается все одна задача – включить автоматическое монтирование (подключение). Для этого в любом текстовом редакторе нужно открыть файл /etc/fstab (обязательно с правами суперпользователя – sudo, иначе изменения не запишутся). Далее следует установить курсор в самый конец, перевести строку и вставить следующее:

/dev/sda1 /mnt/usbdrive ntfs-3g default,rw 0 1. Внимание: между sda1 и /mnt/ находится пробел.

Вот теперь, когда выполнено все перечисленное, нужно перезагрузить Raspbian. И после ее загрузки подключенный накопитель появится в списке устройств. Также он будет исчезать при отключении и появляться при подключении.

Управление электроприборами через Raspberry Pi

Как подключить к Raspberry HDD по интерфейсу SATA

К Raspberry HDD можно подсоединять практически по любому существующему интерфейсу. Но для всех кроме USB нужны дополнительные устройства. Так, чтобы к Rasberry SATA HDD подключить, требуются:

  • специальная плата расширения;
  • кабель;
  • установочные винты.

Raspberry Pi: подключение hdd

Все перечисленное можно купить в магазинах, торгующих одноплатниками и компонентами для них. Инструкции по подключению к Raspberry Pi SATA HDD, как правило, поставляются в комплекте.

"Малина" предоставляет пользователям огромные возможности – почти такие же, как и привычные ПК. Часто, чтобы реализовать задуманное с помощью Raspberry, достаточно совсем немного денег, а также несколько десятков минут времени на то, чтобы все правильно сконфигурировать.

Zloi 2021-02-01 19:25:32

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

Илья 2020-04-30 13:28:47

Нубский вопрос - как открыть консоль? В Kodi перерыл всё - нет.
На компе стоит винда - там линуксовые команды не работают!

Volk 2019-11-27 09:37:06

очепятка, в fstab надо "defaults"

Илья 2019-09-28 18:08:34

Почему-то после данного метода подключения малина перестала загружаться, и просто выводит на экран: "cannot open access to console, the root account is locked.
See sulogin(8) man page for more details."

P1100774

В этом небольшом faq мы разберёмся, как подключить к Raspberry Pi различные накопители (USB HDD/USB Flash drive), а также как организовать к ним доступ из локальной сети.

Решил вынести эту тему в отдельную статью, так как несмотря на то, что материала немного, у многих, кто только начинает знакомиться с миром Linux с помощью Raspberry Pi, возникает множество вопросов по подключению, монтированию и работе с различными накопителями.

У Raspberry Pi нет встроенной памяти, а SD карта (на которой установлена операционная система) может быть не более 32 Гб.

Теперь, когда понятно, зачем мы хотим подключить накопитель (USB HDD/USB Flash drive) к Raspberry Pi, и разобрались, что с эти может быть не всё гладко, давайте посмотрим, как это сделать.

Подключение накопителя (USB HDD/USB Flash drive) к Raspberry Pi

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

USB-HAB, наверное, в каких-то случаях не нужен (для каких-то моделей USB HDD), но у меня без него не заработало (даже при использовании блока питания 5v, 2A). Поэтому можно пробовать и без него, но рекомендую сразу смириться с мыслью, что он понадобится. Для флешки USB-HAB не нужен.

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

Подключение к Raspberry Pi USB HDD

файл /etc/fstab

Готовый файл /etc/fstab

Настройка Samba на Raspberry Pi

3) Теперь открываем файл /etc/samba/smb.conf, удаляем всё его содержимое и вписываем следующее:

[global]
workgroup = [группа]
security = share
guest ok = yes
browseable = yes

[[название]]
path = [путь]
writeable = yes
browseable = yes

Читайте также: