Repository navigation
Network Boot
This page describes how to load MiniOS over the network: PXE (kernel + initrd + MiniOS data) and HTTP ISO (from=http://…). That is the only purpose of networking inside the MiniOS initramfs.
It is not about:
- Configuring NetworkManager or a lasting static IP after the system is up
- Wi‑Fi in the initrd
- live-config (late userspace)
Session networking after boot is separate. For durable wired static IP, use the installer Network step, NetworkManager, or ifupdown—not the PXE ip= parameter.
Related: Boot parameters (ip, from, cache).
| Mode | What you boot | How MiniOS data is obtained |
|---|---|---|
| PXE | Kernel + initrd from a network boot server | Non-empty ip= without from=http://… → initrd downloads MiniOS files from the PXE data server |
| HTTP ISO | Kernel + initrd from local media or PXE |
from=http://…/minios.iso → initrd brings up the network and mounts the ISO with httpfs2
|
| Local media | USB / ISO / disk | No initrd network; local search only |
Initramfs builders: LiveKit (livekit-mos) or dracut (dracut-mos). Both use the same LiveKit network helpers for early fetch.
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://… has precedence over ip=. In that mode, ip= supplies static addressing for the HTTP ISO connection. Otherwise, any non-empty ip= selects the PXE data path and skips local media. Do not add ip= on a normal USB/ISO boot just to "set a static address." Neither network path falls back to local media if discovery or download fails.
| Requirement | Notes |
|---|---|
| Wired Ethernet (or virtio/vmxnet in VMs) | First detected non-loopback interface is used; link and reachability are not checked, and there is no BOOTIF / ethdevice selection in initrd |
| Initrd with network modules | Built for package variants other than the internal minimum value (--network, often --cloud) |
| No reliance on Wi‑Fi | Wireless is not supported in the network-boot path |
| Prefer NICs without firmware blobs | Firmware-dependent cards often fail in initrd |
| Prefer Standard or larger images | The Flux edition omits network NIC modules, so PXE / HTTP ISO is effectively unsupported |
| HTTP only for ISO URL |
from=http://… works; https:// is not supported
|
Tools in the initrd: busybox ifconfig, route, udhcpc, wget, tftp, and @mount.httpfs2. There is no NetworkManager in the initrd.
- Firmware / PXE server loads the MiniOS kernel and initrd (pxelinux, iPXE, etc.—outside MiniOS itself).
- Kernel cmdline includes a non-empty
ip=(and normallyboot=livefor a full MiniOS boot). - Initrd configures a static address from
ip=, contacts the server field, downloads a file list, then MiniOS bundles/files. - System continues into the live root as usual.
ip=<client-ip>:<server-ip>:<gateway-ip>:<netmask>[:<port>]
| Field | Role |
|---|---|
| client-ip | Address assigned with busybox ifconfig
|
| server-ip | Host for HTTP/TFTP MiniOS data; also written as a DNS nameserver in the initrd |
| gateway-ip | Default route; also written as a DNS nameserver |
| netmask | Dotted IPv4 netmask (not CIDR prefix length) |
| port | Optional HTTP port for the file list and files (default 7529) |
Examples:
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
-
HTTP (preferred):
http://<server-ip>:<port>/PXEFILELIST?<kernel-release>:<machine>then each path listed in that file from the same host/port. -
TFTP: busybox
tftpis selected only if the initial HTTP request forPXEFILELISTfails. A later HTTP file-download failure does not switch the transfer to TFTP.
Default port is 7529 when the fifth field is omitted.
| Expectation | Reality |
|---|---|
Kernel / dracut forms (ip=dhcp, ip=:::::eth0:dhcp, …) |
Not supported — misparsed as a client address |
| Static IP for the whole live session | Not supported — after boot, NetworkManager (or similar) owns the interface |
| Static IP while loading MiniOS data from USB/ISO |
Do not use — without from=http://…, it forces PXE data download |
| Dedicated DNS list | Only gateway + server are used as nameservers in the initrd |
Load MiniOS data from a remote ISO without a full PXE file list:
from=http://192.168.1.1/path/minios.iso
Behavior:
- Initrd brings up the network:
- If
ip=is set → static config as above - If
ip=is omitted → DHCP via busyboxudhcpc
- If
- Mounts the remote ISO with
httpfs2 - Continues looking up MiniOS content on that mount
Optional cache= (megabytes) enables an httpfs download cache, for example cache=512.
Only http:// is accepted for this remote-ISO path. https:// is not supported.
| Item | After switch_root |
|---|---|
| Kernel IP/routes on the NIC | May remain until userspace reconfigures the interface |
Initrd DNS (resolv.conf) |
Not durable session policy |
| Session network | Typically NetworkManager on default MiniOS images |
Meaning of ip=
|
Early fetch only — not a remembered static profile |
If the root is still fed by httpfs, NetworkManager reconfiguring the NIC can disrupt the live root. Plan network-boot deployments with that in mind (e.g. copy to RAM / avoid clobbering the fetch interface where possible).
Late userspace live-config may briefly bring up networking only to download remote hooks/preseeds (Setup_network). That is unrelated to PXE/ip= durable addressing.
- Putting
ip=on a USB/ISO cmdline "for static IP" → system tries PXE download instead of local media unlessfrom=http://…selected HTTP ISO boot first. - Using
ip=dhcpor other kernelip=syntax → wrong parser, broken address setup. - Expecting Wi‑Fi or multi-NIC
BOOTIFselection in initrd → not implemented. - Using a Flux image for PXE/HTTP ISO → network modules missing from initrd.
- Serving the ISO only over HTTPS →
from=http://…will not match. - Confusing this with installer/NetworkManager static configuration after login.
| Scenario | Assessment |
|---|---|
PXE + ip=… + HTTP list on :7529 (or TFTP after the HTTP list request fails), simple wired / virtio |
Supported target |
from=http://…iso + DHCP (or ip=), same NIC class |
Usually works |
| Normal USB/ISO boot | Initrd network not used |
Session static via ip=
|
Not supported |
Multi-NIC / firmware NIC / Wi‑Fi / https:// / Flux edition |
Weak or unsupported |
| Piece | Location in the MiniOS tree |
|---|---|
| Init entry | linux-live/initramfs/livekit-mos/init |
| Network + PXE + HTTP ISO |
linux-live/initramfs/livekit-mos/lib/livekitlib (init_network_ip, download_data_pxe, mount_data_http, find_data) |
LiveKit builder (--network) |
linux-live/initramfs/livekit-mos/mkinitrfs |
| Dracut MiniOS module | linux-live/initramfs/dracut-mos/90minios/ |
When -n is passed |
linux-live/build-initramfs (non-minimum) |
-
Boot parameters — full parameter table (
ip,from,cache, …) - Initrd system discovery — source precedence, local discovery, and failure behavior
- live-config — late userspace configuration (not network boot)
- System architecture
-
Building MiniOS — initramfs builder (
livekit/dracut)
🌐 Languages
📋 Getting started
🚀 Installing MiniOS
- Installation methods
- Verifying downloads
- Installation tools
- Manual file-based installation
- MiniOS Installer
🖥️ Using MiniOS
⚙️ Preparing and customizing MiniOS
- Preconfiguring MiniOS
- Managing modules
- Managing kernels
- Creating custom MiniOS images
- Customizing the boot menu
🛡️ Maintenance and recovery
📖 Reference
- System architecture
- Boot process
- Boot parameters
- Configuration
- Package and edition contents
🛠️ Development
📋 Erste Schritte
🚀 MiniOS installieren
- Installationsmethoden
- Downloads verifizieren
- Installationswerkzeuge
- Manuelle dateibasierte Installation
- MiniOS-Installationsprogramm
🖥️ MiniOS verwenden
⚙️ MiniOS vorbereiten und anpassen
- MiniOS vorkonfigurieren
- Module verwalten
- Kernel verwalten
- Eigene MiniOS-Images erstellen
- Startmenü anpassen
🛡️ Wartung und Wiederherstellung
📖 Referenz
- Systemarchitektur
- Startvorgang
- Startparameter
- Konfiguration
- Paket- und Editionsinhalte
🛠️ Entwicklung
📋 Primeros pasos
🚀 Instalando MiniOS
- Métodos de instalación
- Verificación de descargas
- Herramientas de instalación
- Instalación manual basada en archivos
- Instalador de MiniOS
🖥️ Usar MiniOS
⚙️ Preparar y personalizar MiniOS
- Preconfiguración de MiniOS
- Gestión de módulos
- Gestión de kernels
- Creación de imágenes personalizadas de MiniOS
- Personalizar el menú de arranque
🛡️ Mantenimiento y recuperación
- Actualizar MiniOS
- Copia de seguridad de MiniOS
- Solución de problemas
- Seguridad
- Rendimiento
- Virtualización
📖 Referencia
- Arquitectura del sistema
- Proceso de arranque
- Parámetros de arranque
- Configuración
- Contenido de paquetes y ediciones
🛠️ Desarrollo
📋 Premiers pas
🚀 Installation de MiniOS
- Méthodes d'installation
- Vérification des téléchargements
- Outils d'installation
- Installation manuelle basée sur les fichiers
- Programme d’installation MiniOS
🖥️ Utiliser MiniOS
⚙️ Préparer et personnaliser MiniOS
- Préconfiguration de MiniOS
- Gestion des modules
- Gestion des noyaux
- Créer des images MiniOS personnalisées
- Personnaliser le menu de démarrage
🛡️ Maintenance et récupération
📖 Référence
- Architecture du système
- Processus de démarrage
- Paramètres de démarrage
- Configuration
- Contenu des paquets et éditions
🛠️ Développement
📋 Memulai
🚀 Menginstal MiniOS
- Metode instalasi
- Memverifikasi unduhan
- Alat instalasi
- Instalasi manual berbasis file
- Penginstal MiniOS
🖥️ Menggunakan MiniOS
⚙️ Menyiapkan dan menyesuaikan MiniOS
- Pra-konfigurasi MiniOS
- Mengelola modul
- Mengelola kernel
- Membuat citra MiniOS kustom
- Menyesuaikan menu boot
🛡️ Pemeliharaan dan pemulihan
📖 Referensi
- Arsitektur sistem
- Proses boot
- Parameter boot
- Konfigurasi
- Isi paket dan edisi
🛠️ Pengembangan
📋 Per iniziare
🚀 Installazione di MiniOS
- Metodi di installazione
- Verifica dei download
- Strumenti di installazione
- Installazione manuale basata su file
- Installatore MiniOS
🖥️ Usare MiniOS
⚙️ Preparare e personalizzare MiniOS
- Preconfigurazione di MiniOS
- Gestione dei moduli
- Gestione dei kernel
- Creazione di immagini MiniOS personalizzate
- Personalizzazione del menu di avvio
🛡️ Manutenzione e ripristino
- Aggiornamento di MiniOS
- Backup di MiniOS
- Risoluzione dei problemi
- Sicurezza
- Prestazioni
- Virtualizzazione
📖 Riferimento
- Architettura di sistema
- Processo di avvio
- Parametri di avvio
- Configurazione
- Contenuto di pacchetti ed edizioni
🛠️ Sviluppo
📋 Primeiros passos
🚀 Instalando o MiniOS
- Métodos de instalação
- Verificando downloads
- Ferramentas de instalação
- Instalação manual baseada em arquivos
- Instalador do MiniOS
🖥️ Usar MiniOS
⚙️ Preparando e personalizando o MiniOS
- Pré-configurando o MiniOS
- Gerenciando módulos
- Gerenciando kernels
- Criando imagens personalizadas do MiniOS
- Personalizando o menu de boot
🛡️ Manutenção e recuperação
- Atualizando o MiniOS
- Fazendo backup do MiniOS
- Solução de problemas
- Segurança
- Desempenho
- Virtualização
📖 Referência
- Arquitetura do sistema
- Processo de boot
- Parâmetros de boot
- Configuração
- Conteúdo dos pacotes e edições
🛠️ Desenvolvimento
📋 Начало работы
🚀 Установка MiniOS
- Методы установки
- Проверка загрузок
- Инструменты установки
- Ручная установка на основе файлов
- Установщик MiniOS
🖥️ Использование MiniOS
⚙️ Подготовка и настройка MiniOS
- Предварительная настройка MiniOS
- Управление модулями
- Управление ядрами
- Создание пользовательских образов MiniOS
- Настройка загрузочного меню
🛡️ Обслуживание и восстановление
- Обновление MiniOS
- Резервное копирование MiniOS
- Устранение неполадок
- Безопасность
- Производительность
- Виртуализация
📖 Справочник
- Архитектура системы
- Процесс загрузки
- Параметры загрузки
- Конфигурация
- Содержимое пакета и редакций
🛠️ Разработка