Возможно ли организовать PXE‑загрузку Raspberry Pi 3 с помощью роутера Asus RT‑N11P?

Домашняя сеть с DHCP-сервером на ASUS RT‑N11P. Хочу поднять TFTP и организовать загрузку по PXE, но 16 лет назад при схожей задаче я также запускал BOOTP-сервер на FreeBSD, и теперь не уверен: поддерживает ли мой роутер BOOTP или перенаправление BOOTP/DHCP‑запросов на другой сервер. Менять DHCP-сервер не хочу, роутер меня устраивает, и искусственно дробить сеть тоже не хочется. Загрузка Raspberry Pi 3 с SD‑карты для меня неприемлема — можно, конечно, делать регулярные резервные копии и периодически менять флешки, но хотелось бы более надёжного решения. Планирую использовать RPi3 для видеонаблюдения (2–3 камеры), у меня есть файлопомойка с доступом по FTP (использовал её для экспериментов с ESP32‑CAM). Какие варианты и решения вы могли бы предложить для организации PXE/TFTP/BOOTP в такой конфигурации?
  • 29 апреля 2026 г. 12:01
Ответы на вопрос 3
Короткий ответ — да, Raspberry Pi 3 можно загружать по сети, но ваш роутер (стоковый ASUS RT‑N11P) почти наверняка не сможет прямо выдать нужные PXE/BOOTP‑опции (или выполнять переадресацию BOOTP) — у большинства домашних прошивок нет гибкой настройки DHCP option 66/67 или режима proxy‑DHCP. Поэтому вариантов немного, но все они рабочие.

Нюансы про Raspberry Pi 3
- Pi 3 (Model B) умеет netboot (ROM умеет грузить по сети), но у большинства плат эта возможность отключена в OTP и её один раз нужно включить (обычно делается единожды с помощью SD‑карты и записи соответствующей опции в /boot/config.txt или специализированной командой). После однократного включения OTP можно загружать Pi по сети без SD. Если вы категорически не хотите даже однократного использования SD, то этот вариант не сработает; в таком случае можно смотреть на Pi 4 (EEPROM, проще настраивается) или на варианты USB‑boot (требует тоже одноразовой установки).
- Процесс netboot для Pi отличается от обычного x86 PXE: устройство ожидает TFTP‑сервер с набором файлов bootcode.bin/start.elf/kernel и часто ищет файлы по MAC‑адресу. Есть готовые сборки и инструкции (raspberrypi.org — Network boot).

Практические варианты в вашей сети, не меняя DHCP на роутере

1) Proxy‑DHCP + TFTP на отдельной машине (рекомендуемый и самый надёжный вариант)
- Поставьте на LAN‑машину (маленький Linux/деб/сервера/ваша «файлопомойка», NAS с контейнером и т.п.) dnsmasq (или отдельный proxyDHCP), tftpd и NFS/SSHFS/FTP для корня, если нужно.
- dnsmasq умеет работать в режиме proxy‑DHCP (option proxy‑dhcp) — он не будет раздавать IP‑адреса (это делает роутер), а ответит на PXE/BOOTP‑запросы, сообщив TFTP‑сервер и имя загрузочного файла.
- Плюсы: не трогаете роутер, не дробите сеть, легко отлаживать и держать контролируемую TFTP/NFS середу.
- Минусы: нужно всегда иметь в сети дополнительный хост, который слушает запросы на 67/UDP (но в proxy‑режиме он не будет выдавать адреса).

Примеры (концептуально)
- Установите tftpd-hpa и положите в /srv/tftp/ нужные файлы Raspberry Pi (или используйте готовый набор из raspberrypi-netboot).
- /etc/dnsmasq.d/pxe.conf (упрощённо):
  - enable-tftp
  - tftp-root=/srv/tftp
  - proxy-dhcp
  - dhcp-boot=bootcode.bin   (или другое имя, которое ожидает ваш Pi/netboot)
(точная конфигурация зависит от версии dnsmasq и того, как вы развернёте сборку Pi)

