Подключение к raspberry pi usb hdd usb flash drive настройка samba
Не так давно я описывал процесс установки сервера Home Assistant на Raspberry Pi и упоминал недостаток подобной системы: работающий Home Assistant может довольно быстро «убивать» microSD-карточки интенсивными операциями чтения-записи.
Выход из ситуации — установка системы на внешний HDD или SSD диск и загрузка микрокомпьютера с него.
Установка Samba
Первым делом нужно установить Samba — программу, реализующую доступ к файлам по протоколу SMB.
5 комментария на «Raspberry Pi 3. Организация сетевого доступа к файлам через Samba»
Здравствуйте Дмитрий, я настроил общий локальный доступ к каталогу, спасибо. Вопрос следующий, каким образом этот каталог можно открыть через браузер, аналогично ftp://ip:порт, я пытался реализовать с помощью установки ftp, но везде требуется ввод логина и пароля, окно авторизации убрать невозможно, анонимный доступ не работает на локальных пользователей. Еще рассматриваю последним вариантом nextcloud.
Dmitry :
Можно установить Apache / Nginx и хранить файлы в /var/www/название_каталога/. Открывать в браузере как обычный сайт.
Если нужен доступ из браузера не только на чтение, но и на запись, то можно установить на локальный веб-сервер файловый менеджер (FileRun, phpXplorer и т.п.). Все остальное аналогично предыдущему пункту.
Либо же Nextcloud.
Все верно вы написали.
Надо только перед правкой smb.conf лучше остановить самбу
sudo services samba stop
а потом запустить
все сделал как у вас,но комп и телик не видят расширенные папки.что делать?
В этой публикации из цикла статей о Raspberry Pi и Arduino я хочу рассказать о том, как правильно подключать внешние жесткие диски (USB HDD) к Raspberry Pi.
Монтирование жесткого диска обязательно потребуется, если «малину» планируется использовать для работы с контентом в домашней сети. Поэтому я хочу вынести инструкцию по монтированию HDD и флешек в отдельную статью, дабы иметь возможность ссылаться на нее в своих последующих публикациях.
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 — запуск от имени суперпользователя, /etc/fstab — путь к файлу
Для полных новичков с не установленным nano, может поставить их в тупик. Поэтому думаю стоило упомянуть про ее установку.
sudo apt-get install nano
Вот тогда редактор откроется.
За туториал спасибо!
Dmitry :
В обычном Raspbian Jessie он предустановлен по умолчанию уже). Хотя может в Lite-редакции его и нет, не проверял.
Добрый день.
У меня USB-HDD подключен к роутеру как медиахранилище.
Возможно ли подключить к нему Raspberry?
Dmitry :
А вот если роутер Xiaomi и у него какая-то хитрая система с доступом к медиахранилищу через свои приложения, то скорее всего нет.
zyxel giga II
у него на борту transmission
он качает из инета на себя всякое-разное и раздает в локальную сеть
также есть возможность включить на роутере DLNA сервер
будет через DLNA забирать?
Dmitry :
Да, будет. Но по DLNA можно получать только медийный контент. Т.е. не софт, не архивы, не документы. Фильмы, музыка, фотографии — это можно.
Если используемый жесткий диск будет отформатирован не в NTFS, а в ext4. Что изменится?
Dmitry :
Особо ничего. Только нужно будет в fstab вместо «ntfs nofail,uid=pi,gid=pi» указать «ext4 defaults».
Подозреваю, что для ext4 сойдёт и «auto defaults» :)
Здравствуйте. Есть проблема.
Сделал все как написано в статье, но все равно сети не отображается сетевое хранилище и не могу понять почему, единственное что изменил в файле /etc/fstab вместо ntfs nofail,uid=pi,gid=pi, поставил rw,force,exec,users 0 0, но пробывал оставлять и так и так все равно сеть не видит хранилище также доступ 777 сделал, ничего не помогает, может из маршрутизатора Zexel
Dmitry :
Может сетевое обнаружение в Windows отключено?
Кроме того можно зайти напрямую, введя «\\raspberrypi» (или другое сетевое имя устройства, если оно менялось) в адресной строке проводника. Там должны отобразиться расшаренные ресурсы, на них можно создать ярлыки для быстрого доступа.
А как восстановить обратно файлик fstab если распбери перестала загружаться после его редактирования?
Dmitry :
Подключить монитор и клавиатуру, и открыть файл на редактирование после того как загрузка застопорится (sudo nano /etc/fstab). Удалить добавленные строки (после которых появились проблемы с загрузкой), сохранить изменения и перезагрузиться.
Если команды в консоли не выполняются, то заново установить систему на карточку из файла образа или последнего бэкапа.
Добрый день. Подключаю жесткий диск (NTFS), ввожу команду ls -l /dev/disk/by-uuid, но среди устройств жесткого диска нет. Что может служить причиной? Питание на RPI 2 Ампера, жесткий диск пробовал кидать на USB хаб с доп. питанием, но никаких изменений нет. Спасибо
Dmitry :
Попробуйте вместо диска подключить что-то другое, например, флешку.
Так будет понятнее в чем причина, в самом диске или у вас вообще дисковые носители почему-то не определяются.
Флешки определяет нормально. Если ввести команду sudo fdisk -l, то есть какая-то инфа по поводу HDD
PS файлик fstab выглядит немного иначе, нежели у вас. У меня там нет UUID’ов
Спасибо!
Статья помогла, выполнил лишь
apt-get update
apt-get install ntfs-3g
и проблемы исчезли.
Теперь я могу сохранять файлы на внешнем носителе.
Привет,
Cпасибо за наводку про plex и hdd. Вопос скорее теоретического толка — что будет быстрее работать в контексте стриминга? Подмонтированный по smb диск, подключенный к usb роутера или диск подключенный по usb к малине?
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-порт можно через него. Других способов я не знаю, средствами самой ОС это вроде бы не делается.
Привет всем!
Сегодня решил проделать это, и есть изменения в схеме, так как эта схема не работает =//
в файле, что изменяется нужно ставить не UUID имя переменной, а PARTUUID, почему… хз)
Но есть момент, который поможет увидеть успешный результат ДО перезагрузки малинки — прописать команду: `sudo mount -a`. И если ничего не ругалось — то все ок и все работает.
после перезагрузки чтоб понять, что все точно ок — можно зайти на этот носитель
`
cd /mnt/usbstorage
ls
`
Есть проблема если внешний диск постоянно дёргать туда сюда, приходится каждый раз перегружаться чтобы система вновь его увидела.
Есть какое нибудь решение чтобы автоматически подхватывало когда диск вернулся?
Ещё заметил что при использовании transmission демона процесс mount.ntfs грузит процессор под 100%, настраивал всё по вашим гайдам. Насколько я понял из инета проблема в том, что торрент клиент постоянно делает мелкие записи, что очень нагружает проц потому как ntfs сам по себе очень ресурсо затратен под линукс. Может ли стать решением отформатировать внешний винт в exfat и полностью отказаться от ntfs, как думаете?
Dmitry :
Добрый день, если диск планируется использовать постоянно подключенным к Raspberry Pi, то действительно лучше отформатировать его в ext4 вместо NTFS.
А вот как сделать автомонтирование при переподключении USB-накопителя пока не могу ответить.
День добрый! Совсем новичок в Линуксе, поэтому объясните, если не трудно. В чем необходимость/преимущества такого монтирования через fstab по сравнению с просто подключением диска без всего?
Использую Raspberry pi 4 с Raspbian Buster. Подключил внешний жёсткий и он сразу стал доступен. Но в fstab записей никаких не появилось, конечно же. Интересно просто, что меняется при правильном монтировании? Или в Buster’e это просто уже не актуально и все монтируется автоматом как нужно?
Заранее благодарен за ответ!
Dmitry :
Здравствуйте! Buster еще не устанавливал, посмотрю.
Добрый день. Потянет ли pi3b 4 диска (2,5) подключенных по usb? или нужно организовывать для дисков отдельное питание? (остались 4 диска *500гб при переходе на ssd. хочется использовать).
Dmitry :
Добрый день.
Сомневаюсь. 2 диска без доп.питания еще может потянуть, но сразу 4 точно нет. Так что, да, нужно будет организовывать отдельное питание.
Спасибо, так и думал. Подыскиваю что можно прикупить не сильно дорогое и с доп питанием.
За статьи спасибо. Реально выручили!.
Dmitry :
Руководство обновлено, добавлено описание настройки автоматического монтирования накопителей через pmount.
Там в «sudo nano usr/local/bin/cpmount» не забываем / перед usr
Dmitry :
Точно, сейчас поправлю
Как сделать что бы устройства монтировались в папку отличную от /media/usbX/
заменил media на storage в файле cpmount, но смонтировалось все равно в папку /media/usbX/….
Давай, может быть, как-то например так перепишем скрипт монтирования? :)
for (( i=1; i do
if ! mountpoint -q /media/$MPOINT_NAM_TAMPL$i
then
/usr/bin/pmount —umask 000 —noatime -w —sync $1 $MPOINT_NAM_TAMPL$i
break
fi
echo No available mountpoints
done
День добрый.
raspberry pi 4. По USB подключаем винт NTFS и он прекрасно опознается.
Только когда пропадает / появляется питание, raspberry не может стартовать с подключенным винтом.
Приходится вытаскивать винт из USB, запускать raspberry и только потом снова подключать винт.
Как это побороть? Чтобы после восстановления питания Raspberry нормально запускалась?
Спасибо
Добрый день! У меня чуть другой зверек. но это сути дела не меняет. в fstab монтирую флешку по дефолту. файловая система exfat. флешка тупо не хчет форматироваться в другую файловую систему. повторяю не хочет зависает при создании журнала ext4. поэтому только exfat. раздаю самбой. ресурс виден. но запись запрещена. куда рыть? 68 лет и голова не хочет отдупляться. неделю сижу. нужен тихий домашний серверок без крутилок типа харда. 2 тб ссд в продаже нет. да и затея по цене потеряет смысл.
Dmitry :
Добрый день. Я бы предложил отформатировать флешку из Windows. Системная утилита в ext4 не форматирует, но есть много программ, которые это умеют — PartitionGuru, Partition Assistant и т.п.
Если нет аппаратных проблем в самой флешке, то это решит проблему.
Добрый день.
Использую Raspberry pi 4. Установлено Volumio и подключена USB флешка, на которой имеется
плейлист m3u для Web радио Radio Caprice.
Как правильно указать URL этого плейлиста: 192.168.1.39… и что написать далее?
Dmitry :
Добрый день, я не пользовался Volumio. Думаю, что надо посмотреть в документации по системе как вообще в нее подгружаются плейлисты. Думаю, что там есть какие-то стандартные папки для хранения медиафайлов, и нужно либо менять пути к ним, либо размещать файлы по этим стандартным путям.
Заключение
Легкость перевода Raspberry Pi на загрузку с USB-накопителей — еще один довод за покупку микрокомпьютеров именно этой линейки.
Буквально 10 минут работы позволяют в разы повысить надежность системы, отказавшись от использования карточек памяти с ограниченным ресурсом в пользу твердотельных накопителей или обычных HDD.
19 комментария на «Raspberry Pi. Загрузка с USB-накопителя»
Цитата:
Для нужно загрузиться в Raspberry Pi OS с microSD-карты и добавить строчку с командой в файл config.txt:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
====================================================
А если открыть /boot/config.txt непосредственно в корне SD-карты и записать в него данную команду? Так возможно?
Dmitry :
Да, так тоже можно
Народ, растолкуйте, пож-та, как RPI 4 найдёт, с какого партишна внешнего диска грузиться?
Dmitry :
При записи образа системы всегда создается раздел /boot, загрузка происходит с него.
Спасибо за ответ. Но как быть, если я хочу записать ещё одну систему (типа добавить ubuntu к rasbian), то надо, кроме копирования ubuntu на новый раздел с помощью dd, ещё и его /boot переписать? У меня, кстати, /sda1 смонтирован на /boot, но он не совсем boot:
e2label: Bad magic number in super-block while trying to open /dev/sda1
/dev/sda1 contains a vfat file system labelled ‘BOOT’
Dmitry :
Вот тут не смогу ответить, ни разу еще не пробовал настраивать мультизагрузку.
Помучившись, выяснил, что .img файлы, поставляемые ubuntu, являются образом всего диска, как Вы и написали, и содержат в себе 2 раздела — fat с именем system-boot и ext4 writable.
Как я понимаю, записывать их можно с помощью dd, но на весь диск ( типа /dev/sdc ), а не на partition (dev/sdc1). Мне этот вариант не подошёл, и удалось найти (накопать) другое решение — с помощью fdisk -lu узнать структуру файла .img, а потом mount -t [vfat,ext4] -o loop,offset=?,sizelimit=? обеспечивает доступ к каждому разделу отдельно.
Я пока только в начале пути, так что больших подробностей об этом пока не знаю. Спасибо за помощь!
а попробуй как нибудь установить загрузчик grub чтоб можно было выбирать на какую ос загружаться
Вопрос — а если мне надо, чтобы на этом диске кроме /boot и / (16G) был ещё раздел в формате NTFS/FAT32 (484G, чтобы можно было читать-писать в Win10)? Будет ли он тоже читаться? По умолчанию, на USB можно подсоединять любые диски, в том числе и NTFS/FAT32, и они будут читаться как внешние в /media/pi/имя_диска. А вот при загрузке с USB-диска куда будет подключен новый раздел?
Dmitry :
Не проверял, но наверняка также в /media/.
А как быть, если имеется установленная и настроенная система на карте памяти и не хочется её переустанавливать? Как перенести систему с карты памяти на USB-SSD, отказавшись полностью от карты памяти?
Dmitry :
Полностью скопировать содержимое карты памяти на SSD. Можно воспользоваться для этого утилитой dd, только пути к смонтированным устройствам надо будет поменять на правильные.
А как использовать все пространство жесткого диска, если образ который сняли с флешки гораздо меньше объема диска, диск при записи образа становится объемом как та флешка, с которой сняли образ?
Dmitry :
Расширить его через Raspberry Pi Software Configuration Tool:
В Advanced Options надо выбрать выбрать пункт Expand Filesystem.
Спасибо, для 3b+ проблем с переносом ОС на жесткий диск не возникло, а вот 3b ни как не получается запустить с диска…. все манипуляции уже провел. На 3b установлен Home Assistant.
Вы озабачивались функцией TRIM при переезде на SSD?
Dmitry :
В отсутствие интенсивных процессов создания-удаления файлов TRIM не нужен. Если сохранять не менее 20% свободного дискового пространства, то контроллер SSD и без TRIM эффективно проводит процедуры обслуживания.
В этом небольшом faq мы разберёмся, как подключить к Raspberry Pi различные накопители (USB HDD/USB Flash drive), а также как организовать к ним доступ из локальной сети.
Решил вынести эту тему в отдельную статью, так как несмотря на то, что материала немного, у многих, кто только начинает знакомиться с миром Linux с помощью Raspberry Pi, возникает множество вопросов по подключению, монтированию и работе с различными накопителями.
Итак, у нас уже есть Raspberry Pi с настроенной и готовой к работе операционной системой (Raspbian), если нет — то Вам стоит сначала подготовиться и прочитать — «Raspberry Pi — подключение (установка ОС, настройка)«.
Сначала давайте разберёмся, зачем что-то подключать к Raspberry Pi, и почему всё так сложно (а не как в Windows — подключил и всё работает). Поэтому вначале немного теории:Показать→
У Raspberry Pi нет встроенной памяти, а SD карта (на которой установлена операционная система) может быть не более 32 Гб.
Представим, что мы хотим организовать небольшое домашнее сетевое хранилище и хранить там музыку, фильмы, фото и прочую информацию — тогда 32 Гб будет не достаточно, для таких целей придётся подключать к Raspberry Pi внешний жесткий диск (USB HDD).
Или другая ситуация — у нас есть флешка с программным обеспечением, которое необходимо установить на N компьютеров, соединённых в локальную сеть. Можно просто поочерёдно подключать флешку к каждому компьютеру и устанавливать, но это не очень удобно. А можно подключить флешку к Raspberry Pi, настроить к ней доступ по локальной сети и выполнить установку программного обеспечения на каждый компьютер, подключив флешку как сетевой диск — такой способ сэкономит массу времени и сил.
Но всё не так просто — при подключении флешки или внешнего жесткого диска к Raspberry Pi само ничего не появится и не заработает. Есть свои особенности: во-первых, для работы с файловыми системами HFS+, NTFS нужно отдельно инсталлировать необходимые компоненты (в Raspbian изначально их нет), во-вторых, для работы с накопителем его нужно куда-нибудь смонтировать (то есть указать путь, по которому накопитель будет доступен, а также указать, как будет доступен — например, только для чтения или для чтения и записи).
Теперь, когда понятно, зачем мы хотим подключить накопитель (USB HDD/USB Flash drive) к Raspberry Pi, и разобрались, что с эти может быть не всё гладко, давайте посмотрим, как это сделать.
Настройка Samba
Для настройки сервера Samba необходимо сделать две вещи: задать пользовательский пароль и отредактировать файл конфигурации.
Начнем с пароля:
Этой командой мы задаем пароль для пользователя pi, с которым можно будет получить доступ к расшаренным на Raspberry Pi ресурсам по SMB-протоколу.
Можно обойтись и без пароля, расшарив ресурсы для гостевого доступа. Но я рекомендую гостевой доступ не открывать, а пароль все-таки установить.
Пароль установлен, теперь надо отредактировать файл конфигурации:
В этом файле нас в первую очередь интересует группа параметров [global]. В нее нужно добавить следующие строки:
Заголовок [global] повторно писать не нужно, нужно просто добавить 4 строки под имеющийся заголовок.
Также нужно уделить внимание уже прописанному в [global] параметру:
В нем указывается название рабочей группы, в которую входят объединенные в локальную сеть компьютеры. По умолчанию имя рабочей группы так и указывается WORKGROUP и трогать этот параметр не нужно. Но если у вас рабочая группа названа как-то нестандартно, то нужно изменить этот параметр, вписав вместо WORKGROUP ее правильное название.
Теперь прописываем ресурсы для расшаривания. Следующие строки нужно вписать в самый конец файла, вместе с заголовком в квадратных скобках:
Эти строки создают ресурс, который будет виден (browseable = yes) в сетевом размещении под названием usbstorage ([usbstorage]) и доступен для записи (writeable = yes, read only = no), и находящийся на Raspberry Pi по пути /mnt/usbstorage.
Можно сделать несколько отдельных шар, прописав в конфиге несколько ресурсов с отдельными [названиями] и указав в каждом свой /путь/до/нужной/директории.
При этом нужно убедиться, что у пользователя, под которым мы будем логиниться по SMB-протоколу, есть права доступа к этим файлам. Если нет — их нужно задать:
Можно открыть гостевой доступ, прописав его следующим образом:
Все это вопрос удобства и личных предпочтений.
Мне было удобнее расшарить весь диск целиком, сделав доступ к нему доступным по паролю.
Закончив редактировать конфигурацию Samba, перезагрузим Raspberry Pi для применения изменений:
И проверим работоспособность введенных параметров.
Открываем «Сетевое окружение», находим в нем свою Raspberry Pi:
Вводим заданный пароль для пользователя pi:
Если пароль введен верно, то видим расшаренные ресурсы.
Первый из них — корневая директория пользователя, она расшарена по умолчанию и только для чтения. Второй — жесткий диск:
Все работает, файлы доступны для просмотра и изменения, значит все сделано правильно.
Вариант 2. Автоматическое монтирование через pmount
При использовании данного способа все подключаемые к «малинке» USB-накопители будут монтироваться автоматически.
Для этого нам потребуется установить утилиту pmount:
Затем создадим файл с правилами монтирования накопителя:
И впишем в него следующую строку:
Затем создадим новый сервис:
Впишем в него следующее содержимое:
Создадим файл скрипта для монтирования:
Со следующим содержимым:
Сделаем скрипт исполняемым:
После этого все подключаемые к системе устройства будут автоматически монтироваться по адресам /media/usbX/, где X — порядковый номер устройства.
Вариант 1. Установка из репозитория
Samba имеется в стандартных репозиториях, поэтому установка заключается в выполнении одной единственной консольной команды:
После чего остается только подождать минуту-другую пока скачаются и распакуются все необходимые файлы, и можно приступать к настройке серверного модуля.
Вариант 1. Монтирование USB HDD через fstab
fstab — конфигурационный файл, в котором описывается каждое из подключенных к компьютеру устройств хранения информации.
Добавлением строк в этот файл в *nix-системах совершается монтирование жестких дисков и других устройств.
Структура записей fstab выглядит так:
Наша цель — в правильной форме создать и записать строку для монтирования подключенного по USB жесткого диска (или флешки).
Для начала найдем нужное нам значение для жесткого диска. Для этого при подключенном жестком диске нужно выполнить команду:
В ответ на которую мы увидим нечто примерно такое:
Строка с /sda1 — наш жесткий диск. А написанное синим шрифтом — это как раз то, что мы ищем. Копируем эти символы куда-нибудь.
Теперь создадим точку монтирования:
Я решил, что мой смонтированный жесткий диск будет доступен по пути /usbstorage, но этот параметр может быть любым.
Ничто не мешает назвать точку монтирования /hdd1, /500gb, /media, /data или любым другим ранее не задействованным именем.
Название точки монтирования — это наше будущее значение в структуре записи fstab.
Теперь разбираемся со значением .
Поле — тут нужно будет указать файловую систему, в которой отформатирован наш накопитель. Если мы ранее пользовались Windows, то скорее всего жесткий диск отформатирован в NTFS. Менее вероятно — FAT32. Практически невероятно — EXT4 и другие применяемые в *nix-системах файловые системы.
Если ошибиться в указании файловой системы монтируемого жесткого диска, то это гарантированно приведет к ошибке во время загрузки Raspbian.
Далее идут опции монтирования (). Они перечисляются через запятую. Рекомендую просто написать как у меня: «nofail,uid=pi,gid=pi».
И последними в структуре идут и .
Первый используется утилитой dump для создания резервных копий. Этот параметр нужно выставить «0».
Второй определяет приоритет, с которым утилита для сканирования и исправления ошибок fsck будет приступать к сканированию данного диска. Значением этого параметра может быть «0», «1» или «2», где «1» и «2» — приоритеты, а «0» — отключение. Я выставил «0», но можно поставить и «1» — особо это ни на что не влияет.
Таким образом, у меня формируется следующая строка для добавления в fstab:
Набор символов после UUID= нужно вставить свой, остальную часть строки можно использовать в таком виде без изменений.
Вставляем строку в fstab и сохраняем его:
Вопросы и ответы по настройке
- Вопрос: «Я хочу подключаться к WEB-интерфейсу удалённо, например, с работы. Что для этого нужно?«
Для удалённого подключения нужно:
- подключить услугу внешнего IP-адреса (эту услугу нужно подключать у интернет провайдера) ;
- если используете роутер, нужно настроить на нём переадресацию портов, а именно пробросить 80 порт на локальный IP-адрес, который получает Raspberry Pi.
- Вопрос: «Вводить каждый раз после IP-адреса приставку «rutorrent» долго и неудобно, как можно это обойти?«
- Вопрос:»Всё настроил, всё работает — файлы скачиваются, но почему-то совершенно нет отдачи. В чём тут может быть дело?«
Всё очень просто: для того чтобы шла отдача, нужно прокинуть порт TCP 40890 (на локальный IP-адрес Raspberry Pi).
- Вопрос: «Я настроил удалённый доступ, но получается, что на WEB-интерфейс rTorrent может зайти кто угодно, как можно ограничить доступ?«
Теперь установим пароль для доступа к WEB-интерфейсу:
1) создаём в папке с ruTorrent (var/www/rutorrent) файл с именем «.htaccess»;
2) в файле «.htaccess» пишем следующее:
В первой строке путь должен быть вида — «путь_до_rutorrent/htpasswd».
3) Теперь переходим в папку с rutorrent:
Где «логин» — имя пользователя для доступа к WEB-интерфейсу (нужно использовать латинские буквы).
После ввода команды нужно будет придумать пароль (в консоли появится строка «New password:») — вводим пароль два раза.
Еще один небольшой шаг к освоению Raspberry Pi заключается в настройке сетевого доступа к размещенным на ней файлам.
Сетевой доступ к файлам организовывается по SMB-протоколу, для чего нужно установить на микрокомпьютер пакет Samba и настроить серверную часть. Необходимые для этого действия займут буквально несколько минут времени.
Установка прав доступа
В завершении процедуры монтирования жесткого диска нужно выставить права доступа:
777 — полный доступ на чтение, запись и запуск файлов для всех пользователей. Рискованное с позиции безопасности разрешение, но гарантированно беспроблемное.
Если «малина» находится в домашней сети, то ничего страшного от выставления полного доступа для всех к примонтированному к ней жесткому диску не произойдет. Но в локальных сетях на предприятиях и на интернет-серверах полный доступ к файлам выставлять нельзя.
На этом процесс монтирования можно считать завершенным и остается только перезагрузить систему:
Активация загрузки с USB на Raspberry Pi 2 / 3
Для появления возможности загрузки с USB-накопителей на Raspberry Pi 3 нужно активировать опцию USB Boot Mode путем внесения значения в OTP-память.
Для нужно загрузиться в Raspberry Pi OS с microSD-карты и добавить строчку с командой в файл config.txt:
А затем перезагрузить систему:
Во время следующей загрузки команда будет обработана и пропишет активирующее возможность загрузки с USB-дисков значение в OTP-память микрокомпьютера. Данная операция необратима. Но волноваться по этому поводу не стоит: активация USB Boot Mode не лишит вас возможности запускать «малинку» с microSD-карты, а всего лишь добавит новую опцию, которая активна по умолчанию в более свежих моделях микрокомпьютера.
Также обращу внимание, что из config.txt строка program_usb_boot_mode=1 сама по себе никуда не денется, поэтому после перезагрузки ее желательно оттуда удалить.
Подключение накопителя (USB HDD/USB Flash drive) к Raspberry Pi
Итак, у нас появилась необходимость подключить внешний жёсткий диск (USB HDD) или флешку (USB Flash drive) с файловой системой NTFS или HFS+ к Raspberry Pi. Не смотря на большое количество подводных камней, подстерегающих новичка в этом нелегком деле, на самом деле, если делать пошагово — всё достаточно просто, главное ничего не пропустить.Показать→
Что нам понадобится:
- внешний жёсткий диск (USB HDD) или флешка (USB Flash drive);
- настроенный и готовый к работе, подключённый к сети Интернет Raspberry Pi (см. «Raspberry Pi — подключение (установка ОС, настройка))»;
- USB-HAB с внешним блоком питания (если подключаете USB HDD).
USB-HAB, наверное, в каких-то случаях не нужен (для каких-то моделей USB HDD), но у меня без него не заработало (даже при использовании блока питания 5v, 2A). Поэтому можно пробовать и без него, но рекомендую сразу смириться с мыслью, что он понадобится. Для флешки USB-HAB не нужен.
Давайте приступим, все действия производятся через консоль, удобно делать, подключившись по SSH:
1) Подключаем USB HDD (USB Flash drive) к Raspberry Pi. Вводим команду «sudo blkid», чтобы посмотреть, как определился диск.
Результат ввода команды «sudo blkid»
У меня диск называется «My Passport», он отображается последним в списке. UUID — это уникальный идентификатор накопителя, его сразу можно сохранить куда-нибудь в блокнот (дальше он нам ещё пригодится), «TYPE» — это файловая система, в нашем случае NTFS.
2) Устанавливаем поддержку файловой системы. Если у Вас также NTFS, вводим «sudo apt-get install ntfs-3g» (если у Вас файловая система HFS+ (TYPE=»hfsplus»), то вводите «sudo apt-get install hfsplus hfsutils hfsprogs»). Ждём, пока пакет загрузится и установится (порядка 2х минут).
3) Создаём каталог, куда будем монтировать диск (можете создать там, где Вам удобно). У меня точка монтирования будет media/hdd, вводим в терминале «sudo mkdir /media/hdd».
4) Теперь открываем файл /etc/fstab и в конце дописываем команду «UUID=»***» /media/hdd ntfs-3g rw,force,exec,users 0 0″, где *** — это UUID Вашего диска (его мы смотрели в пункте 1). Должно получиться, как на скриншоте ниже, только UUID должен быть Вашего диска.
Готовый файл /etc/fstab
Файл можно отредактировать с помощью WinSCP (см. «Raspberry Pi — подключение (установка ОС, настройка)) или прямо из консоли — открываем файл для редактирования «sudo nano /etc/fstab», дописываем команду и для сохранения жмём сочетание клавиш «Ctrl+O», а после — «Enter» и «Ctrl+X» для перехода в консоль.
5) Перезагружаемся. Для этого вводим в консоли «sudo reboot». И проверяем результат — файлы и каталоги Вашего диска должны быть доступны в /media/hdd (или в том каталоге, который Вы создали в пункте 3).
Загрузка
Извлекаем из Raspberry Pi microSD-карточку с системой, подключаем к USB наш внешний диск и подаем питание.
Начнется загрузка с внешнего диска и через десяток-другой секунд система будет готова к работе.
Важный момент №1: При подключении внешнего жесткого диска потребляемая Raspberry Pi 4 мощность возрастает. Чтобы не столкнуться с нехваткой мощности для полноценной работы микрокомпьютера заранее позаботьтесь о наличии хорошего блока питания и качественного кабеля.
Важный момент №2: В некоторых случаях Raspberry Pi 4 может некорректно грузиться с подключенных к порту USB 3.0 накопителей. Если операционная система не стартует более минуты или пытается войти в Emergency Mode — переподключите жесткий диск в любой из портов USB 2.0. Да, скорость передачи данных по USB 2.0 будет ниже, зато работать будет надежнее.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Установке и настройке Raspbian на Raspberry Pi 3 посвящена статья «Raspberry Pi 3. Обзор и начало работы». В этой статье подразумевается, что OS Raspbian уже установлена и готова к работе.
Добавление в Raspbian поддержки NTFS
Скорее всего, используемый жесткий диск будет отформатирован в NTFS.
В OS Raspbian нет поддержки NTFS «из коробки», поэтому нужно установить соответствующий пакет:
После этого можно приступить непосредственно к монтированию HDD.
Настройка Samba на Raspberry Pi
Теперь к нашему Raspberry Pi подключен накопитель, и хотелось бы, чтобы доступ к нему имели все компьютеры локальной сети. Давайте посмотрим, как это настроить:Показать→
1) Первым делом нужно обновить установленные пакеты и список доступных — вводим «sudo apt-get update» (ждём, пока завершится процесс), затем вводим «sudo apt-get upgrade», далее при запросе соглашаемся продолжить и ждём завершения процесса.
2) Теперь установим сервер Samba, для этого в терминале вводим «sudo apt-get install samba samba-common-bin», при запросе — соглашаемся продолжить установку.
3) Теперь открываем файл /etc/samba/smb.conf, удаляем всё его содержимое и вписываем следующее:
[global]
workgroup = [группа]
security = share
guest ok = yes
browseable = yes
[[название]]
path = [путь]
writeable = yes
browseable = yes
Где [группа] — рабочая группа (на всех компьютерах локальной сети она должна быть одна), скорее всего у Вас WORKGROUP; [название] можете задать любое (латинскими буквами); [путь] — путь до каталога, который хотите сделать доступным. Доступ к серверу будет осуществляться без авторизации.
Файл /etc/samba/smb.conf, без авторизации
Если хотите сделать авторизацию (при подключении к серверу будет запрашиваться логин и пароль), то вместо строк «security = share» и «guest ok = yes» напишите «security = user».
Файл /etc/samba/smb.conf с авторизацией
Сохраняем файл с конфигурацией сервера и переходим к следующему шагу.
4) Перезапускаем сервер Samba командой «sudo /etc/init.d/samba restart». Если Вы решили, что для доступа к Вашему серверу будет требоваться авторизация, то нужно создать пользователя. Для этого вводим команду «sudo smbpasswd -a [имя]», где [имя] — это имя пользователя. После будет запрошен пароль (его нужно ввести 2 раза).
5) Теперь осталось подключить сетевой диск. Заходим в «Компьютер», сверху выбираем «Компьютер» и «Подключить сетевой диск»
Выбираем «Подключить сетевой диск»
В появившемся окне жмём обзор и выбираем нашу папку, жмём «OK», далее «Готово». Если у Вас включена авторизация, при выборе папки будет запрошен логин и пароль.
Выбираем нужную папку
Всё, теперь у нас помимо жёстких дисков появился ещё один. Аналогично его можно подключить ко всем компьютерам локально сети.
Сетевой диск подключен
Настройки приведены на примере Windows 8, но на предыдущих версиях логика подключения такая же, думаю, что вы без труда разберётесь.
В прошлых статьях мы с Вами уже разобрались, как установить операционную систему, совершить первоначальную настройку и подключить внешний HDD к Raspberry PI. Пришло время для первого проекта, который сможет приносить реальную пользу и сделать жизнь чуть удобней. В этой статье мы разберёмся, как превратить Raspberry в torrent-качалку с удобным управлением через WEB-интерфейс с помощью rTorrent. Пара слов о том, зачем вообще всё это нужно. Я думаю, многие из нас загружают различные файлы по средством различных Torrent-клиентов, и, думаю, все сталкиваются с рядом неудобств :
- компьютер должен быть постоянно включен, а если качается что-то очень объемное — это может занять значительное время;
- для того, чтобы поставить файл на загрузку, нужно находиться за компьютером;
- файлы скачиваются на конкретный компьютер, и чтобы получить к ним доступ с другого устройства — нужно придумывать какие-то дополнительный решения.
Думаю, каждый может добавить ещё пару пунктов в зависимости от индивидуальных потребностей. Согласитесь, было бы круто иметь отдельное, бесшумное устройство, которое будет круглосуточно раздавать/скачивать файлы по протоколу Torrent, к которому можно легко подключиться с любого другого устройства для доступа к скаченной информации, и к которому можно получить удалённый доступ через браузер (для того, чтобы, например, поставить что-то на загрузку). И всё это мы можем получить с помощью Raspberry PI.
Конечный выбор пал на rTorrent, так как подобные Torrent-клиенты, которые я перепробовал, работали менее стабильно. rTorrent работает действительно стабильно и под достаточно высокой нагрузкой+имеет удобный, функциональный WEB-интерфейс на русском языке и множество плагинов, расширяющих функционал.
rTorrent в рабочем состоянии
- Установить OS на Raspberry PI, настроить доступ к сети Интернет, желательно для удобства работы настроить SSH ( как всё это настроить, читайте в статье «Raspberry Pi — подключение (установка ОС, настройка)«).
- Подключить к Raspberry внешний накопитель, например, HDD-USB и настроить к нему доступ по локальной сети (как это сделать, читайте тут — «Подключение к Raspberry Pi USB HDD/USB Flash drive + настройка Samba«).
Подключаемся к Raspberry PI по SSH и поехали:
1) Как обычно, первым делом обновим список установленных и доступных пакетов:
Ждём завершения процесса и далее вводим:
Когда появится запрос хотим ли мы продолжить, естественно соглашаемся. Теперь набираемся терпения и ждём, процесс займёт некоторое время.
2) Устанавливаем rTorrent с помощью незатейливой команды:
Когда будет запрос хотим ли продолжить — соглашаемся.
3) Создадим папку, куда будут загружаться файлы. Я буду их качать на подключённый USB-HDD, поэтому папку создаю на нём:
И папку, где будет храниться информация о закачках:
4) Теперь переходим в домашнию папку пользователя, под которым будет работать rTorrent (у меня это /home/pi), и создаём в ней файл «.rtorrent.rc» . В нём будут содержаться настройки.
В моём файле «.rtorrent.rc» указаны следующие настройки, и с ними всё замечательно работает:
«download_rate»/»upload_rate» — скорость загрузки/скачивания в килобайтах. Если установть «0» — скорость будет не ограничена.
«directory»/»session» — указываем директории, куда будут загружаться файлы, и где будет храниться информация о закачках (мы их создали в пункте №3).
Полное описание настроек, которые может содержать файл смотрите по ссылке — ссылка. Но экспериментальным путём пришёл к тому, что приведенные настройки оптимальны для стабильной работы rTorrent на Raspberry Pi.
5) Настроим автозагрузку (чтоб rTorrent автоматически начинал работать при включении Raspberry).
Устанавливаем Screen для работы торрент-клиента в фоне:
Теперь загрузим скрипт для автозагрузки rTorrent:
Если файл не скачивается, то просто скачайте файл «rtorrent» (ссылка) и файл «rtorrentInit.sh» (ссылка). После загрузки скопируйте в /etc/init.d/. В фале «rtorrent», в строке USERNAME=»pi», вместо «pi» укажите пользователя (если требуется).
+ Ссылка на скрип автозагрузки и инструкция есть в комментарии от Виталия (от 17.06.2014 в 23:42).
Если скрипт загрузился — отредактируем его для корректной работы. Для этого открываем файл /etc/init.d/rtorrent и в строке user=»user» в кавычках пишем пользователя, под которым всё будет работать. В моём случае будет user=»pi».
Теперь добавим скрипт в автозагрузку и запустим:
6) Приступим к настройке WEB-интерфейса. Первым делом ставим Apache и необходимые для работы WEB-интерфейса компоненты:
При запросах хотим ли продолжить,конечно же, соглашаемся продолжать. Если при установке PHP появится запрос на удаление пакета «apache2-mpm-worker» — соглашаемся.
Отредактируем файл /etc/apache2/apache2.conf — в самом конце файла нужно добавить строку — «SCGIMount /RPC2 127.0.0.1:5000».
7) Самое время установить WEB-интерфейс. Интерфейсов для rTorrent великое множество, мне больше всего понравился ruTorrent.
Для начала устанавливаем Subversion:
Теперь загрузим ruTorrent:
Выставим права на папку:
И момент истины, запускаем:
Во общем-то и всё, можно начинать пользоваться. Управление интуитивно понятно, всё на русском языке — поэтому дополнительно процесс управления описывать не буду. Если будут вопросы — разумеется, подсскажу — пишите в комментариях.
Заключение
Вот таким образом за несколько минут настраивается сетевой доступ к размещенным на Raspberry Pi файлам.
Сетевой доступ обязательно нужно настроить в случае, если Raspberry Pi 3 будет использоваться в качестве домашнего сервера. Да и в остальных случаях сделать это будет не лишним.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Процесс установки и настройки Raspbian описан в статье «Raspberry Pi 3. Обзор и начало работы».
Подключение жесткого диска к Raspberry Pi описано в статье «Правильное монтирование USB HDD и флешек».
Вариант 2. Сборка из исходников
Добавлено: 16 мая 2020 года
В некоторых случаях требуется установить более свежую версию Samba по сравнению с доступной в стандартных репозиториях.
Шаг 1. Скачаем и распакуем архив с дистрибутивом:
И удалим установленный пакет samba, если до этого утилита уже устанавливалась из репозитория:
Шаг 2. Установим необходимые для сборки пакеты:
ВНИМАНИЕ: это не универсальный список нужных пакетов, требования к нему могут немного различаться в зависимости от используемого дистрибутива Linux. Поэтому если на этапе конфигурации и сборки возникают ошибки, то нужно обратиться к справочной документации на этой странице и посмотреть требования для своей системы.
Шаг 3. Перейдем в папку с распакованным дистрибутивом:
И начнем конфигурирование:
Скрипт конфигурации может ругаться в процессе работы, что ему не удалось что-то найти. Это нормально, главное чтобы процесс конфигурации завершился без ошибок. Если ошибки возникли — возвращаемся к предыдущему шагу, читаем документацию и доустанавливаем недостающие пакеты, после чего запускаем скрипт со всеми параметрами заново.
Шаг 4. Сборка и установка
Запустим сборку пакета:
После завершения процесса запустим установку:
Шаг 5. Запуск Samba
И убедимся, что он заработал:
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Хорошая новость — все свежие модели микрокомпьютеров линейки Raspberry Pi «из коробки» поддерживают загрузку с USB-накопителей. И только на старых моделях эту возможность нужно активировать вручную.
Установка системы
Установка операционной системы для Raspberry Pi на USB-накопитель ничем принципиально не отличается от установки на microSD-карту: нам все также потребуется скачать образ нужной системы и записать его на подходящий диск.
Удобнее всего использовать для этого специальную утилиту Raspberry Pi Imager, доступную под Windows, Ubuntu и macOS. В отличие от универсальных приложений для записи образов (Rufus, Win32DiskImager, balenaEtcher и т.п.), она может работать не только с локально хранящимися файлами, но и выкачивать нужный образ с сайта Raspberry Pi Foundation прямо в процессе записи.
Выбираем нужный образ из списка:
Выбираем накопитель для записи:
И дожидаемся окончания процесса:
На этом все. Но если в дальнейшем планируется использовать Raspberry Pi в headless-режиме, то стоит сразу закинуть в корень получившегося загрузочного диска пустой файл с названием «ssh» без расширения. А если для подключения к сети будет использоваться беспроводной интерфейс, то туда же в корень нужно добавить файл wpa_supplicant.conf с данными для подключения к точке доступа:
Заключение
Если с самого начала разобраться в процессе монтирования устройств в *nix-системах, то процесс подключения USB HDD к Raspberry Pi займет не более 5 минут.
Читайте также: