Lennart Poettering propuso incluir un cambio en el administrador del sistema systemd que permitiría que el sistema arranque utilizando una imagen del sistema de archivos raíz recuperada de un host externo a través de HTTP. El cambio se reduce a ampliar systemd con la capacidad no solo de descargar una imagen de disco a través de HTTP en la etapa de arranque inicial, sino también descomprimir la imagen descargada, vincularla a un dispositivo de bloque en modo loopback, montar el dispositivo de bloque como /sysroot y arrancar el sistema desde él.
El soporte para descargar imágenes de disco durante el arranque del sistema usando systemd-import-generator ya está incluido en systemd 257. El resto de la funcionalidad aún se encuentra en la etapa de prototipo funcional y requiere mayor desarrollo. La implementación aún no admite un ciclo de arranque completo, pero en el futuro se planea ampliar la funcionalidad para arrancar mediante el arranque UEFI HTTP de imágenes de kernel universales UKI (Unified Kernel Image), que combinan en un solo archivo un gestor de arranque para UEFI (UEFI boot stub), una imagen del kernel de Linux y un entorno de sistema initrd cargado en la memoria.
Está previsto que la URL para cargar la imagen del sistema se calcule en función de la URL especificada para la imagen EFI en la configuración de arranque HTTP UEFI (por ejemplo, al cargar a través de arranque HTTP EFI "http://example.com/somedir/myimage.efi", el controlador initrd de UKI cargará la imagen rootfs como "http://example.com/somedir/myimage.raw.xz"). En el futuro, además de HTTP como transporte para obtener una imagen, se planea añadir soporte para la tecnología NVMe-over-TCP, que permite el acceso a unidades NVMe a través de la red (NVM Express over Fabrics) utilizando el protocolo TCP.
Se espera que el arranque desde imágenes obtenidas de un host externo simplifique la organización de pruebas de sistemas operativos inmutables modernos en hardware real. El desarrollador puede crear una imagen con el entorno del sistema en su computadora usando la utilidad mkosi y hacerla disponible a través de HTTP usando el comando "mkosi -f serve". En la computadora donde desea probar el sistema, solo necesita habilitar el arranque HTTP en EFI y agregar la URL de la imagen de arranque con el comando: kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0
Después de eso, simplemente puedes reiniciar la computadora y cargará la imagen del kernel UKI estándar, que luego cargará la imagen de disco preparada por el desarrollador con el sistema de archivos raíz. Hasta que se deshabilite el arranque HTTP en EFI, cada reinicio posterior de la computadora dará como resultado el arranque de una nueva imagen del sistema. Este tipo de prueba no afecta a los discos locales de ninguna manera.
Fuente: opennet.ru