본문 바로가기

넋두리/linux 이야기

[리눅스] OS 네트워크 설치[1] - TFTP


리눅스-특히나 레드햇 계열, 혹은 FedoraCentOS 같은-의 네트워크 설치에 대한 설명을 좀 하고자 합니다.
먼저 Provisioning 서버(혹은 DHCP기능을 하는 서버)와 설치하고자 하는 클라이언트 장비가 필요로하며, 각각의 장비들은 네트워크 장치(ethernet)에서 PXE(Preboot Execution Environment) 기능을 지원하여야 하고 같은 라우터(Router)나 Direct 혹은 Cross연결 되어있어야 합니다.

Provisioning 서버(DHCP서버)의 역할은 DHCP, TFTP, NFS 서버로서의 역할을 합니다. 각각의 클라이언트가 부팅을 할때, PXE를 통한 Provisioning 서버에서 netboot 용 kernel과 initrd 이미지를 클라이언트에 내려받게 해주며, 이 kernel을 통하여 부팅을 할때 마지막에 ethernet device 를 초기화하며 DHCP IP를 부여받게 됩니다. 이때에 부여받은 IP를 통해 CD Image 용 NFS Root 를 마운트하게 되는것이죠. 이러한 PXE 부팅이 가능하게 해주는 서비스가 TFTP 이며, kernel을 내려받게 되면 TFTP의 역할을 여기서 끝납니다. DHCP로 IP를 부여받게 되면 리눅스 설치 과정의 kickstart 과정이 시작되며 kickstart 에서 명시한 설치 과정을 순차적으로 수행함으로서 설치를 끝내게 되고, 설치 이전 과정인 %pre 와 설치후의 과정인 %post 스크립트들을 수행하게 됩니다.

약간 복잡하게 생각될 수도 있지만, 그리 복잡한 것은 아닙니다.

설정은 아래와 같습니다.

1. TFTP 서버 설정
2. DHCP 서버 설정
3. NFS 설정
4. Kickstart 설정
5. 클라이언트 PXE 설정




1. TFTP 서버 설정
    TFTP 루트 디렉토리는 /tftpboot 입니다. 아래의 linux-install 디렉터리에 pxelinux.0
    라는 syslinux 패키지의 kernel boot loader 가 위치해야 합니다.

    # /tftpboot/linux-install/pxelinux.cfg/default
    default local
    timeout 100
    prompt 1
    display msgs/boot.msg
    F1 msgs/boot.msg
    F2 msgs/general.msg
    F3 msgs/expert.msg
    F4 msgs/param.msg
    F5 msgs/rescue.msg
    F7 msgs/snake.msg

    label local
      localboot 1

    label 0
      localboot 1

    label 1
      kernel centos46/vmlinuz
      append initrd=centos46/initrd.img ramdisk_size=8192 \
      ks=/install/ks/centos-4.6-ks.cfg

    위 파일은 default 파일입니다. 이 파일에서 명시한 default local 이라는 설정이 아래 label
    의 local 부팅을 기본 선택하는 것입니다.

   클라이언트의 mac address 파일, 즉 01-00-14-4f-94-b4-1c 같은 형식의 tftp 파일 또는 클라이언트의 IP 를 16진수로 변경한 파일이름이 존재해야 합니다. 이 파일이 없다면, default 파일을 읽게되겠죠.

   ex) 10.0.0.11 -> 0A00000B

   # 0A00000B
   default CentOS-4.6
   label CentOS-4.6
        kernel centos46/vmlinuz
        append initrd=centos46/initrd.img ramdisk_size=8192 \
        ks=nfs:10.0.0.1:/install/ks/centos-4.6-ks.cfg ksdevice=eth0 nicdelay=60 \
        linksleep=60

    위의 centos46/vmlinuz 의 fullpath는 실제 /tftpboot/linux-install/centos46/vmlinuz
    입니다.

   TFTP 서비스
   tftp 서비스는 /etc/xinetd.d/tftp 입니다.
   #> /sbin/chkconfig --level 235 tftp on
   입니다.

   kickstart 파일

    # ks.cfg
    #Generated by Kickstart Configurator
    #platform=x86, AMD64, or Intel EM64T

    #System  language
    lang en_US.UTF-8
    #Language modules to install
    langsupport --default=en_US.UTF-8 en_US.UTF-8 ko_KR.UTF-8
    #System keyboard
    keyboard us
    #System mouse
    mouse
    #Sytem timezone
    timezone Asia/Seoul
    #Root password
    rootpw --iscrypted <암호화된 password>
    #Reboot after installation
    reboot
    #Install OS instead of upgrade
    install
    #Use NFS installation Media
    nfs --server=10.0.0.1  --dir=/install/linux/centos-4.6
    #System bootloader configuration
    bootloader --location=mbr --append="rhgb quiet"
    #Clear the Master Boot Record
    zerombr yes
    #Partition clearing information
    clearpart --all --initlabel
    #Disk partitioning information
    part /boot --fstype ext3 --size 100
    part / --fstype ext3 --size 1 --grow
    part swap --size 2048
    #System authorization infomation
    auth  --useshadow  --enablemd5
    #Network information
    #Firewall configuration
    firewall --disabled
    #SELinux configuration
    selinux --disabled
    #XWindows configuration information
    xconfig --depth=32 --resolution=1024x768 --defaultdesktop=GNOME --startxonboot
    #Package install information

    %packages --resolvedeps
    @ everything
    kernel-smp-devel
    kernel-devel
    kernel-smp
    e2fsprogs

    %pre

    %post

    식으로 작성하시거나 system-config-kickstart 명령으로 GUI 환경에서도 작성이 가능합니다.
출처 : 오유사마 http://onunix.tistory.com

'넋두리 > linux 이야기' 카테고리의 다른 글

linux network 설정  (0) 2010.08.19
쉘프롬프트 내 입맛에 맞게 변경하기  (0) 2010.03.17
페도라 12 릴리즈.  (0) 2009.11.23
우분투 리눅스 9.10 버전이 릴리즈  (0) 2009.11.23
쌈바 설치  (1) 2009.09.29