질답 게시판에 Windows 이미지 설치에 대한 글이 올라왔길래 참고해보시라고 글을 올립니다.
WDS을 이용해서 리눅스 설치(kickstart를 이용한 자동설치 및 일반설치)를 하는 방법입니다.
언제나 그렇듯이 경어는 생략합니다. 글에 대한 의견이나 반론은 *****@*******.net으로 메일 주시면 됩니다. 아니면 코멘트 남겨주시면 제가 확인하도록 하겠습니다.
시스템 관리자의 업무 중 에서 꽤 많은 비중을 차지하는 시스템 설치 작업을 좀더 편하고 쉽게 하기 위한 방법에 대해서 기술해보고자 한다.
네트워크를 통한 OS설치 작업은 그 역사가 꽤 깊다. 솔라리스의 jumpstart,리눅스의 kickstart,윈도우즈의 RIS(현재는 WDS로 변경됨) 등등이 그 종류이다.
현재 출시되는 대부분의 PC,Laptop,Server등은 모두 네트워크 부팅을 지원하며 심지어는 가상화 시스템도 네트워크 부팅을 지원하므로 통합설치서버를 구성해두면 대부분의 시스템을 CD나 플로피등을 이용하지 않고도 손쉽고 빠르게 OS설치 및 펌웨어 업그레이드 등을 진행할 수 있게 된다.
아래는 구성된 설치 서버의 예제화면이다. WDS와 syslinux를 조합해서 Windows 시스템 설치 및 리눅스 설치, 각종 펌웨어 업그레이드를 위한 DOS부팅등등을 지원하도록 해두었다.
이 강좌는 기본적으로 Windows Deployment Service(이하 WDS)를 구성해본 경험이 있고 여러 운영체제가 운영되는 환경에 초점을 맞춰 설명을 진행할 것이다.
구성에 필요한 준비물
- WDS
- syslinux(http://www.syslinux.org 에서 최신버전으로 다운로드 받는다)
- 설치가 필요한 운영체제들의 ISO파일이나 기타 이미지파일
- FTP Server 또는 HTTP server( 참고. ftp,http서버는 별도의 서버에서 운영해도 무관하다)
기본 작업
기존에 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 메뉴 작업을 하도록 한다. 이 파일이 첫째장에서 보여준 메뉴 항목을 구성하는 파일이다.
- RemoteInstall\Boot\x86\pxelinux.cfg 폴더 생성
- 생성된 폴더(pxelinux.cfg)에 메모장이나 기타 유틸로 default 파일 생성
default파일의 sample예제이니 참고 하기 바란다. pxeboot.0 을 호출하면 기존의 WDS로 부팅되며 리눅스는 미리 구성된 ks파일을 호출해서 자동으로 설치를 진행한다. 또한 iso이미지를 직접 로딩해서 부팅하도록 memdisk를 사용했다.
필자의 경우 RemoteInstall\Boot\x86\Linux,ISO 폴더를 구성하고 각각의 버전에 맞는 커널과 램디스크 이미지를 배치했다.
kickstart파일을 생성하는 방법은 직접 찾아보도록 하자. 래드햇 계열이면 모두 적용가능하다. centos 7은 centos 6 버전과 ks파일 포맷이 조금 다르니 주의하도록 하자.
아래는 default파일의 예제이다.
# Default boot option to use DEFAULT menu.c32 TIMEOUT 50 # Prompt user for selection PROMPT 0 # Menu Configuration MENU WIDTH 80 MENU MARGIN 10 MENU PASSWORDMARGIN 3 MENU ROWS 12 MENU TABMSGROW 18 MENU CMDLINEROW 18 MENU ENDROW 24 MENU PASSWORDROW 11 MENU TIMEOUTROW 20 MENU TITLE PXE Boot Menu # Menus # WDS LABEL WDS MENU LABEL Windows Deployment Server KERNEL pxeboot.0 LABEL CentOS 6.8(64bit) MENU LABEL CentOS 6.8 64bit KERNEL /Linux/CentOS/6.8/x86_64/vmlinuz APPEND initrd=/Linux/CentOS/6.8/x86_64/initrd.img ks=ftp://192.168.30.100/ks/cent6-ks.cfg LABEL CentOS 6.8(32bit) MENU LABEL CentOS 6.8 32bit KERNEL /Linux/CentOS/6.8/x86/vmlinuz APPEND initrd=/Linux/CentOS/6.8/x86/initrd.img LABEL AcronisTrueImage MENU LABEL AcronisBootableMedia KERNEL memdisk INITRD iso/AcronisBootableMedia.iso APPEND iso raw LABEL ESXi6 MENU LABEL ESXi6.0 Installer KERNEL memdisk INITRD iso/VMware-VMvisor-Installer-6.0.0.update02-3620759.x86_64.iso APPEND iso raw LABEL MSDOS MENU LABEL MSDOS KERNEL memdisk INITRD iso/dos.iso APPEND iso raw # Exit LABEL Exit MENU LABEL Exit KERNEL abortpxe.0
이제 모든 준비는 끝났고 WDS가 pxelinux.0을 기본적으로 로딩하도록 설정을 변경한다.
결국은 WDS가 사용하는 pxeboot를 syslinux의 pxelinux로 교체하여 구성하는 방법인 것이다.
기존의 WDS는 클라이언트---pxeboot---WDS 였다면 위의 구성은 클라이언트---pxelinux---pxeboot--WDS구성인 셈이다.
이제 WDS가 pxelinux 를 사용할 수 있도록 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파일을 수정해서 올려놓으면 네트워크 부팅을 통해서 펌웨어를 업데이트 할 수도 있을 것이다.
ÇÙ½ÉÀº WDS°¡ ±âº»ÀûÀ¸·Î Windows ¿î¿µÃ¼Á¦µéÀ» ¼³Ä¡ÇÒ ¶§ »ç¿ëÇϴµ¥ ¸®´ª½º³ª ±âŸ ´Ù¸¥ À¯Æ¿µéÀ» »ç¿ëÇϱâ À§ÇØ WDS¿¡ syslinux¸¦ Ãß°¡Çؼ
¸®´ª½ºµµ WDS¸¦ ÅëÇؼ ³×Æ®¿öÅ© ¼³Ä¡¸¦ ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °Í ÀÔ´Ï´Ù.
»ç½Ç ¸®´ª½º ³×Æ®¿öÅ© ¼³Ä¡(kickstart) ,À©µµ¿ìÁî ³×Æ®¿öÅ© ¼³Ä¡(WDS) ºÎºÐµéÀÌ °¢°¢ ÇÑ °³ÀÇ °Á·Π³ª´²Á®¾ß µÇ´Âµ¥ ±æ¾îÁú °Í °°¾Æ¼ ´ë·«ÀûÀÎ ±¸Á¶¸¸ ¼³¸íÇß½À´Ï´Ù.
½Ã°£³»¼ °¢°¢¿¡ ´ëÇÑ ºÎºÐÀ» ÀÛ¼ºÇغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù...
ÇÑ ³×Æ®¿öÅ©¿¡ ¸®´ª½º ¼³Ä¡¼¹ö,À©µµ¿ìÁî ¼³Ä¡¼¹ö°¡ Á¸ÀçÇÏ¸é º¹ÀâÇØÁ®¼ ÇÑ°³·Î ÅëÇÕÇؼ ¿î¿µÇÏ´Â °Í ÀÔ´Ï´Ù.