Для systemd развиваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмных ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΏΠΎ HTTP

Π›Π΅Π½Π½Π°Ρ€Ρ‚ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€ΠΈΠ½Π³ (Lennart Poettering) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² систСмный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ systemd ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ систСму с использованиСм ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π€Π‘, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ c внСшнСго хоста ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