Lennart Poettering a proposé d'intégrer dans le gestionnaire système systemd une modification permettant de démarrer le système en utilisant une image de système de fichiers racine obtenue depuis un hôte externe via le protocole HTTP. La modification consiste à étendre systemd de manière à ce qu'il puisse non seulement télécharger l'image disque par HTTP au début du processus de démarrage, mais aussi déballer l'image téléchargée, la lier à un dispositif bloc en mode loopback, monter le dispositif bloc comme /sysroot et démarrer à partir de celui-ci.
La prise en charge du téléchargement d'images disque lors du démarrage du système via systemd-import-generator est déjà incluse dans systemd 257. Le reste des fonctionnalités est encore en phase de prototype de travail, nécessitant des améliorations. Actuellement, le cycle de démarrage complet n'est pas supporté, mais à l'avenir, la fonctionnalité sera développée pour permettre le démarrage via UEFI HTTP Boot d'images kernel universelles UKI (Unified Kernel Image), qui regroupent dans un même fichier le chargeur pour UEFI (UEFI boot stub), l'image du noyau Linux et l'environnement système initrd à charger en mémoire.
L'URL pour télécharger l'image système sera calculée sur la base de l'URL spécifiée pour l'image EFI dans les paramètres UEFI HTTP Boot (par exemple, lors du démarrage via EFI HTTP Boot « http://example.com/somedir/myimage.efi », le gestionnaire UKI dans initrd téléchargera l'image rootfs comme « http://example.com/somedir/myimage.raw.xz »). À l'avenir, en plus de HTTP, la prise en charge de la technologie NVMe-over-TCP sera ajoutée pour permettre l'accès aux disques NVMe via le réseau (NVM Express over Fabrics) en utilisant le protocole TCP.
Il est prévu que le démarrage avec des images obtenues d'un hôte externe simplifie l'organisation des tests de systèmes d'exploitation modernes immuables sur un matériel réel. Le développeur peut créer une image avec l'environnement système à l'aide de l'outil mkosi et la rendre disponible via HTTP avec la commande « mkosi -f serve ». Sur l'ordinateur où le test du fonctionnement du système est requis, il suffit d'activer l'option de démarrage par HTTP dans l'EFI et d'ajouter l'URL de l'image à télécharger avec la commande : kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0
Après quoi, il suffit de redémarrer l'ordinateur et il chargera l'image par défaut du noyau UKI, qui chargera ensuite l'image disque préparée par le développeur avec le système de fichiers racine. Avant la désactivation du démarrage EFI via HTTP, chaque redémarrage ultérieur de l'ordinateur entraînera le chargement d'une nouvelle image système. Ce type de test n'affecte en aucune manière les disques locaux.
Source : opennet.ru
