์๋ ํ์ญ๋๊น!
์ด ๋ฌธ์์์๋ WDS์ UEFI ๋ถํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ฐ๋ผ์ผ ํ๋ ๋จ๊ณ๋ฅผ ์ค๋ช ํฉ๋๋ค.
์ ๊ฒ๋ค. ์ด ๋ฌธ์์ ์ง์นจ์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์ด ์ด๋ฏธ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
1. Windows Server 2012R2 (ะธะปะธ ะฝะพะฒะตะต)
2. ะะพะปะฝะพัััั ะฝะฐัััะพะตะฝะฝัะน DHCP ะดะปั ัะฐะฑะพัั ั WDS
3. ะกะพะฑััะฒะตะฝะฝะพ ัะฐะผ WDS
4. IIS
5. ะะธัััะฐะปัะฝะฐั ะผะฐัะธะฝะฐ ะธะปะธ ะะ ั Ubuntu
๋ํ ์ ์ ํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ ์กฐ์น์ ๋ํด ์ค๋ช
ํฉ๋๋ค.
๊ฒ์์ ์ฉ์ดํ๊ฒ ํ๊ณ ์๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด ์ค๋ช
ํ์ต๋๋ค.
๋จธ๋ฆฌ๋ง
๋๋ ๋ง์ ์ข์ ๊ฒ๋ค๋ก ์ง์ฅ์์ WDS๋ฅผ ๋ง๋ค์์ต๋๋ค, tk. ๋ง์ ํ๋์ ๋๋ผ์ด๋ธ๋ก ๋์์์ด ๋์๋ค๋๊ณ ๋ฎ์ด์ฐ๋ ๋ฐ ์ง์ณค์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด ๊ธฐ์ฌ๋ค์ด ์ ๋ฅผ ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์๊ณ , ๋ก๋๋ฅผ ์ํด ์ ์ด๋ฏธ์ง๊ฐ ์ถ๊ฐ๋์๊ณ , winPE ์ด๋ฏธ์ง๊ฐ ์๋ก์ด ๊ธฐ๋ฅ์ ์ป์๊ณ ๋ชจ๋ ๊ฒ์ด ์๋ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ์ฅ์น๊ฐ BIOS / ๋ ๊ฑฐ์ ๋ถํ ๋ชจ๋๋ฅผ ์ง์ํ๋ ๊ฒ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๊ฑฐ๋ ์ง์ํ๋ ๊ฒฝ์ฐ ๊ทธ ํฌํจ์ด ๋งค์ฐ ๋ช ํํ์ง ์์ ์ ์์ต๋๋ค.
์, UEFI์ ์ค์นํ ์ ์๋ ๋ ๊ฑฐ์ ๋ชจ๋์์ ์ฐฝ์ ์ค์นํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก UEFI๋ก ๋ถํ ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ Google๋ก ์ด๋ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์๋ํ๋ WDS + UEFI๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ตฌ์กฐํ๋ ์ ๋ณด๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
์ฌ์ค ๊ทธ๋์ ์ด ๊ธ์ ์ฐ๊ธฐ๋ก ๋ง์ ๋จน์์ต๋๋ค.
์์ํ๊ธฐ ์ ์ ๊ฐ์ฅ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฐ ๋ฌธ์ ๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
UEFI๋ฅผ WDS์ ์ถ๊ฐํ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ค์ ๋ช ํํ์ง ์์ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
WDS์ ๋ถํ
ํ์ผ์ ์ถ๊ฐํ๊ณ ์ฅ์น์์ ๋ถํ
์ ์๋ํ๋ ๊ฒฝ์ฐ
UEFI์ ๋ค์ ํ
์คํธ๊ฐ ํ์๋ฉ๋๋ค.
The selected boot device failed. Press <Enter> to Continue.
๋๋ Boot Device Not Found
๊ทธ๋ฌ๋ ๋ ๊ฑฐ์์์ ๋ก๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๊ฐ๋ฅํ ์ต์
์ค ํ๋๋ ํ์ผ์ด ์๋ค๋ ๊ฒ์
๋๋ค. wdsmgfw.efi,
๋ค์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ: %WDSpath%Bootx64wdsmgfw.efi
์ฌ๊ธฐ์์ ๊ฐ์ ธ๊ฐ ์ ์์ต๋๋ค. C:WindowsSystem32RemInstbootx64wdsmgfw.efi
๋๋ ์ด๋ค ์ด์ ๋ก ์ด ํ์ผ์ด ๋๋ฝ๋ ๊ฒฝ์ฐ ๋ค์ ์์น์ ๊ฒ์ํ์ต๋๋ค.
์ด ์๋ฃจ์
์ ๋ํด
์ด ๋ฌธ์ ๋ก ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ์ฃฝ์์ต๋๋ค. ๋ฌธ์ ๊ฐ WDS ๋๋ DHCP ๊ตฌ์ฑ ์ด๋๊ฐ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๋ค์ํ ์ํคํ
์ฒ์ ๋ํ ๋ฒค๋ ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ DHCP ์ต์
060, 066, 067์ ๊ตฌ์ฑํ์ฌ ์ ์ฑ
์ ๊ตฌ์ฑํ์ต๋๋ค.
DHCP ๊ตฌ์ฑ์ ์ํ ASCII ์ํคํ ์ฒ
PXEClient:Arch:00000 - BIOS/๋ ๊ฑฐ์
PXEํด๋ผ์ด์ธํธ:Arch:00006 - UEFI x86
PXEํด๋ผ์ด์ธํธ:Arch:00007 - UEFI x64
๋ํ ๋ถํ
ํ์ผ์ ๋ํ ๋ค์ํ ์ต์
์ ์๋ํ์ต๋๋ค. .efi
- SYSLINUX
- ๋ ๋ฒ๋ 2
๋ํ ์ด๋ฒคํธ ๋ก๊ทธ์์ ๋ฌธ์ ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ์ต๋๋ค.
win + r -> eventvwr -> ะััะฝะฐะปั ะฟัะธะปะพะถะตะฝะธะน ะธ ัะปัะถะฑ -> Microsoft -> Windows -> Deployment-Services-Diagnostics
ํ์ง๋ง ์์์ ๋งํ๋ฏ์ด ๋ฌธ์ ๋ ํ์ผ์ ์์ต๋๋ค. wdsmgfw.efi.
์ค์๋ก ์ง์ ์ญ์ ํ๊ฑฐ๋ ์ค์น ์ค์ ๋ณต์ฌ๋์ง ์์์ต๋๋ค.
WDS๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๊ธ์, ์์ํ์!
๊ต์
1๋จ๊ณ - WDS๊ฐ ์๋ํ๋์ง ํ์ธ
๋คํธ์ํฌ๋ฅผ ํตํ UEFI ๋ชจ๋ ๋ถํ ์ ์ง์ํ๋ ์ฅ์น ๋๋ ๊ฐ์ ๋จธ์ ์ ๊ฐ์ ธ์ ๋ถํ ์ ์๋ํฉ๋๋ค.
๋ค์ ๊ทธ๋ฆผ์ด ์์ด์ผ ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ณ์ํ ์ ์์ต๋๋ค.
๊ทธ๋ ์ง ์๋ค๋ฉด ๋ด๊ฐ ์๋ฌธ์ ์ด ๊ฒ์ ์ฐธ์กฐํ์ญ์์ค.
2๋จ๊ณ - iPXE ๋ถํ ํ์ผ ๋ง๋ค๊ธฐ
๋ฏธ๋ฆฌ ์ค๋น๋ Ubuntu๋ฅผ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ด๊ณ ๋ค์ ์ค์ ๋ถ์ฌ ๋ฃ์ต๋๋ค.
git clone https://git.ipxe.org/ipxe.git ipxe
์ฌ๊ธฐ์์ C ๋ฐ C++๋ฅผ Ubuntu์ ์ปดํ์ผํ๋ ๋ฐ ํ์ํ ํจํค์ง๋ฅผ ์ถ๊ฐํด์ผ ํ ์๋ ์๋ค๋ ์์ ์ธ๊ธ์ ํ๊ณ ์ถ์ต๋๋ค.
๋ฐฉ๊ธ ์ค์นํ์ต๋๋ค.
๋ค์ด๋ก๋? - ์์ฒญ๋!
์ด์ ์ด์
๋ธ๋ฆฌ์ ๋ํ ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
ํฐ๋ฏธ๋์์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
cd ipxe/src
gedit chain.ipxe
๊ทธ๋ฆฌ๊ณ ๋ค์ ์ฝ๋๋ฅผ ์ด ํ์ผ์ ๋ถ์ฌ๋ฃ๊ณ ์ ์ฅํฉ๋๋ค.
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe
ํฐ๋ฏธ๋๋ก ๋์๊ฐ์ ์ปดํ์ผ์ ์์ํฉ๋๋ค.
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
๋ชจ๋ ๊ฒ์ด ์ ์์ด๋ฉด ํฐ๋ฏธ๋์ ๋ค์ ์ถ๋ ฅ์ด ํ์๋์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ผ ipxe.efi, ๋์ค์: ipxe/src/bin-x86_64-efi/ipxe.efi
์ด๋ค ์ด์ ๋ก ์ค์ค๋ก ์ปดํ์ผํ ์ ์๋ค๋ฉด,
๋๋ ๋ด ๊ฒ์ ๋ถ์๋ค
์์ ๋ถํ
ํ๋๋ก ์ปดํ์ผ๋ฉ๋๋ค. http://192.168.0.100/install.ipxe
์ด๊ฒ์ด ์ฐ๋ถํฌ์ ์ ๋ถ์ ๋๋ค.
3๋จ๊ณ - WDS์ ipxe.efi ์ถ๊ฐ
๋ ๋ฒ์งธ ๋จ๊ณ์์ ๋ฐ์ ํ์ผ์ ๊ฐ์ ธ์ ๋ณต์ฌํฉ๋๋ค.
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
์ด๋ฆ์ BOOTX64.EFI๋ก ๋ฐ๊พผ ํ.
ํ์ํ์ง ์์ต๋๋ค. ๋ ํธ๋ฆฌํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์ํฉ๋๋ค. cmd๋ฅผ ๊ด๋ฆฌ์๋ฅผ ๋์ ํ์ฌ ๋ค์ ๋ช ๋ น์ ์์ฑํ์ญ์์ค.
wdsutil /set-server /bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
ะธ
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
์ด๋ ๊ฒ ํ๋ฉด ๊ฒฐ๊ณผ ํ์ผ์ด WDS๋ฅผ ํตํด ๋ค์ด๋ก๋๋๋๋ก ์ค์ ๋ฉ๋๋ค.
๊ตฌ์ฑ์ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
wdsutil /get-server /Show:Config
๋ํ ipxe.efi ํ์ผ์ ๋ณต์ฌํ๊ณ ์ด๋ฆ์ BOOTIA32.EFI๋ก ๋ณ๊ฒฝํ๊ณ ๋ง์ผ์ ๋๋นํ์ฌ ๋ถํ
์ ๊ตฌ์ฑํ์ต๋๋ค. architecture:x86uefi
๊ทธ๋ฌ๋ ๋์ฒด๋ก ์ด๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. Bootmgfw.efi ํ์ผ์ x86์ ์ง์ํ์ง ์์ต๋๋ค.
๋ฌด์จ ์ผ์ด ์์๋์ง ํ์ธํด ๋ด
์๋ค.
ํ๋ฅญํฉ๋๋ค. WDS๋ ๋ค์ด๋ก๋ํ ํ์ผ์ ์ ์กํ๊ณ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๊ตฌ์ฑ์ ์ฐพ์ต๋๋ค. http://192.168.0.100/install.ipxe
4๋จ๊ณ - ๋ฉ๋ด ๊ตฌ์ฑ
์ฌ์ดํธ์ ๋ฃจํธ ํด๋๋ก ์ด๋ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. C:inetpubwwwroot
ํ ์คํธ ํ์ผ ๋ง๋ค๊ธฐ ์ค์น.ipxe.
์ ๋ฐ๋ผ ๊ตฌ์ฑํ์ญ์์ค.
๋ฌ์์์ด๋ ์์ต๋๋ค
๋ด๊ฐ ์ฆ๊ฒผ๋ค
install.ipxe ๊ตฌ์ฑ ์
#!ipxe
:start
menu Please choose an operating system to start/install
item --gap Start Win PE
item WinPE-x64 WinPE x64
item --gap ipxe shell
item shell Drop to iPXE shell
choose target && goto ${target}
:failed
echo Booting failed, dropping to shell
goto shell
:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:WinPE-x64
kernel http://192.168.0.100/wimboot
initrd http://192.168.0.100/peSE/Boot/bcd
initrd http://192.168.0.100/peSE/Boot/boot.sdi
initrd http://192.168.0.100/peSE/Boot/peSE64.wim
boot || goto failed
winPE๋ฅผ ๋ก๋ํ๊ธฐ ์ํ ๊ตฌ์ฑ์ ๋ํด ์ฝ์ ์ ์์ต๋๋ค.
5๋จ๊ณ - MIME ์ ํ
๋ฉ๋ด๋ฅผ ์์ฑํ๊ณ ํ์ํ ๋ชจ๋ ํ์ผ์ IIS ๋ฃจํธ ํด๋์ ์ถ๊ฐํ ํ,
์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
์๋ํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ค๊ณ ํด๋ ํด๋น ์ฃผ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. HTTP 404.3 - Not Found
.
์ด๋ ๊ฒ ํ๋ ค๋ฉด IIS ์ ์ดํ์์ MIME ์ ํ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
http๋ฅผ ํตํด ๋ค์ด๋ก๋ํ ํ์ผ ํ์ฅ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ชฉ์ ์ ๊ฐ์ฅ ์ ํฉํ MIME ์ ํ์ ์ฐพ์ง ์๊ณ ๋ฌผ์์ต๋๋ค. application/octet-stream
, ๊ทธ ํ ๋ชจ๋ ๊ฒ์ด ์๋ํ์ต๋๋ค.
ํ์ฅ์๊ฐ ์๋ ํ์ผ์ ๊ฒฝ์ฐ ์ ์ ์ฌ์ฉํ์ญ์์ค.
์ฌ๊ธฐ ์ด๋ ๊ฒ :
๊ฒฐ๋ก
๊ถ๊ทน์ ์ผ๋ก UEFI๋ฅผ ํตํด ๋ก์ปฌ ๋คํธ์ํฌ์์ ๋ถํ ํ ์ ์์ต๋๋ค.
๋ชจ๋ ๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ถํ ์ ํ ๋ฉ๋ด๊ฐ ์์ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ ๋๊ตฌ๋ฅผ ์ค๋นํ๊ณ ๊ตฌ์ฑ์ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๋ฉด ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์ฝ 10-20๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.
๊ทผ๋ฌด์ผ ๊ธฐ์ค 2์ผ์ด ๊ฑธ๋ ธ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋๋ ๊ตฌ๊ธ๋ง์ ๋ง์ด ํด์ผ ํ๋ค.
์ฑ๊ณต์ ์ธ ๊ตฌํ!
์ ์๊ฒ ๋์์ ์ฃผ์ ๊ธฐ์ฌ์ ๊ด์ฌ์ ๊ฐ์ ธ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค!
Habrรฉ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ถ์ฒ : habr.com