2) Установка альтернативной прошивки роутера (OpenWrt/Padavan) и запуск там dnsmasq + tftpd
- Если RT‑N11P поддерживается одной из кастомных прошивок и вы готовы её прошить, то весь сервис можно разместить прямо на роутере.
- Плюсы: не нужен отдельный хост.
- Минусы: риск/замена прошивки, ограниченные ресурсы роутера, возможно нестабильность для TFTP/NFS.

3) Локальный мини‑SD/USB «загрузчик», который цепляет сеть
- Если одиночное включение OTP неприемлемо, можно использовать очень маленький SD/USB с минимальным bootloader’ом, который затем переключает загрузку на сеть (или на USB). Это уменьшит риск проблем с SD, но всё равно подразумевает внешнюю флешку/SD.
- Альтернативно: использовать USB‑накопитель для загрузки (если у вас включён USB‑boot OTP).

4) Нативная схема: минимальная SD + корень по NFS
- Если боитесь надёжности SD, можно сделать минимальную immutable загрузочную SD (или USB) которая только подхватывает сеть и монтирует корень по NFS. Тогда "файловая система" находится на NAS, а локальная SD минимальна и почти не изнашивается. Это обычная практика для видеонаблюдения.

Практические рекомендации для вас
1. Уточните, готовы ли вы однократно вставить SD для включения netboot (если нет — скажите, тогда предложу другие аппаратные варианты).
2. Самый простой и надёжный путь для вашей текущей конфигурации: поднять dnsmasq (proxy‑dhcp) + tftpd на вашем NAS/файлопомойке/другом always‑on хосте. Поставить туда netboot‑файлы Raspberry Pi и при желании корень по NFS/FTP. Роутер продолжит раздачу IP, а ваш proxy‑DHCP отдаст только boot‑опции.
3. Если хотите, пришлю конкретную пошаговую конфигурацию dnsmasq + tftpd и пример структуры /tftpboot для Raspberry Pi 3 (нужны ли вам файлы/готовые образы или вы соберёте их по инструкции raspberrypi.org).

Если скажете, что предпочтительнее — пошаговая инструкция с примером конфигурации на Debian/Ubuntu (dnsmasq + tftpd + NFS) или вариант с прошивкой роутера, — подготовлю конкретный чек‑лист.
dnsmasq в proxy-DHCP режиме — вот что тебе надо. Поднимаешь на файлопомойке, роутер вообще не трогаешь. Он не раздаёт IP-адреса, только отвечает на PXE-запросы, не конфликтует с роутером. <br/> <br/> Конфиг: <br/> <pre><code>port=0
dhcp-range=192.168.1.255,proxy
enable-tftp
tftp-root=/tftpboot
pxe-service=0,"Raspberry Pi Boot"</code></pre> <br/> <br/> (192.168.1.255 — broadcast твоей подсети, подставь своё) <br/> <br/> Одна засада с 3B (не Plus): сетевая загрузка выключена в OTP по умолчанию. Один раз грузишься с флешки добавив <code>program_usb_boot_mode=1</code> в /boot/config.txt, потом OTP прошивается и флешка больше не нужна.
<blockquote>Хотя, наверное, надо просто сделать вовремя резервную копию и держать её под рукой на случай очередного выхода флешки из строя. И раз в полгода штатно её менять.<br/>
Какие есть предложения?</blockquote> <br/> Просто подключить любой SSD в USB коробочке и поставить на него <a href="https://armbian.com/" rel="nofollow">armbian</a> . Там из коробки есть поддержка установки загрузчика на EMMC, USB или на любой другой накопитель и установкой самой ОС тоже куда угодно. При этом если загрузчик отвалится или сдохнет флешка, на которой он установлен, то можно точно также запустить с флешки <code>armbian</code> и в пару кликов его восстановить отдельно или же установить заново на новую флешку, если он установлен на флешку был и она померла. Оптимальное решение и не надо никаких костылей добавлять.
Похожие вопросы