Systemd๋Š” HTTP๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆ๋‚˜ํŠธ ํฌ์—ํ„ฐ๋ง์€ HTTP๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ํ˜ธ์ŠคํŠธ์—์„œ ๊ฒ€์ƒ‰ํ•œ ๋ฃจํŠธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž systemd์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•  ๊ฒƒ์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ดˆ๊ธฐ ๋ถ€ํŒ… ๋‹จ๊ณ„์—์„œ HTTP๋ฅผ ํ†ตํ•ด ๋””์Šคํฌ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์šด๋กœ๋“œํ•œ ์ด๋ฏธ์ง€๋ฅผ ์••์ถ• ํ•ด์ œํ•˜๊ณ  ๋ฃจํ”„๋ฐฑ ๋ชจ๋“œ์—์„œ ๋ธ”๋ก ์žฅ์น˜์— ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ๋ธ”๋ก ์žฅ์น˜๋ฅผ /sysroot๋กœ ๋งˆ์šดํŠธํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ systemd์— ํ™•์žฅํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค.

systemd-import-generator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์ค‘์— ๋””์Šคํฌ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ด๋ฏธ systemd 257์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๊ธฐ๋Šฅ์€ ์•„์ง ์ž‘๋™ ํ”„๋กœํ† ํƒ€์ž… ๋‹จ๊ณ„์ด๋ฏ€๋กœ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ตฌํ˜„์€ ์•„์ง ์ „์ฒด ๋ถ€ํŒ… ์ฃผ๊ธฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ, ๋‚˜์ค‘์— ์ด ๊ธฐ๋Šฅ์„ UEFI HTTP ๋ถ€ํŒ…์„ ํ†ตํ•ด ๋ถ€ํŒ…ํ•˜๋„๋ก ํ™•์žฅํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ด๋Š” UEFI์šฉ ๋ถ€ํŠธ๋กœ๋”(UEFI ๋ถ€ํŠธ ์Šคํ…), Linux ์ปค๋„ ์ด๋ฏธ์ง€, ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ initrd ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๊ฒฐํ•ฉํ•˜๋Š” ๋ฒ”์šฉ ์ปค๋„ ์ด๋ฏธ์ง€ UKI(Unified Kernel Image)์˜ ๋ถ€ํŒ…์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ URL์€ UEFI HTTP ๋ถ€ํŒ… ์„ค์ •์—์„œ EFI ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด ์ง€์ •๋œ URL์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐ๋˜๋„๋ก ๊ณ„ํš๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด, EFI HTTP ๋ถ€ํŒ… "http://example.com/somedir/myimage.efi"๋ฅผ ํ†ตํ•ด ๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ UKI initrd ํ•ธ๋“ค๋Ÿฌ๋Š” rootfs ์ด๋ฏธ์ง€๋ฅผ "http://example.com/somedir/myimage.raw.xz"๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค). ์•ž์œผ๋กœ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ์ „์†ก ์ˆ˜๋‹จ์œผ๋กœ HTTP ์™ธ์—๋„ TCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ(NVM Express over Fabrics)๋ฅผ ํ†ตํ•ด NVMe ๋“œ๋ผ์ด๋ธŒ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” NVMe-over-TCP ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์™ธ๋ถ€ ํ˜ธ์ŠคํŠธ์—์„œ ์–ป์€ ์ด๋ฏธ์ง€๋กœ ๋ถ€ํŒ…ํ•˜๋ฉด ์‹ค์ œ ํ•˜๋“œ์›จ์–ด์—์„œ ์ตœ์‹  ๋ถˆ๋ณ€ ์šด์˜ ์ฒด์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ตฌ์„ฑ์ด ๊ฐ„์†Œํ™”๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” mkosi ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์˜ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ณ  "mkosi -f serve" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์„ ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ์ปดํ“จํ„ฐ์—์„œ EFI์—์„œ HTTP ๋ถ€ํŒ…์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํŒ… ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€์˜ URL์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. kernel-bootcfg โ€”add-uri=http://192.168.47.11:8081/image.efi โ€”title=testloop โ€”boot-order=0

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด ํ‘œ์ค€ UKI ์ปค๋„ ์ด๋ฏธ์ง€๊ฐ€ ๋กœ๋“œ๋˜๊ณ , ์ด์–ด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฃจํŠธ FS๋กœ ์ค€๋น„ํ•œ ๋””์Šคํฌ ์ด๋ฏธ์ง€๊ฐ€ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. EFI์—์„œ HTTP ๋ถ€ํŒ…์ด ๋น„ํ™œ์„ฑํ™”๋  ๋•Œ๊นŒ์ง€ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ๋ถ€ํŒ…ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๊ฐ€ ๋ถ€ํŒ…๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ํ…Œ์ŠคํŠธ๋Š” ๋กœ์ปฌ ๋””์Šคํฌ์— ์–ด๋–ค ์˜ํ–ฅ๋„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€