2.5.2. BIOS 기반 클라이언트용 TFTP 서버 구성

다음 절차를 사용하여 TFTP 서버와 DHCP 서버를 구성하고 BIOS 기반 AMD 및 Intel 64비트 시스템용 PXE 서버에서 TFTP 서비스를 시작합니다.

중요

이 섹션의 모든 구성 파일은 예시입니다. 구성 세부 정보는 아키텍처 및 특정 요구 사항에 따라 다릅니다.

절차

  1. root로 다음 패키지를 설치합니다. 네트워크에 DHCP 서버가 이미 구성되어 있는 경우 dhcp-server 패키지를 제외합니다.

    # dnf install tftp-server dhcp-server
  2. 방화벽에서 tftp service에 대한 수신 연결을 허용합니다.

    # firewall-cmd --add-service=tftp
    참고
    • 이 명령은 다음 서버가 재부팅될 때까지 임시 액세스를 활성화합니다. 영구 액세스를 활성화하려면 명령에 --permanent 옵션을 추가합니다.
    • 설치 ISO 파일의 위치에 따라 HTTP 또는 기타 서비스에 대해 들어오는 연결을 허용해야 할 수 있습니다.
  3. 다음 예제 /etc/dhcp/dhcpd.conf 파일에 표시된 대로 SYSLINUX와 함께 패키지된 부팅 이미지를 사용하도록 DHCP 서버를 구성합니다. DHCP 서버가 이미 구성된 경우 DHCP 서버에서 이 단계를 수행합니다.

    option space pxelinux;
    option pxelinux.magic code 208 = string;
    option pxelinux.configfile code 209 = text;
    option pxelinux.pathprefix code 210 = text;
    option pxelinux.reboottime code 211 = unsigned integer 32;
    option architecture-type code 93 = unsigned integer 16;
    
    subnet 10.0.0.0 netmask 255.255.255.0 {
    	option routers 10.0.0.254;
    	range 10.0.0.2 10.0.0.253;
    
    	class "pxeclients" {
    	  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    	  next-server 10.0.0.1;
    
    	  if option architecture-type = 00:07 {
    	    filename "BOOTX64.EFI";
    	    } else {
    	    filename "pxelinux/pxelinux.0";
    	  }
    	}
    }
  4. DVD ISO 이미지 파일의 SYSLINUX 패키지에서 pxelinux.0 파일에 액세스합니다. 여기서 my_local_directory는 생성한 디렉터리의 이름입니다.

    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    # cp -pr /mount_point/BaseOS/Packages/syslinux-tftpboot-version-architecture.rpm /my_local_directory
    # umount /mount_point
  5. 패키지를 추출합니다.

    # rpm2cpio syslinux-tftpboot-version-architecture.rpm | cpio -dimv
  6. tftpboot/pxelinux/ 디렉터리를 만들고 디렉터리의 모든 파일을 pxelinux/ 디렉터리에 복사합니다.

    # mkdir /var/lib/tftpboot/pxelinux
    # cp my_local_directory/tftpboot/* /var/lib/tftpboot/pxelinux
  7. pxelinux/ 디렉터리에 pxelinux.cfg/ 디렉터리를 만듭니다.

    # mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
  8. default라는 구성 파일을 생성하고 다음 예와 같이 pxelinux.cfg/ 디렉터리에 추가합니다.

    default vesamenu.c32
    prompt 1
    timeout 600
    
    display boot.msg
    
    label linux
      menu label ^Install system
      menu default
      kernel images/RHEL-9/vmlinuz
      append initrd=images/RHEL-9/initrd.img ip=dhcp inst.repo=http://10.32.5.1/RHEL-9/x86_64/iso-contents-root/
    label vesa
      menu label Install system with ^basic video driver
      kernel images/RHEL-9/vmlinuz
      append initrd=images/RHEL-9/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/RHEL-9/x86_64/iso-contents-root/
    label rescue
      menu label ^Rescue installed system
      kernel images/RHEL-9/vmlinuz
      append initrd=images/RHEL-9/initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    참고
    • 설치 프로그램은 런타임 이미지 없이는 부팅할 수 없습니다. inst.stage2 부팅 옵션을 사용하여 이미지 위치를 지정합니다. 또는 inst.repo= 옵션을 사용하여 이미지와 설치 소스를 지정할 수 있습니다.
    • inst.repo와 함께 사용되는 설치 소스 위치에는 유효한 .treeinfo 파일이 포함되어야 합니다.
    • RHEL9 설치 DVD를 설치 소스로 선택하면 .treeinfo 파일이 BaseOS 및 AppStream 리포지토리를 가리킵니다. 단일 inst.repo 옵션을 사용하여 두 리포지토리를 로드할 수 있습니다.
  9. /var/lib/tftpboot/ 디렉터리에 부팅 이미지 파일을 저장하고 부팅 이미지 파일을 디렉터리에 복사합니다. 이 예에서 디렉터리는 /var/lib/tftpboot/pxelinux/images/RHEL-9/ 입니다.

    # mkdir -p /var/lib/tftpboot/pxelinux/images/RHEL-9/
    # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/images/RHEL-9/
  10. DHCP 서버에서 dhcpd 서비스를 시작하고 활성화합니다. localhost에 DHCP 서버를 구성한 경우 localhost에서 dhcpd 서비스를 시작하고 활성화합니다.

    # systemctl start dhcpd
    # systemctl enable dhcpd
  11. tftp.socket 서비스를 시작하고 활성화합니다.

    # systemctl start tftp.socket
    # systemctl enable tftp.socket

    이제 PXE 부팅 서버가 PXE 클라이언트를 제공할 준비가 되었습니다. Red Hat Enterprise Linux를 설치하는 시스템인 클라이언트를 시작하고, 부팅 소스를 지정하라는 메시지가 표시되면 PXE 부팅 을 선택한 다음 네트워크 설치를 시작할 수 있습니다.