Skip to content

Network Boot ru

crim50n edited this page Sep 30, 2026 · 1 revision

Загрузка по сети

На этой странице описано, как загрузить MiniOS по сети: PXE (kernel + initrd + данные MiniOS) и HTTP ISO (from=http://…). Это единственная цель работы сети внутри initramfs MiniOS.

Это не о следующем:

  • Настройка NetworkManager или постоянного статического IP после загрузки системы
  • Wi‑Fi в initrd
  • live-config (поздний userspace)

Сетевая работа после загрузки системы выполняется отдельно. Для постоянного статического IP по кабелю используйте шаг «Сеть» в установщике, NetworkManager или ifupdown — не PXE ip= параметр.

Смотрите также: Параметры загрузки (ip, from, cache).

Обзор

Режим Что загружается Как получаются данные MiniOS
PXE Ядро и initrd с сетевого сервера загрузки Непустой ip= без from=http://… → initrd загружает файлы MiniOS с PXE-сервера данных
HTTP ISO Ядро и initrd с локального носителя или PXE from=http://…/minios.iso → initrd поднимает сеть и монтирует ISO с помощью httpfs2
Локальный носитель USB / ISO / диск Сеть в initrd не используется; поиск только на локальных носителях

Сборщики initramfs: LiveKit (livekit-mos) или dracut (dracut-mos). Оба используют одни и те же сетевые помощники LiveKit для ранней загрузки.

find_data()
  ├─ from=http://…     → configure network (ip= static, otherwise DHCP) → mount ISO (httpfs2)
  ├─ ip=… (non-empty)  → configure network → PXE download of MiniOS data
  └─ else              → search local disks/ISO only (no network)

from=http://… имеет приоритет над ip=. В этом режиме ip= задаёт статическую адресацию для HTTP ISO. В противном случае любой непустой ip= выбирает путь PXE данных и пропускает локальные носители. Не добавляйте ip= при обычной загрузке с USB/ISO только ради «статического адреса». Ни один из сетевых путей не возвращается к локальным носителям при ошибке обнаружения или загрузки.

Требования

Требование Примечания
Проводной Ethernet (или virtio/vmxnet в ВМ) Используется первый обнаруженный не-loopback интерфейс; наличие соединения и доступность не проверяются, выбор BOOTIF / ethdevice в initrd отсутствует
Initrd с сетевыми модулями Собирается для вариантов пакета, отличных от внутреннего значения minimum (--network, часто --cloud)
Без использования Wi‑Fi Беспроводные сети не поддерживаются в процессе сетевой загрузки
Предпочтительно использовать NIC без firmware-blob'ов Карты, зависящие от прошивки, часто не работают в initrd
Рекомендуется Standard или более крупные образы В редакции Flux отсутствуют сетевые модули NIC, поэтому PXE / HTTP ISO фактически не поддерживаются
Только HTTP для URL ISO from=http://… работает; https:// не поддерживается

В initrd доступны инструменты: busybox ifconfig, route, udhcpc, wget, tftp, и @mount.httpfs2. NetworkManager в initrd отсутствует.

Загрузка по PXE

Последовательность

  1. Прошивка / PXE-сервер загружает MiniOS ядро и initrd (pxelinux, iPXE и др. — вне самого MiniOS).
  2. В командной строке ядра указан непустой ip= (и обычно boot=live для полной загрузки MiniOS).
  3. Initrd настраивает статический адрес из ip=, обращается к полю server и скачивает список файлов, затем MiniOS пакеты/файлы.
  4. Система продолжает загрузку в live root как обычно.

Параметр ip=

ip=<client-ip>:<server-ip>:<gateway-ip>:<netmask>[:<port>]
Поле Назначение
client-ip Адрес назначается через busybox ifconfig
server-ip Хост для HTTP/TFTP данных MiniOS; также записывается как DNS-сервер в initrd
gateway-ip Маршрут по умолчанию; также записывается как DNS-сервер
netmask Маска IPv4 с точками (не длина префикса CIDR)
port Необязательный HTTP-порт для списка файлов и файлов (по умолчанию 7529)

Примеры:

ip=192.168.1.10:192.168.1.1:192.168.1.1:255.255.255.0
ip=192.168.1.10:192.168.1.1:192.168.1.1:255.255.255.0:8080

Как загружаются файлы

  1. HTTP (рекомендуется): http://<server-ip>:<port>/PXEFILELIST?<kernel-release>:<machine> затем каждый путь из этого файла с того же хоста/порта.
  2. TFTP: busybox tftp используется только если первый HTTP-запрос к PXEFILELIST не удался. Если ошибка возникает при загрузке отдельного файла по HTTP, переключения на TFTP не происходит.

Порт по умолчанию — 7529, если пятое поле не указано.

Что ip= не делает

Ожидание Реальность
Формы ядра / dracut (ip=dhcp, ip=:::::eth0:dhcp, …) Не поддерживается — неправильно интерпретируется как адрес клиента
Статический IP для всей live-сессии Не поддерживается — после загрузки интерфейсом управляет NetworkManager (или аналогичный инструмент)
Статический IP при загрузке данных MiniOS с USB/ISO Не используйте — без from=http://…, это приведёт к загрузке данных PXE
Отдельный список DNS В initrd в качестве DNS-серверов используются только gateway и server

Загрузка через HTTP ISO (from=http://…)

Загрузка данных MiniOS с удалённого ISO без полного списка файлов PXE:

from=http://192.168.1.1/path/minios.iso

Поведение:

  1. Initrd поднимает сеть:
    • Если ip= задан → статическая настройка как выше
    • Если ip= не задан → DHCP через busybox udhcpc
  2. Монтирует удалённый ISO с помощью httpfs2
  3. Продолжает искать содержимое MiniOS на этом разделе

Необязательный параметр cache= (в мегабайтах) включает кэш загрузки httpfs, например cache=512.

Только http:// поддерживается для этого сценария с удалённым ISO. https:// не поддерживается.

После запуска live-системы

Пункт После switch_root
IP/маршруты ядра на NIC Могут сохраняться до перенастройки интерфейса в userspace
DNS из initrd (resolv.conf) Не является постоянной политикой для сессии
Сетевая сессия Обычно NetworkManager на стандартных образах MiniOS
Значение ip= Только для ранней загрузки — не сохраняется как статический профиль

Если корень продолжает использовать httpfs, перенастройка NIC через NetworkManager может нарушить работу live root. Учитывайте это при развёртывании через сеть (например, копируйте на RAM / избегайте изменения интерфейса загрузки, если возможно).

Поздний userspace live-config может кратковременно поднять сеть только для загрузки удалённых хуков/пресидов (Setup_network). Это не связано с PXE/ip= постоянной адресацией.

Типичные ошибки

  1. Добавление ip= в командную строку USB/ISO «для статического IP» → система пытается загрузить PXE вместо локального носителя, если только не былfrom=http://… выбран режим HTTP ISO.
  2. Использование ip=dhcp или другой синтаксис ip= ядра → неверный парсер, некорректная настройка адреса.
  3. Ожидание поддержки Wi‑Fi или выбора между несколькими NIC BOOTIF в initrd → не реализовано.
  4. Использование образа Flux для PXE/HTTP ISO → в initrd отсутствуют сетевые модули.
  5. Подача ISO только по HTTPS → from=http://… не сработает.
  6. Путаница с настройкой статического IP через установщик/NetworkManager после входа в систему.

Сводка по надёжности

Сценарий Оценка
PXE + ip=… + HTTP-список на :7529 (или TFTP при ошибке HTTP-запроса), обычный проводной / virtio Поддерживаемая цель
from=http://…iso + DHCP (или ip=), тот же класс NIC Обычно работает
Обычная загрузка с USB/ISO Сеть в initrd не используется
Статика в сессии через ip= Не поддерживается
Несколько NIC / NIC с прошивкой / Wi‑Fi / https:// / редакция Flux Слабо или не поддерживается

Справка по реализации

Компонент Расположение в дереве MiniOS
Точка входа init linux-live/initramfs/livekit-mos/init
Сеть + PXE + HTTP ISO linux-live/initramfs/livekit-mos/lib/livekitlib (init_network_ip, download_data_pxe, mount_data_http, find_data)
Сборщик LiveKit (--network) linux-live/initramfs/livekit-mos/mkinitrfs
Модуль Dracut MiniOS linux-live/initramfs/dracut-mos/90minios/
При передаче -n linux-live/build-initramfs (не минимальный)

См. также

🏠 Home

🌐 Languages

English

📋 Getting started

🚀 Installing MiniOS

🖥️ Using MiniOS

⚙️ Preparing and customizing MiniOS

🛡️ Maintenance and recovery

📖 Reference

🛠️ Development

de

📋 Erste Schritte

🚀 MiniOS installieren

🖥️ MiniOS verwenden

⚙️ MiniOS vorbereiten und anpassen

🛡️ Wartung und Wiederherstellung

📖 Referenz

🛠️ Entwicklung

es

📋 Primeros pasos

🚀 Instalando MiniOS

🖥️ Usar MiniOS

⚙️ Preparar y personalizar MiniOS

🛡️ Mantenimiento y recuperación

📖 Referencia

🛠️ Desarrollo

fr

📋 Premiers pas

🚀 Installation de MiniOS

🖥️ Utiliser MiniOS

⚙️ Préparer et personnaliser MiniOS

🛡️ Maintenance et récupération

📖 Référence

🛠️ Développement

id

📋 Memulai

🚀 Menginstal MiniOS

🖥️ Menggunakan MiniOS

⚙️ Menyiapkan dan menyesuaikan MiniOS

🛡️ Pemeliharaan dan pemulihan

📖 Referensi

🛠️ Pengembangan

it

📋 Per iniziare

🚀 Installazione di MiniOS

🖥️ Usare MiniOS

⚙️ Preparare e personalizzare MiniOS

🛡️ Manutenzione e ripristino

📖 Riferimento

🛠️ Sviluppo

pt-BR

📋 Primeiros passos

🚀 Instalando o MiniOS

🖥️ Usar MiniOS

⚙️ Preparando e personalizando o MiniOS

🛡️ Manutenção e recuperação

📖 Referência

🛠️ Desenvolvimento

ru

📋 Начало работы

🚀 Установка MiniOS

🖥️ Использование MiniOS

⚙️ Подготовка и настройка MiniOS

🛡️ Обслуживание и восстановление

📖 Справочник

🛠️ Разработка

Clone this wiki locally