289 lines
9.2 KiB
Markdown
289 lines
9.2 KiB
Markdown
---
|
||
tags:
|
||
- raspberry-pi
|
||
- nas
|
||
- openmediavault
|
||
- how-to
|
||
created: '2026-05-11'
|
||
updated: '2026-05-12'
|
||
status: omv-installed
|
||
---
|
||
# OpenMediaVault на Raspberry Pi 5
|
||
|
||
**Статус:** OMV установлен (май 2026)
|
||
**Цель:** NAS на RPi 5 — OS на SD-карте, хранилище на USB 3.0 HDD
|
||
|
||
---
|
||
|
||
## Железо
|
||
|
||
- Raspberry Pi 5 (4 или 8 GB RAM)
|
||
- SD-карта ≥16 GB (Samsung/SanDisk A1 Class 10+)
|
||
- USB 3.0 HDD для хранения данных
|
||
- Проводной Ethernet (обязателен)
|
||
|
||
---
|
||
|
||
## Шаг 1 — Флашим SD-карту
|
||
|
||
**Образ:** Raspberry Pi OS Lite **64-bit (Bookworm / Debian 12)**
|
||
> ⚠️ Брать именно Bookworm, не Trixie (Debian 13) — OMV не поддерживается на Trixie!
|
||
|
||
- Последний Bookworm: **2025-05-13**
|
||
- Прямая ссылка: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2025-05-13/2025-05-13-raspios-bookworm-arm64-lite.img.xz
|
||
|
||
**Инструмент:** Raspberry Pi Imager (https://www.raspberrypi.com/software/)
|
||
|
||
> ⚠️ Не Balena Etcher — только RPi Imager поддерживает OS Customisation!
|
||
> При выборе образа из каталога (не custom file) появляется кнопка "Edit Settings"
|
||
|
||
**Настройки (Edit Settings → шестерёнка):**
|
||
- Hostname: `kraken`
|
||
- Username: `kraken` (не `admin` — зарезервировано для OMV!)
|
||
- Password: сохранён в 1Password (запись "Kraken RPi")
|
||
- SSH: Enable → Allow public-key authentication → вставить `~/.ssh/id_rsa.pub`
|
||
|
||
После флаша вставить карту в Pi и включить.
|
||
|
||
---
|
||
|
||
## Шаг 2 — Первый запуск, обновление и настройка сети
|
||
|
||
SSH подключение (пока через WiFi/роутер):
|
||
```bash
|
||
ssh -i ~/.ssh/id_rsa kraken@kraken.local
|
||
```
|
||
|
||
Обновление системы:
|
||
```bash
|
||
sudo apt-get update && sudo apt-get upgrade -y
|
||
```
|
||
|
||
Static IP на eth0 (прямой кабель Mac ↔ Pi для установки):
|
||
```bash
|
||
sudo nmcli con add type ethernet ifname eth0 con-name eth0-static \
|
||
ipv4.method manual \
|
||
ipv4.addresses 192.168.100.2/24 \
|
||
ipv4.gateway 192.168.100.1 \
|
||
ipv4.never-default yes \
|
||
connection.autoconnect yes
|
||
sudo nmcli con up eth0-static
|
||
```
|
||
|
||
> ⚠️ `ipv4.never-default yes` — обязательно! Иначе интернет пойдёт через Mac, а не WiFi, и установка зависнет.
|
||
|
||
---
|
||
|
||
## Шаг 3 — Установка OMV
|
||
|
||
```bash
|
||
# Pre-install
|
||
wget -qO- https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/preinstall | sudo bash
|
||
sudo reboot
|
||
|
||
# После перезагрузки — основная установка (~30 мин)
|
||
wget -qO- https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
|
||
```
|
||
|
||
Pi перезагрузится автоматически по окончании.
|
||
|
||
---
|
||
|
||
## Шаг 4 — Первый вход в веб-интерфейс
|
||
|
||
- URL: `http://192.168.100.2` (или `http://kraken.local`)
|
||
- Логин: `admin`
|
||
- Пароль: `openmediavault`
|
||
- **Сразу сменить пароль!** (System → General Settings → Web Administrator Password)
|
||
|
||
---
|
||
|
||
## Шаг 5 — Подключить Pi к роутеру, настроить static IP, отключить WiFi
|
||
|
||
1. Переключить ethernet-кабель: Pi → роутер (не Mac)
|
||
2. В роутере: DHCP reservation для MAC `2c:cf:67:64:03:f3` → выбрать постоянный IP (например `192.168.1.X`)
|
||
3. Отключить WiFi на Pi:
|
||
```bash
|
||
sudo nmcli radio wifi off
|
||
```
|
||
4. Убедиться что Pi доступен по новому IP, проверить OMV web UI
|
||
|
||
---
|
||
|
||
## Шаг 6 — Подключить USB HDD, форматировать, смонтировать
|
||
|
||
1. Подключить HDD к USB 3.0 порту Pi (синий разъём)
|
||
2. OMV Web UI → Storage → Disks → убедиться что диск виден
|
||
3. Storage → File Systems → Create → выбрать диск → EXT4 → Save → Mount
|
||
4. Storage → Shared Folders → Add:
|
||
- `media` — для фильмов/музыки
|
||
- `timemachine` — для Time Machine бэкапов
|
||
- `docker` — для данных контейнеров
|
||
|
||
---
|
||
|
||
## Шаг 7 — omv-extras + Docker + Portainer
|
||
|
||
Установить omv-extras (даёт доступ к Docker плагину):
|
||
```bash
|
||
wget -qO- https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | sudo bash
|
||
```
|
||
|
||
В OMV Web UI:
|
||
- System → Plugins → найти `openmediavault-compose` → установить
|
||
- Или через SSH: установить Docker + Portainer вручную:
|
||
|
||
```bash
|
||
curl -fsSL https://get.docker.com | sudo bash
|
||
sudo usermod -aG docker kraken
|
||
|
||
# Portainer
|
||
sudo docker volume create portainer_data
|
||
sudo docker run -d \
|
||
--name portainer \
|
||
--restart always \
|
||
-p 9000:9000 \
|
||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||
-v portainer_data:/data \
|
||
portainer/portainer-ce:latest
|
||
```
|
||
|
||
Portainer UI: `http://kraken.local:9000`
|
||
|
||
---
|
||
|
||
## Шаг 8 — Docker контейнеры
|
||
|
||
Все контейнеры управляются через Portainer или `docker compose`.
|
||
Данные хранить на HDD в `/srv/<filesystem>/docker/`.
|
||
|
||
### Watchtower (авто-обновление контейнеров)
|
||
```yaml
|
||
watchtower:
|
||
image: containrrr/watchtower
|
||
restart: always
|
||
volumes:
|
||
- /var/run/docker.sock:/var/run/docker.sock
|
||
environment:
|
||
- WATCHTOWER_CLEANUP=true
|
||
- WATCHTOWER_SCHEDULE=0 0 4 * * * # каждую ночь в 4:00
|
||
```
|
||
|
||
### Home Assistant
|
||
```yaml
|
||
homeassistant:
|
||
image: ghcr.io/home-assistant/home-assistant:stable
|
||
restart: always
|
||
network_mode: host
|
||
volumes:
|
||
- /srv/.../docker/homeassistant:/config
|
||
privileged: true
|
||
```
|
||
|
||
### Zigbee2MQTT
|
||
```yaml
|
||
zigbee2mqtt:
|
||
image: koenkk/zigbee2mqtt
|
||
restart: always
|
||
volumes:
|
||
- /srv/.../docker/zigbee2mqtt:/app/data
|
||
- /run/udev:/run/udev:ro
|
||
devices:
|
||
- /dev/ttyUSB0:/dev/ttyUSB0 # Zigbee адаптер
|
||
```
|
||
|
||
### Jellyfin
|
||
```yaml
|
||
jellyfin:
|
||
image: jellyfin/jellyfin
|
||
restart: always
|
||
ports:
|
||
- 8096:8096
|
||
volumes:
|
||
- /srv/.../docker/jellyfin:/config
|
||
- /srv/.../media:/media:ro
|
||
```
|
||
|
||
### Transmission
|
||
```yaml
|
||
transmission:
|
||
image: lscr.io/linuxserver/transmission
|
||
restart: always
|
||
ports:
|
||
- 9091:9091
|
||
- 51413:51413
|
||
volumes:
|
||
- /srv/.../docker/transmission:/config
|
||
- /srv/.../media/downloads:/downloads
|
||
```
|
||
|
||
### Rclone (бэкап на облако)
|
||
```yaml
|
||
rclone:
|
||
image: rclone/rclone
|
||
restart: unless-stopped
|
||
volumes:
|
||
- /srv/.../:/data:ro
|
||
- /home/kraken/.config/rclone:/config/rclone
|
||
command: sync /data remote:backup --progress
|
||
```
|
||
|
||
---
|
||
|
||
## Шаг 9 — Time Machine share (macOS бэкапы на NAS)
|
||
|
||
В OMV Web UI:
|
||
1. Services → SMB/CIFS → Enable
|
||
2. Services → SMB/CIFS → Shares → Add:
|
||
- Shared folder: `timemachine`
|
||
- Enable Time Machine support: ✅
|
||
3. На Mac: Finder → Go → Connect to Server → `smb://kraken.local/timemachine`
|
||
4. System Preferences → Time Machine → Add Disk → выбрать kraken
|
||
|
||
---
|
||
|
||
## Шаг 10 — Перенос данных
|
||
|
||
### Фильмы с Mac на NAS
|
||
```bash
|
||
rsync -avh --progress /path/to/movies/ kraken@kraken.local:/srv/.../media/movies/
|
||
```
|
||
|
||
### Time Machine
|
||
> ⚠️ Старый TM-бэкап перенести нельзя напрямую — TM привязывает бэкап к конкретному диску/хосту.
|
||
> Начать новый бэкап на NAS, старый HDD хранить как архив или отформатировать после нескольких успешных новых бэкапов.
|
||
|
||
---
|
||
|
||
## Шаг 11 — Hermes агент Кракен
|
||
|
||
По образу агента Тайга (TrueNAS). Установить Hermes на Pi:
|
||
|
||
```bash
|
||
# TODO: уточнить команду установки по образу Тайги
|
||
```
|
||
|
||
- Конфиг: `~/.hermes/config.yaml`
|
||
- Namespace: `family`
|
||
- Подключить к Discord/Zulip
|
||
- Настроить доступ к vault через obsidian-mcp
|
||
|
||
---
|
||
|
||
## Уроки (что пошло не так при установке)
|
||
|
||
- **Balena Etcher** не поддерживает OS Customisation — использовать только **RPi Imager**
|
||
- **`userconf.txt`** deprecated на Bookworm — правильный способ через RPi Imager (он пишет `custom.toml`)
|
||
- **`systemd.run=` в cmdline.txt** нужно указывать `/usr/lib/raspberrypi-sys-mods/firstboot`, а не свой скрипт
|
||
- **`ipv4.never-default yes`** при настройке static IP на eth0 — обязательно, иначе интернет идёт через Mac и установка зависает
|
||
- **OMV install script** при зависании — скорее всего нет интернета, проверить маршруты (`ip route`)
|
||
|
||
---
|
||
|
||
## Полезные ссылки
|
||
|
||
- Официальный вики OMV: https://wiki.omv-extras.org/
|
||
- Install script: https://github.com/OpenMediaVault-Plugin-Developers/installScript
|
||
- RPi Imager: https://www.raspberrypi.com/software/
|
||
- RPi Downloads: https://www.raspberrypi.com/software/operating-systems/
|