Как создать NAS-сервер с помощью Raspberry Pi и Samba

Сетевое устройство хранения данных (NAS) позволяет получать доступ к файлам по локальной сети, и вы можете дешево собрать такое устройство на базе Raspberry Pi. Процесс настройки проще, чем вы думаете, и я готов помочь вам в этом.

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

Прежде чем начать, давайте соберем все необходимые компоненты. Очевидно, что вам понадобится Raspberry Pi. Для более быстрой передачи файлов идеально подходят Pi 5 или Pi 4, но Pi 3 тоже подойдет. Также вам понадобится карта памяти microSD (минимум 32 ГБ) с полностью обновленной ОС Raspberry Pi.

Хотя технически вы можете использовать SD-карту для хранения файлов, гораздо лучше приобрести внешнее устройство хранения. Для долгосрочного архивирования файлов лучше всего подходят жесткие диски, но вы также можете использовать внешний SSD или даже USB-накопитель.

Если вы серьезно относитесь к защите данных, стоит подумать об использовании нескольких дисков в конфигурации RAID, которая зеркально хранит данные на разных дисках, защищая их от сбоев.

Настройка Samba

1. Подготовьте хранилище

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

Если вы создаете папку на системной SD-карте (что я не рекомендую делать), вы можете просто выполнить следующую команду для создания каталога:

mkdir /home/pi/nas-storage

Чтобы использовать внешний диск (рекомендуемый подход), вам нужно отформатировать его с помощью подходящей файловой системы. Я рекомендую ext4 для наилучшей совместимости с Linux. Запустите Терминал и выполните команду:

sudo fdisk -l

Просмотрите вывод и найдите диск, который вы хотите использовать для NAS (скорее всего, это будет sda или sda1, но может быть и sdb или sdb1, если у вас подключено несколько дисков). Определив нужный диск, запмните его имя – оно понадобится для следующей команды, которая размонтирует диск, чтобы его можно было отформатировать (замените NAME на то, что вы нашли в выводе команды выше):

sudo umount /dev/NAME

Теперь настало время форматирования. Следующая команда удалит все данные на диске, поэтому дважды проверьте, правильное ли устройство вы используете. Когда все готово, можно вводить команду (не забудьте заменить NAME на имя устройства, которое вы записали ранее):

sudo mkfs -t ext4 /dev/NAME

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

sudo e2label /dev/NAME YOURLABEL

Замените NAME на идентификатор диска, а YOURLABEL – на желаемую метку. Теперь давайте смонтируем диск, чтобы можно было его использовать:

sudo mkdir -p /mnt/nas-storage
sudo mount /dev/NAME /mnt/nas-storage

После этого неплохо было бы перезагрузиться, так что вводите:

sudo reboot

2. Установите Samba

Теперь, когда наше хранилище готово, нам нужен способ, чтобы другие устройства могли получить к нему доступ по сети. Здесь на помощь приходит Samba. Это фантастическое программное обеспечение, которое обеспечивает совместный доступ к файлам между машинами Linux и Windows (и да, Mac тоже!).

Мне нравится использовать Samba, потому что она надежна и может быть установлена с помощью одной команды:

sudo apt install samba samba-common-bin

Эта команда загрузит и установит все необходимое для базового обмена файлами. После завершения установки Samba автоматически запустится как служба в фоновом режиме, но мы еще не закончили, потому что нам еще нужно настроить ее на использование устройства хранения данных, которое мы подготовили в шаге 1.

3. Настроить Samba

Теперь нам нужно указать Samba, к чему мы хотим предоставить общий доступ в нашей сети, отредактировав ее конфигурационный файл. Вы можете получить доступ к файлу конфигурации Samba, выполнив команду:

sudo nano /etc/samba/smb.conf

Как только вы войдете, прокрутите файл вниз и добавьте несколько дополнительных строк, чтобы указать Samba, что вы хотите предоставить общий доступ. Это должно выглядеть примерно так:

[sambadrive]
path = /mnt/nas-storage
writeable=Yes
read only=no
create mask=0777
directory mask=0777
public=no

Вот что делает каждая настройка:

  • [sambadrive] – это имя нашего NAS, которое будут видеть другие устройства в сети.
  • path указывает на место, куда мы смонтировали наш диск.
  • writeable = yes позволяет пользователям изменять файлы.
  • create mask и directory mask задают права доступа к файлам.
  • public = no означает, что пользователям нужен пароль для подключения.
  • browseable = yes делает общий ресурс видимым в сетевых браузерах.

На этом работа с файлом конфигурации закончена! Нажмите Ctrl + O и Enter, чтобы сохранить (на всякий случай!), а затем Ctrl + X, чтобы закрыть файл.

4. Создайте пользователя Samba

Далее вам нужно будет создать имя пользователя/пароль Samba. Пользователь Raspberry Pi по умолчанию называется просто pi, так что с ним будет проще. Введите следующую команду:

