Превратите Raspberry Pi в энергоэффективное сетевое хранилище
Быстрая навигация
- Почему это полезно
- Что понадобится
- Подготовка и монтирование внешних дисков
- Настройка Samba для общего доступа
- Автоподключение дисков при старте
- Настройка зеркалирования с помощью rsync + cron
- Безопасность, тестирование и отладка
- Проверочный чек‑лист, методология и сценарии приёма
Почему это полезно
Наличие постоянно включённого сетевого хранилища удобно: файлы и резервные копии доступны с любых устройств в локальной сети (и через удалённый доступ при необходимости). Минус обычных серверов — энергопотребление. Настроив NAS на Raspberry Pi, вы получите сильно сокращённое энергопотребление при сохранении базовой функциональности файлового сервера и репозитория резервных копий.
Коротко о соотношении затрат и возможностей:
- Полнофункциональный сервер обеспечивает большую производительность и ёмкость, но потребляет значительно больше энергии.
- Raspberry Pi отлично подходит в роли файлового сервера и цели резервирования; он экономичен и тих, особенно с дисками низкого энергопотребления.
Пояснение терминов:
- NAS: сетевое хранилище (Network Attached Storage) — устройство, предоставляющее доступ к файлам по сети.
- Samba: реализация SMB/CIFS для Linux, обеспечивает совместный доступ к файлам с Windows/Mac/Linux.
- rsync: инструмент для эффективной синхронизации файловых деревьев.
- cron: планировщик задач в Unix/Linux.
Что понадобится

Базовые предпосылки:
- Raspberry Pi с установленной Raspbian (Rasbian) и работающей системой. Рекомендация: иметь базовые навыки работы в терминале.
- Блок питания для Raspberry Pi, сетевой кабель или Wi‑Fi, клавиатура и мышь для первоначальной настройки.
Аппаратно:
- Один USB‑внешний жёсткий диск — достаточно для простого сетевого доступа (ресурс для хранения/резервирования).
- Два USB‑внешних жёстких диска — если нужна локальная защита данных (ежедневное зеркалирование).
Рекомендации по дискам:
- Предпочтительны портативные диски с питанием по USB (без отдельного адаптера), маломощные 2.5” модели.
- Мы выбрали два одинаковых Seagate Backup Plus 1TB Portable (пример компактного варианта).
- Для удобства доступа к дискам с компьютеров Windows логично использовать NTFS‑разметку.
Примечания по дизайну решения:
- Формат NTFS выбран ради совместимости с Windows: при необходимости диски можно напрямую подключить к ПК.
- Samba используется для совместимости с доминирующей Windows‑сетью в офисе/доме.
Важно: вы можете адаптировать форматирование и ПО под свои нужды (EXT4 для Linux‑ориентированных сред, NFS для Linux‑только окружений и т. п.).
Подготовка и монтирование внешних дисков

