먼저 스탭 바이 스탭 튜토리얼 느낌의 글은 아닙니다.
설명할 만큼 완전하기 기능을 이해하지 못하고 대충 구축만 해서 쓰는거라서요.
일단 검색하시는 분들을 위해서 남겨 봅니다.
우선 제가 설정한 목적은 부팅불가시에 PXE를 통해서 iso 이미지로 파라곤이나 고스트 windows pe 등으로 부팅해서 복구를 하기 위한 서버를 구축 하는 것 이였습니다. 몇가지 하드웨어와 몇가지 소프트웨어 환경에서 도전을 했엇는데요..
1.synology DSM.
GUI 환경에서 간단하게 PXE 서버를 구성 가능한 점이 장점입니다.
다만 기능이 너무 재한 적이고 나사가 빠진 느낌이심했습니다.
-첫번째로 클라이언트의 아키텍처를 감지해서 차별적으로 부트로더를 보내주는 기능을 구축 할 수 없습니다.
같은 종류의 컴퓨터로 가득찬 네트워크 환경이면 큰 의미가 없겠지만. 가정에서는 특히 우리집은.. bios만 지원하는 컴퓨터와 UEFI 시스템이 석여 있어서
이 기능을 지원하지 않으면 상당히 불편 했습니다.
-둘째로 파일 이름 리매핑을 지원하지 않습니다. 리눅스 부트로더들은 거의 원하는 대로 파일 경로를 지정해 줄 수 있지만.
윈도우즈 부트로더 들은 BCD의 위치와 font 파일의 위치가 부트로더 안에 하드 코드 되어 있어서 \를 /로 변환 해 주거나
대소문자를 바꿔 주는 기능이 없으면 제대로 파일을 못찾습니다. 폴더 구조도 tftp 루트 폴더에 막 풀어놔야 해서 더럽게 보이고요..
윈도우즈 부트로더를 안 쓰면 되지 않느냐? 안타깝게도 리눅스 부트로더들은 PXE로 winpe를 UEFI 부팅 할 수가 없더군요...
-셋째로 위 문제를 해결 하기 위해서 다른 리눅스용 PXE 서버 어플리캐이션을 사용할 수가 없엇습니다. DSM의 빌트인 프로그램이 사용하는 포트는 다른 설령 빌트인 프로그램을 꺼버려도 다른 프로그램에 할당 할 수가 없었습니다.
위와 같은 문재로 UEFI 클라이언트로 부팅할 일이 생기면 UEFI 부트로더로 바꿔 주고
bios 클라이언트로 부팅할 일이 생기면 BIOS 부트로더로 바꿔 주면서 사용했엇습니다.
앞서 이야기 했던 파일이름 리매핑 문재도 있어서 UEFI의 경우 grup->ipxe->wimboot 식으로 비 효율적인 채인 부트를 했습니다.
ipxe+wimboot 조합은 ipxe 스크립트 내에서 불러올 파일의 경로를 재 정의 해 줄 수 있어서 서버가 파일 이름 리매핑을 지원 하지 않아도 사용이 가능했습니다.
2. Windows Deployment Services
다수의 컴퓨터에 윈도우즈를 쉽게 설치하기 위한 서버 기능이고 windows server에 포함되어 있습니다.
windows 기반이라 bootmgfw.efi 와 함께 발생하는 많은 문제들이 없습니다. boot.wim 파일은 전송하는 과정에 TFTP를 사용하지 않아서 속도도 빠릅니다.
클라이언트의 아키택처를 읽어서 부트로더도 잘 보내 주고요.. BCD 설정도 알아서 해 줍니다. 편해요
하지만 제 경우에는 windows server가 낫설어서 전 구성에는 좀 시간이 걸렸습니다. AD 설정을 요구하더라고요.. 뭔지도 모르고 하긴 했으나 중간에 어벙하게 삽질을 많이 했습니다.
3. ubntu.
dnsmasq = dns서버+dhcp서버+tftp 서버가 통합되어 있습니다. 어것만 깔면 PXE 서버 완성이라는 느낌이라 처음엔 이걸로 구성했습니다.
디폴트 상태에서 \ / 변환이 자동으로 됩니다. 그래서 파일이름 리맵은 따로 사용해 보지 않았습니다. 하지만 어찌된 영문인지 TFTP 전송 속도가 재대로 나오지 않아서 포기 했습니다.
클라이언트의 아키택처를 읽어서 선택적으로 보내 주는 기능 잘 됩니다.
tftp-hpa + isc-dhcp-server
클라이언트의 아키택처를 읽어서 선택적으로 보내 주는 기능 잘 됩니다.
속도도 해결 되었고 파일 이름 리맵도 잘 됩니다. 여기 정착 했습니다.
BOOTmgfw.efi 에서 boot.wim을 로드하는 속도가 15MB/s 정도 속도가 나와 주네요. 서버쪽 스토리지 성능을 고려하면 최대치가 나와 주는것 같습니다.
다만 BIOS 부트로더 쪽에서는 여전히 로드 속도가 느립니다. 아마 pxeliunx.0 부트로더 쪽이 블럭 사이즈라던가 지정하는 기능이 미비한게 아닌가 싶네요...
부팅 영상 한번 올려 봅니다.
KickStart ½ºÅ©¸³Æ®¸¦ Â¥¼ OS ÀÚµ¿ ¼³Ä¡¸¦ ÁøÇàÇÕ´Ï´Ù.
WDS ó·³ ºÎÆ®·Î´õµµ Æ¯ÈµÈ°É ¾²´Â°Ç°¡¿ä?
³»ºÎÀûÀ¸·Î °£´ÜÇÏ°Ô TFTPº¸´Ù ºü¸¥ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ´Ù¸é ȤÇÏ´Â ¸¶À½ÀÌ µå³×¿ä.
À©µµ¿ì ºÎÆ®·Î´õ¿¡ ´ëÇؼ´Â Á¦°¡ ¾Æ´Â°Ô ¾ø³×¿ä;
¸®´ª½º·Î µûÁø´Ù¸é, initrd¸¦ ÀÚ½ÅÀÌ Ä¿½ºÅ͸¶ÀÌ¡Çؼ ³»·ÁÁÙ ¼ö ÀÖ½À´Ï´Ù.
bootmgfw.efi ÀÌÀü¿¡ wdsmgfw.efi¿³´ø°¡ wdsboot.efi¶ó´Â ·Î´õ¸¦ ¹Þ°í ÀÌ ·Î´õ ¾Ê¿¡´Â tftp°¡ ¾Æ´Ñ ´Ù¸¥ ÇÁ·ÎÅäÄÝÀÌ µé¾î ÀÖ¾î¼
Å« À̹ÌÁö¸¦ ¹ÞÀ»¶© ±×°É ¾´´Ù°í ÇÏ´Ù¶ó°í¿ä..
À©µµ¿ì´Â ¼³Ä¡µð½ºÅ©ÀÇ boot.wim ¸¸À¸·Îµµ 100MB¸¦ Èǽ ³Ñ¾î ¹ö·Á¼ ÀÌ·± ±¸Á¶·Î ¸¸µç°Í °°Àºµ¥..
¹¹ ¸®´ª½º ÂÊÀº ¼³Ä¡µð½ºÅ© ÀÚü´Â 20MB Á¤µµ ¹Û¿¡ ¾ÈµÇ´Ï ±×·±½ÄÀ¸·Î ±¸¼ºÇÒ ¾Ð·ÂÀ» ´À³¢Áö ¾ÊÀ»Áöµµ ¸ð¸£°Ú³×¿ä..