sudo smbpasswd -a pi

Это создаст пользователя Samba с именем pi и паролем. Вам будет предложено ввести пароль. Введите его, нажмите Enter и повторите.

Затем перезапустите Samba, чтобы загрузить изменения:

sudo systemctl restart smbd

Настройка завершена! Теперь вы можете получить доступ к NAS с другой машины.

Доступ к сетевому хранилищу из Windows

Теперь наступает самое интересное – подключение к вашему новому NAS из Windows. Откройте Explorer и найдите кнопку Подключить раздел. В новых версиях Windows вы найдете ее на вкладке «Компьютер» в разделе «Этот компьютер», а в других папках она может быть обозначена как «Подключить раздел» в разделе «Easy Access» (Простой доступ).

При нажатии откроется диалоговое окно настройки, в котором нужно будет ввести сетевой адрес распбери. Введите \\raspberrypi\nas-share в поле «Папка» (помните, nas-share – это то, как мы назвали наш ресурс в конфигурации Samba). Вы также можете использовать IP-адрес вашего Pi вместо raspberrypi, если у вас возникли проблемы с подключением.

Не забудьте установить флажок Connect using different credentials (Подключиться, используя другие учетные данные), а затем нажмите Finish (Готово). Windows запросит ваше имя пользователя и пароль – это учетные данные Samba, которые мы создали ранее (имя пользователя pi и пароль, который вы задали).

Теперь ваш NAS-накопитель должен появиться в File Explorer, чтобы вы могли начать хранить файлы и получать к ним доступ по сети.

Доступ к NAS из macOS

Подключиться к NAS с Mac так же просто, как и с Windows. Во многих случаях вы можете просто выбрать его на левой боковой панели.

Если вы видите его в левой боковой панели, откройте Finder и нажмите Cmd + , или нажмите Переход (Go) в строке меню и выберите Подключить сервер (Connect to Server). В поле Адрес сервера введите smb://raspberrypi/nas-share (или используйте IP-адрес вашего Pi вместо raspberrypi, если это необходимо). Нажмите Connect, когда будете готовы.

Появится окно входа в систему. Выберите Registered User, введите pi в качестве имени пользователя (или любое другое ваше имя пользователя) и пароль Samba, который вы создали ранее. Если вы не хотите вводить его каждый раз, установите флажок Запомнить этот пароль в моей связке ключей. Теперь вы можете перетаскивать файлы, как в любую другую папку на вашем Mac.

Устранение распространенных проблем с NAS

Настройка NAS с Samba на Raspberry Pi обычно не вызывает проблем, но вы можете столкнуться с несколькими распространенными проблемами. Вот как быстро решить их и вернуться к использованию вашего NAS.

Отказ в доступе или ошибки разрешения

Если при попытке получить доступ к общим папкам или записать в них данные, это часто связано с тем, что у пользователя Pi нет соответствующих прав собственности. Чтобы решить эту проблему, выполните следующие действия:

sudo chown -R pi /mnt/nas-storage

Замените pi на свое имя пользователя, если оно другое, а /mnt/nas-storage – на путь к папке NAS. Эта команда дает пользователю Pi право собственности на весь каталог, что должно устранить большинство проблем с разрешениями.

Общий ресурс NAS не виден

Если ваш NAS не отображается в файловом проводнике Windows или Finder MacOS, это может быть вызвано несколькими причинами. Во-первых, проверьте, что Raspberry Pi и компьютер находятся в одной сети. Если они подключены к разным сетям Wi-Fi или используют разные сетевые адаптеры, они не увидят друг друга.

Во-вторых, убедитесь, что служба Samba действительно запущена на вашем Raspberry Pi. Проверить это можно, выполнив следующую команду:

sudo systemctl status smbd

Если она не запущена (вы увидите неактивный статус), запустите ее с помощью этой команды:

sudo systemctl start smbd

Соединение постоянно обрывается

Одна из самых неприятных проблем, с которой вы можете столкнуться при работе с сетевым хранилищем Raspberry Pi, – это обрыв соединения, особенно при подключении через Wi-Fi. Это может проявляться в виде прерывистого доступа к общим файлам или полной недоступности NAS в течение определенного времени.

Часто эта проблема возникает из-за проблем с сигналом Wi-Fi или помех от других устройств. Однако если вы убедились, что сама сеть Wi-Fi не является виновником, проблема может быть связана с функциями энергосбережения Raspberry Pi.

Wi-Fi Pi может переходить в режим энергосбережения, что иногда приводит к обрыву связи, особенно если устройство не активно передает или принимает данные. К счастью, вы можете легко отключить эту функцию энергосбережения. Все, что вам нужно сделать, это добавить одну строку в файл /etc/rc.local:

/sbin/iwconfig wlan0 power off

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

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)