Если у вас уже настроен Raspberry Pi и запущен Raspbian, подключите внешние USB‑диски (или через USB‑хаб, если нужно). Если у вас один диск — игнорируйте команды, относящиеся ко второму диску.
Работа ведётся через терминал (локально в LXTerminal или по SSH). Все команды запускаются с правами sudo або от root.
- Установите поддержку NTFS (если у вас NTFS‑диски):
sudo apt-get install ntfs-3g- Посмотрите таблицу устройств:
sudo fdisk -lОбычно вы увидите SD‑карту Raspberry Pi и внешние диски, например:
- /dev/mmcblk0 — SD‑карта с системой (не трогаем)
- /dev/sda — первый внешний USB‑диск
- /dev/sdb — второй внешний USB‑диск
Нас интересуют разделы /dev/sda1 и /dev/sdb1.
- Создайте точки монтирования:
sudo mkdir /media/USBHDD1
sudo mkdir /media/USBHDD2- Смонтируйте диски:
sudo mount -t auto /dev/sda1 /media/USBHDD1
sudo mount -t auto /dev/sdb1 /media/USBHDD2- Создайте каталог для шарингов на каждом диске:
sudo mkdir /media/USBHDD1/shares
sudo mkdir /media/USBHDD2/sharesСовет: если диск не монтируется из‑за недостатка питания через USB‑порт Pi, используйте активный USB‑хаб с внешним питанием или диски с отдельным источником питания.
Установка и базовая настройка Samba
- Установите Samba и утилиты:
sudo apt-get install samba samba-common-bin- Сохраните резервную копию конфигурации:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old- Откройте конфигурационный файл в редакторе nano:
sudo nano /etc/samba/smb.confСоветы по редактированию:
- Параметр workgroup: по умолчанию workgroup = WORKGROUP. Оставьте или замените на имя вашей рабочей группы.
- Найдите секцию security, убедитесь, что строка security = user активна (уберите #, если есть).
Добавьте в конец файла следующую секцию (имя шаринга в квадратных скобках будет отображаться в сети):
[Backup]
comment = Backup Folder
path = /media/USBHDD1/shares
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = noСохраните (Ctrl+X → Y → Enter) и перезапустите Samba:
sudo /etc/init.d/samba restart- Создайте локального пользователя для доступа к шарингу (пример):
sudo useradd backups -m -G users
sudo passwd backups
sudo smbpasswd -a backupsВведите пароль дважды при passwd и затем при smbpasswd. После этого с компьютера в сети вы сможете подключиться к \RASPBERRYPI\Backup (или \<имя‑хоста>\Backup) используя имя и пароль пользователя.
Проверка: создайте тестовый файл с другого компьютера и убедитесь, что он отображается в /media/USBHDD1/shares:
cd /media/USBHDD1/shares
lsАвтоподключение дисков при старте
Чтобы диски автоматически монтировались при перезагрузке, добавьте записи в /etc/fstab.
Откройте файл:
sudo nano /etc/fstabДобавьте строки:
/dev/sda1 /media/USBHDD1 auto noatime 0 0
/dev/sdb1 /media/USBHDD2 auto noatime 0 0Сохраните и перезагрузите систему для проверки. Если устройство меняет имя (например, при переподключении), рассмотрите использование UUID вместо /dev/sdX (см. раздел «Совместимость и миграция»).
Настройка простого зеркалирования данных (rsync + cron)

Второй диск можно использовать как локальную резервную копию: настроим rsync и cron для периодической синхронизации /media/USBHDD1/shares → /media/USBHDD2/shares.
- Установите rsync:
sudo apt-get install rsync- Откройте crontab для текущего пользователя:
crontab -eДобавьте строку для ежедневного зеркала в 05:00 утра:
0 5 * * * rsync -av --delete /media/USBHDD1/shares /media/USBHDD2/shares/Пояснение: ключ -a сохраняет атрибуты и рекурсивность, -v — подробный вывод, –delete удаляет файлы в приёмнике, отсутствующие в источнике.
Запуск вручную (чтобы инициализировать зеркалирование сразу):
rsync -av --delete /media/USBHDD1/shares /media/USBHDD2/shares/Важное: выбирайте время синхронизации вне пиковых операций записи, чтобы избежать конфликтов (например, если удалённые бэкап‑агенты записывают в 05:00, перенесите задачу на другое время).
Дополнительные варианты конфигурации и альтернативы
- NFS вместо Samba: удобнее в Linux‑только окружениях. NFS даёт менее сложную авторизацию, лучше работает с правами POSIX.
- Использовать btrfs или ZFS для контроля целостности и снапшотов (потребует больше ресурсов и иного подхода к дискам).
- Подключать сетевые хранилища (SMB/FTP) как бэкап‑приёмник вместо второго локального диска.
- Использовать RAID‑контроллеры/аппаратный RAID — за пределами возможностей Raspberry Pi (и требует отдельного оборудования).
Безопасность и конфиденциальность
- Включите авторизацию в Samba (security = user) и используйте сложные пароли.
- При открытом Wi‑Fi или внешнем доступе используйте VPN для доступа к вашей сети, а не прямую проброску портов.
- Регулярно обновляйте систему командой:
sudo apt-get update && sudo apt-get upgrade- Защищайте права на файловой системе: выставляйте create mask и directory mask в smb.conf.
- Логи: контролируйте /var/log/samba и системные журналы для обнаружения подозрительной активности.
Юридические/конфиденциальные заметки: если вы храните персональные данные граждан ЕС, убедитесь, что процесс хранения и резервирования соответствует требованиям GDPR (шифрование, минимизация доступа, журналы доступа). Для шифрования данных используйте LUKS/вертикальный уровень шифрования перед монтированием, но это усложнит совместимость с Windows.
Проверочный чек‑лист перед вводом в эксплуатацию
- Raspberry Pi с Raspbian обновлён и перезагружен
- Установлен ntfs-3g (если NTFS)
- Внешние диски обнаружены командой sudo fdisk -l
- Диски смонтированы в /media/USBHDD1 и /media/USBHDD2
- Папки /media/USBHDD*/shares созданы
- Samba установлена и сконфигурирована
- Пользователь Samba создан и протестирован
- /etc/fstab настроен для автоматического монтирования
- rsync установлен, cron‑задача добавлена и протестирована
- Логи проверены на наличие ошибок после первой синхронизации
Тесты и критерии приёмки
Критерии приёмки:
- Доступность шаринга: с клиентской машины можно подключиться к \RASPBERRYPI\Backup и просмотреть/создать файл.
- Автоматическое монтирование: после перезагрузки диски монтируются в ожидаемые точки.
- Зеркалирование: файл, созданный в /media/USBHDD1/shares, появляется в /media/USBHDD2/shares после выполнения rsync.
- Безопасность: к шару имеет доступ только пользователь backups или доверенные пользователи.
Тестовые сценарии:
- Создать test.txt на клиенте → убедиться, что файл появился в /media/USBHDD1/shares → вручную запустить rsync → проверить копию в /media/USBHDD2/shares.
- Отключить второй диск и проверить, что rsync корректно завершается с ошибкой и не повреждает данные на основном диске.
- Перезагрузить Pi с подключенными дисками и без них, убедиться, что система корректно монтирует доступные ресурсы.
Руководство по обнаружению и исправлению ошибок (troubleshooting)
Симптом: диск не отображается в fdisk
- Проверьте питание диска и кабель. Попробуйте другой USB‑порт или кабель.
- Проверьте dmesg сразу после подключения:
dmesg | tail -n 50Симптом: mount возвращает ошибку
- Убедитесь, что разделы корректны (fdisk -l), проверьте filesystem с помощью ntfsfix (для NTFS):
sudo ntfsfix /dev/sda1Симптом: Samba не показывает шаринг
- Проверьте /etc/samba/smb.conf на синтаксические ошибки.
- Проверьте статус Samba:
sudo service smbd status
sudo tail -n 100 /var/log/samba/log.smbdСимптом: rsync удаляет слишком много файлов
- Проверьте опцию –delete: она удаляет файлы в приёмнике, которых нет в источнике. Для теста запустите без –delete или с –dry-run:
rsync -av --dry-run /media/USBHDD1/shares /media/USBHDD2/shares/Симптом: имена устройств меняются после перезагрузки
- Используйте UUID в /etc/fstab вместо /dev/sdX. Получить UUID:
blkid /dev/sda1И в fstab прописать:
UUID=<полученный-uuid> /media/USBHDD1 auto noatime 0 0Матрица совместимости и советы по миграции
- NTFS: удобен для совместного использования с Windows, но не поддерживает все POSIX‑атрибуты (возможны проблемы с правами/атрибутами).
- EXT4: предпочтителен для Linux‑окружений (лучше права, производительность) — нечитабелен в Windows без дополнительного софта.
- btrfs/ZFS: для продвинутых сценариев (снапшоты, проверка целостности) — повышенные ресурсы и более сложная настройка.
Миграция между форматами: делайте резервную копию данных перед форматированием; при переносе на другой формат лучше клонировать или скопировать данные на временное хранилище.
Рекомендации по поддержанию и развитию
- Автоматические обновления: настройте регулярные проверки обновлений и патчей.
- Мониторинг дискового пространства: используйте cron + mail или мониторинговые инструменты (Prometheus, Zabbix) для оповещений.
- Ротация логов: убедитесь, что логи не заполняют SD‑карту.
- Раз в месяц проверяйте целостность резервных копий и выполните тестовое восстановление файла.
Дополнительные материалы и альтернативы
- NFS вместо Samba для Linux‑клиентов
- Использование внешних облачных бэкап‑решений как дополнительный уровень защиты (Google Drive, Backblaze, CrashPlan)
- Аппаратный сетевой хаб/коробки NAS (Synology, QNAP) — удобнее, но дороже и потребляют больше энергии
Чек‑листы по ролям
Администратору:
- Проверить и задокументировать схему монтирования
- Настроить мониторинг дискового пространства
- Обеспечить резервное копирование конфигурации
Пользователю:
- Знать адрес шаринга и учётные данные
- Не сохранять критичные данные только на одном устройстве
Оператору (технический):
- Проверять логи после сбоев
- Проводить тестовые восстановления раз в квартал
Руководство по аварийному восстановлению и откату
- Если диск повреждён: отключите питание, подключите диск к ПК с поддержкой ntfs/где возможна диагностика.
- Восстановление данных: используйте инструменты типа testdisk/photorec (аккуратно) или профессиональные сервисы.
- Откат конфигурации Samba: восстановите smb.conf.old и перезапустите демоны.
Примеры команд и шпаргалка
- Просмотреть подключённые диски:
sudo fdisk -l- Смонтировать диск вручную:
sudo mount -t auto /dev/sda1 /media/USBHDD1- Параметры rsync для зеркалирования:
rsync -av --delete /media/USBHDD1/shares /media/USBHDD2/shares/- Проверка журналов Samba:
sudo tail -n 200 /var/log/samba/log.smbdЧасто задаваемые вопросы
Q: Можно ли использовать один диск и облачное хранилище для зеркалирования? A: Да. Вы можете настроить периодическую выгрузку на облако с помощью rclone или специализированных клиентов.
Q: Поддержит ли Raspberry Pi USB‑диск с питанием по USB? A: Да, но убедитесь, что мощность USB‑порта/блок питания достаточна. В противном случае используйте активный USB‑хаб.
Q: Нужно ли шифровать данные на дисках? A: Для персональных данных и особенно для данных с конфиденциальной информацией рекомендуется предусмотреть шифрование (LUKS). Это усложняет совместимость с Windows, но повышает безопасность.
Если вам интересен практический проект с Raspberry Pi — напишите идею в комментариях. Мы рады экспериментам и новым задачам!
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone