Леннарт Поттеринг (Lennart Poettering) предложи да се включи в системния мениджър systemd промяна, която позволява зареждане на системата, използвайки изображение на кореновата файлова система, получено от външен хост чрез протокола HTTP. Промяната се състои в разширяване на systemd с възможността не само да изтегля дисково изображение по HTTP на началния етап на зареждане, но и да разархивира изтегленото изображение, да го свърже с блочно устройство в loopback режим, да монтира блочното устройство като /sysroot и да зареди системата от него.
Подкрепата за изтегляне на дискови изображения по време на зареждане на системата чрез systemd-import-generator вече е включена в състава на systemd 257. Останалата функционалност все още е на етап работен прототип, изискващ доработка. В реализацията не се поддържа пълен цикъл на зареждане, но в бъдеще функционалността планират да бъде доведена до зареждане чрез UEFI HTTP Boot на универсални изображения на ядрото UKI (Unified Kernel Image), които обединяват в един файл зареждач за UEFI (UEFI boot stub), изображение на ядрото Linux и зареждано в паметта системно обкръжение initrd.
URL за изтегляне на системното изображение планират да изчисляват на базата на URL, зададен за EFI изображение в настройките на UEFI HTTP Boot (например, при зареждане чрез EFI HTTP Boot «http://example.com/somedir/myimage.efi», присъстващият в UKI initrd обработчик ще изтегли изображението rootfs като «http://example.com/somedir/myimage.raw.xz»). В бъдеще, освен HTTP, като транспорт за получаване на изображението планират да добавят поддръжка за технологията NVMe-over-TCP, която позволява достъп до NVMe устройства по мрежата (NVM Express over Fabrics), използвайки протокола TCP.
Предполага се, че зареждането с изображения, получени от външен хост, ще опрости организацията на тестването на съвременни неизменяеми („immutable“) операционни системи на реално оборудване. Разработчикът може на своя компютър да създаде изображение със системно обкръжение с помощта на утилитата mkosi и да го направи достъпно чрез HTTP с командата «mkosi -f serve». На компютъра, на който трябва да се тестира работата на системата, е достатъчно да се включи в EFI зареждането по HTTP и да се добави URL на изтегляното изображение с командата: kernel-bootcfg —add-uri=http://192.168.47.11:8081/image.efi —title=testloop —boot-order=0
След като можете просто да рестартирате компютъра, той ще зареди стандартния образ на ядрото UKI, който след това ще зареди подготвения от разработчика образ на диска с кореновата файлова система. Досега, преди деактивирането на EFI зареждането по HTTP, всяко следващо рестартиране на компютъра ще води до зареждане на нов системен образ. При подобно тестване не се засягат локалните дискове.
Източник: opennet.ru
