WDS,syslinux를 이용한 네트워크 설치서버 구축하기

언제나 그렇듯이 경어는 생략합니다. 글에 대한 의견이나 반론은 stone@nuxinfo.net으로 메일 주시면 됩니다. 아니면 코맨트 남겨주시면 제가 확인하도록 하겠습니다.

시스템 관리자의 업무 중 에서 꽤 많은 비중을 차지하는 시스템 설치 작업을  좀더 편하고 쉽게 하기 위한 방법에 대해서 기술해보고자 한다.

네트워크를 통한 OS설치 작업은 그 역사가 꽤 깊다. 솔라리스의 jumpstart,리눅스의 kickstart,윈도우즈의  RIS(현재는 WDS로 변경됨) 등등이 그 종류이다.

현재 출시되는 대부분의 PC,Laptop,Server등은 모두 네트워크 부팅을 지원하며 심지어는 가상화 시스템도 네트워크 부팅을 지원하므로 통합설치서버를 구성해두면 대부분의 시스템을 CD나 플로피등을 이용하지 않고도 손쉽고 빠르게 OS설치 및 펌웨어 업그레이드 등을 진행할 수 있게 된다.

아래는 구성된 설치 서버의 예제화면이다.  WDS와 syslinux를 조합해서 Windows 시스템 설치 및 리눅스 설치, 각종 펌웨어 업그레이드를 위한 DOS부팅등등을 지원하도록 해두었다.

pxebootmenu

이 강좌는 기본적으로  Windows Deployment Service(이하 WDS)를 구성해본 경험이 있고 여러 운영체제가 운영되는 환경에 초점을 맞춰  설명을 진행할 것이다.

구성에 필요한 준비물

  1. WDS
  2. syslinux(http://www.syslinux.org 에서 최신버전으로 다운로드 받는다)
  3. 설치가 필요한 운영체제들의 ISO파일이나 기타 이미지파일
  4. FTP Server 또는 HTTP server

기본 작업

기존에 WDS가 설치되어 있는 상태에서 아래와 같이 작업을 진행하도록 하자.

먼저 다운로드(https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip) 받은 syslinux을 적당한곳에 압축을 해제하고 필요한 파일들을 WDS설치 디렉토리(보통은 c:\RemoteInstall 이다)에 복사한다.

  • syslinux-6.03\core\pxelinux.0 파일을 RemoteInstall\Boot\x86 폴더로 복사
  • syslinux-6.03\bios\com32\menu\menu.c32 파일을 RemoteInstall\Boot\x86 폴더로 복사
  • syslinux-6.03\bios\com32\libutil\libutil.c32 파일을 RemoteInstall\Boot\x86 폴더로 복사
  • syslinux-6.03\bios\com32\elflink\ldlinux\ldlinux.c32 파일을 RemoteInstall\Boot\x86 폴더로 복사
  • syslinux-6.03\bios\memdisk\memdisk 파일을 RemoteInstall\Boot\x86 폴더로 복사
  • RemoteInstall\Boot\x86\pxeboot.n12 파일을 RemoteInstall\Boot\x86\pxeboot.0  으로 복사
  • RemoteInstall\Boot\x86\abortpxe.com 파일을 RemoteInstall\Boot\x86\abortpxe.0  으로 복사

위의 기본 작업이 끝나면 이제 pxeboot 메뉴 작업을 하도록 한다. 이 파일이 첫째장에서 보여준 메뉴 항목을 구성하는 파일이다.

  1. RemoteInstall\Boot\x86\pxelinux.cfg  폴더 생성
  2. 생성된 폴더(pxelinux.cfg)에   메모장이나 기타 유틸로   default 파일 생성

default파일의 sample예제이니 참고 하기 바란다. pxeboot.0  을 호출하면 기존의  WDS로 부팅되며 리눅스는 미리 구성된  ks파일을 호출해서 자동으로 설치를 진행한다. 또한 iso이미지를 직접 로딩해서 부팅하도록  memdisk를 사용했다.

필자의 경우 RemoteInstall\Boot\x86\Linux,ISO 폴더를 구성하고 각각의 버전에 맞는 커널과 램디스크 이미지를 배치했다.

kickstart파일을 생성하는 방법은 직접 찾아보도록 하자. 래드햇 계열이면 모두 적용가능하다. centos 7은 centos 6 버전과  ks파일 포맷이 조금 다르니 주의하도록 하자.

이제 모든 준비는 끝났고  WDS가 pxelinux.0을 기본적으로 로딩하도록 설정을 변경한다.

결국은 WDS가 사용하는 pxeboot를 syslinux의  pxelinux로 교체하여 구성하는 방법인 것이다.

기존의 WDS는 클라이언트—pxeboot—WDS 였다면 위의 구성은 클라이언트—pxelinux—pxeboot–WDS구성인 셈이다.

WDS서버의 cmd창을 열어서 아래와 같이 입력한다.

  • wdsutil /set-server /bootprogram:boot\x86\pxelinux.0 /Architecture:x86 
  • wdsutil /set-server /bootprogram:boot\x86\pxelinux.0 /Architecture:x64
  • wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.0 /Architecture:x86 
  • wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.0 /Architecture:x64

 

모든 설정이 끝났다면 설치를 원하는 서버나 PC의 bios에서 pxe부팅을 활성화 시킨 후 부팅하면 아래와 같은 화면이 나오면 정상적으로 구성한 것이다. default파일에 필요한 구성을 추가하면 된다. DOS환경이 기본인 펌웨어 업데이트 작업도 ISO파일을 수정해서 올려놓으면 네트워크 부팅을 통해서 펌웨어를 업데이트 할 수도 있을 것이다.

pxebootmenu

 

stone has written 25 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">