Леннарт Поттеринг (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
