WDS를 이용한 리눅스 설치 및 기타 시스템 관리 작업하기

   조회 2493   추천 6    

질답 게시판에 Windows 이미지 설치에 대한 글이 올라왔길래 참고해보시라고 글을 올립니다.

WDS을 이용해서 리눅스 설치(kickstart를 이용한 자동설치 및 일반설치)를 하는 방법입니다.


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

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

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

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

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

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

구성에 필요한 준비물

  1. WDS
  2. syslinux(http://www.syslinux.org 에서 최신버전으로 다운로드 받는다)
  3. 설치가 필요한 운영체제들의 ISO파일이나 기타 이미지파일
  4. 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 메뉴 작업을 하도록 한다. 이 파일이 첫째장에서 보여준 메뉴 항목을 구성하는 파일이다.

  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파일 포맷이 조금 다르니 주의하도록 하자.

아래는 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파일을 수정해서 올려놓으면 네트워크 부팅을 통해서 펌웨어를 업데이트 할 수도 있을 것이다.

맑은여름 2016-10
하아.. 어렵습니다 경민님.. ㅠ,.ㅠ 이해 할수 있을정도로 노력 하겠습니다. 고맙습니다.
     
아...좀 급하게 작성하다 보니 내용이 좀 부실합니다. ㅎㅎ
핵심은 WDS가 기본적으로 Windows 운영체제들을 설치할 때 사용하는데 리눅스나 기타 다른 유틸들을 사용하기 위해  WDS에  syslinux를 추가해서
리눅스도  WDS를 통해서 네트워크 설치를 할 수 있도록 하는 것 입니다.
사실  리눅스 네트워크 설치(kickstart) ,윈도우즈 네트워크 설치(WDS) 부분들이 각각 한 개의 강좌로 나눠져야 되는데 길어질 것 같아서 대략적인 구조만 설명했습니다.
시간내서 각각에 대한 부분을 작성해보도록 하겠습니다...
          
맑은여름 2016-10
깜박하고 추천을 지금 하고 갑니다. 항상 고맙습니다
          
Ray 2016-10
추가로 내용정리까지 해주신다니 눈물이 앞을 가립니다 감사합니다
Ray 2016-10
2cpu 열회원분께서 이렇게 글로써까지 ..
몽쉘 2016-10
강좌 잘 봤습니다. 감사합니다
신현준 2016-10
아~ PXE 부팅은 리눅스를 통해서 하는거군요... ^^ 저는 윈도우면 윈됴우의 부트로더 그러니까 BCD를 통해서 하는줄 알았습니다.
한번 도전해 봐야 겠네요. 시놀에서 PXE 부트 지원하더라구요. ^^ DHCP서버 구성해서요. 감사합니다.
     
엄밀히 말하면 리눅스를 통해서 하는것은 아니고 Windows에  pxelinux 를 올려서 하는것입니다.
한 네트워크에 리눅스 설치서버,윈도우즈 설치서버가 존재하면 복잡해져서 한개로 통합해서 운영하는 것 입니다.
          
신현준 2016-10
아 그렇군요. 저도 좀 찾아보니 원격으로 부팅은 서버에 로더를 올려 놓고... 클라이언트에서 말그래도 부팅을 해주는 것이 아니라...
부팅해서 설치의 경우 인거 같았습니다. 리눅스는 잼병이라... 확실히 어렵긴 하네요. ^^ 익숙하지 않아서...

어쩐지... BCD를 TFTP로 올려 놓고 PXE 부팅하려니 부팅이 안되는게 제가 개념을 잘 못잡았나 봅니다. 하하~
좋은 정보 감사합니다. ^^ 사실 저의 경우 윈도우는 간단히 VHD로 넣는지라... BCD를 서버에 넣으면...
BCD 오염에서 탈출할수 있을까 하는 생각이였는데... 그개념은 아닌듯 하네요. ^^

그래픽 프로그램 보면... 서버에서 라이센스 쏴주는 것처럼요... ^^




제목Page 1/12
03-12   1329   엠브리오
03-07   1415   안형곤
03-07   2054   이태욱
02-17   3196   stone92김경민
01-31   10128   제온프로
2016-12   10412   민욱님
2016-12   8338   누굴까
2016-12   7839   백두성
2016-12   9416   QS왕통키손광민
2016-11   12021   stone92김경민
2016-11   12898   stone92김경민
2016-11   7901   이성만
2016-10   7739   YooDH
2016-10   6574   테크인아트21
2016-10   5569   stone92김경민
2016-10   4281   stone92김경민
2016-10   3917   stone92김경민
2016-10   2665   엠브리오
2016-10   2494   stone92김경민
2016-10   3499   YooDH