Lennart Poettering ha proposto di includere nel gestore di sistema systemd una modifica che consenta di avviare il sistema utilizzando un'immagine del filesystem radice ottenuta da un host esterno tramite il protocollo HTTP. La modifica consiste nell'estensione di systemd per scaricare non solo l'immagine disco via HTTP nella fase iniziale di avvio, ma anche per 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 il download delle immagini disco durante l'avvio del sistema tramite systemd-import-generator è già incluso in systemd 257. Il resto delle funzionalità è attualmente in fase di prototipo, che richiede ulteriori sviluppi. Al momento non viene supportato un ciclo di avvio completo, ma in futuro si prevede di completare le funzionalità per avviare tramite UEFI HTTP Boot immagini del kernel universali UKI (Unified Kernel Image), che uniscono in un unico file il caricatore per UEFI (UEFI boot stub), l'immagine del kernel Linux e l'ambiente di sistema che viene caricato in memoria, initrd.
L'URL per scaricare l'immagine di sistema sarà calcolato sulla base dell'URL specificato 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'handler UKI initrd scaricherà l'immagine rootfs come «http://example.com/somedir/myimage.raw.xz»). Inoltre, si prevede di aggiungere supporto per la tecnologia NVMe-over-TCP, che consente di accedere ai dispositivi NVMe attraverso la rete (NVM Express over Fabrics), utilizzando il protocollo TCP.
Si prevede che l'avvio da immagini ottenute da un host esterno semplifichi l'organizzazione del testing di moderni sistemi operativi immutabili su hardware reale. Il developer può creare sul proprio computer un'immagine dell'ambiente di sistema utilizzando l'utility mkosi e renderla disponibile tramite HTTP con il comando «mkosi -f serve». Sul computer su cui si desidera testare il funzionamento del sistema, basta attivare l'avvio via EFI HTTP e aggiungere l'URL dell'immagine scaricata con il comando: kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0
Dopo di che, è possibile semplicemente riavviare il computer e questo caricherà l'immagine del kernel UKI di default, che a sua volta caricherà l'immagine del disco preparata dallo sviluppatore con il filesystem radice. Fino a disabilitare il caricamento in EFI tramite HTTP, ogni successivo riavvio del computer porterà al caricamento di una nuova immagine di sistema. In questa tipologia di test non vengono toccati i dischi locali.
Fonte: opennet.ru
