Lennart Poettering ha proposto di includere nel gestore di sistema systemd una modifica che consente di avviare il sistema utilizzando un'immagine della filesystem radice ottenuta da un host esterno tramite il protocollo HTTP. La modifica consiste nell'espansione di systemd per scaricare non solo l'immagine del disco tramite HTTP nelle fasi iniziali di avvio, ma anche di estrarre l'immagine scaricata, collegarla a un dispositivo a blocchi in modalità loopback, montare il dispositivo a blocchi come /sysroot e avviare il sistema da esso.
Il supporto per scaricare immagini di disco durante l'avvio del sistema tramite systemd-import-generator è già incluso in systemd 257. Il resto delle funzionalità è ancora in fase di prototipo e richiede ulteriori sviluppi. Attualmente non è supportato un ciclo di avvio completo, ma in futuro si prevede di completare le funzionalità per consentire il caricamento attraverso UEFI HTTP Boot di immagini universali del kernel UKI (Unified Kernel Image), che combinano in un unico file il bootloader per UEFI (UEFI boot stub), l'immagine del kernel Linux e l'ambiente di sistema initrd caricato in memoria.
L'URL per scaricare l'immagine del sistema sarà calcolato in base all'URL impostato per l'immagine EFI nelle impostazioni di UEFI HTTP Boot (ad esempio, durante l'avvio tramite EFI HTTP Boot «http://example.com/somedir/myimage.efi», l'elaboratore initrd presente in UKI scaricherà l'immagine rootfs come «http://example.com/somedir/myimage.raw.xz»). In futuro, oltre al HTTP, si prevede di aggiungere supporto per la tecnologia NVMe-over-TCP, che consente di accedere ai dispositivi NVMe tramite rete (NVM Express over Fabrics), utilizzando il protocollo TCP.
Si prevede che il caricamento di immagini provenienti da un host esterno semplifichi l'organizzazione dei test delle moderne sistemi operativi immutabili («immutable») su hardware reale. Gli sviluppatori possono creare un'immagine con l'ambiente di sistema utilizzando l'utility mkosi e renderla disponibile tramite HTTP con il comando «mkosi -f serve». Sufficientemente, sul computer su cui si desidera testare il sistema, è sufficiente abilitare l'avvio EFI da HTTP e aggiungere l'URL dell'immagine da caricare con il comando: kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0
Dopo di che, basta riavviare il computer ed esso caricherà un'immagine standard del kernel UKI, la quale poi caricherà l'immagine del disco preparata dallo sviluppatore con la filesystem radice. Fintanto che l'avvio da HTTP è attivo in EFI, ogni successivo riavvio del computer porterà al caricamento di una nuova immagine di sistema. Durante questi test, i dischi locali non vengono toccati.
Fonte: opennet.ru
