2.5.3. UEFI 기반 클라이언트용 TFTP 서버 구성
다음 절차를 사용하여 TFTP 서버와 DHCP 서버를 구성하고 UEFI 기반 AMD64, Intel 64 및 64비트 ARM 시스템의 PXE 서버에서 TFTP 서비스를 시작합니다.
- 이 섹션의 모든 구성 파일은 예시입니다. 구성 세부 정보는 아키텍처 및 특정 요구 사항에 따라 다릅니다.
-
Red Hat Enterprise Linux 9 UEFI PXE 부팅은 MAC 기반 grub 메뉴 파일의 소문자 파일 형식을 지원합니다. 예를 들어 grub2의 MAC 주소 파일 형식은
grub.cfg-01-aa-bb-cc-dd-ee-ff
입니다.
절차
root로 다음 패키지를 설치합니다. 네트워크에 DHCP 서버가 이미 구성되어 있는 경우 dhcp-server 패키지를 제외합니다.
# dnf install tftp-server dhcp-server
방화벽에서
tftp service
에 대한 수신 연결을 허용합니다.# firewall-cmd --add-service=tftp
참고-
이 명령은 다음 서버가 재부팅될 때까지 임시 액세스를 활성화합니다. 영구 액세스를 활성화하려면 명령에
--permanent
옵션을 추가합니다. - 설치 ISO 파일의 위치에 따라 HTTP 또는 기타 서비스에 대해 들어오는 연결을 허용해야 할 수 있습니다.
-
이 명령은 다음 서버가 재부팅될 때까지 임시 액세스를 활성화합니다. 영구 액세스를 활성화하려면 명령에
다음 예제
/etc/dhcp/dhcpd.conf
파일에 표시된 대로 shim 과 함께 패키지된 부팅 이미지를 사용하도록 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"; } } }
shim
패키지에서BOOTX64.EFI
파일에 액세스하고 DVD ISO 이미지 파일의grub2-efi
패키지에서grubx64.efi
파일에 액세스합니다. 여기서 my_local_directory 는 사용자가 생성한 디렉터리의 이름입니다.# mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
# cp -pr /mount_point/BaseOS/Packages/shim-version-architecture.rpm /my_local_directory
# cp -pr /mount_point/BaseOS/Packages/grub2-efi-version-architecture.rpm /my_local_directory
# umount /mount_point
패키지를 추출합니다.
# rpm2cpio shim-version-architecture.rpm | cpio -dimv
# rpm2cpio grub2-efi-version-architecture.rpm | cpio -dimv
부팅 디렉터리에서 EFI 부팅 이미지를 복사합니다. ARCH 를 shim 또는 grub로 교체한 다음 아키텍처(예:
grubx64
)를 사용합니다.# mkdir /var/lib/tftpboot/uefi # cp my_local_directory/boot/efi/EFI/redhat/ARCH.efi /var/lib/tftpboot/uefi/
다음 예와 같이
grub.cfg
라는 구성 파일을tftpboot/
디렉토리에 추가합니다.set timeout=60 menuentry 'RHEL 9' { linuxefi images/RHEL-9.x/vmlinuz ip=dhcp inst.repo=http://10.32.5.1/RHEL-9.x/x86_64/iso-contents-root/ initrdefi images/RHEL-9.x/initrd.img }
참고-
설치 프로그램은 런타임 이미지 없이는 부팅할 수 없습니다.
inst.stage2
부팅 옵션을 사용하여 이미지 위치를 지정합니다. 또는inst.repo=
옵션을 사용하여 이미지와 설치 소스를 지정할 수 있습니다. -
inst.repo
와 함께 사용되는 설치 소스 위치에는 유효한.treeinfo
파일이 포함되어야 합니다. -
RHEL9 설치 DVD를 설치 소스로 선택하면
.treeinfo
파일이 BaseOS 및 AppStream 리포지토리를 가리킵니다. 단일inst.repo
옵션을 사용하여 두 리포지토리를 로드할 수 있습니다.
-
설치 프로그램은 런타임 이미지 없이는 부팅할 수 없습니다.
/var/lib/tftpboot/
디렉터리에 부팅 이미지 파일을 저장하고 부팅 이미지 파일을 디렉터리에 복사합니다. 이 예에서 디렉터리는/var/lib/tftpboot/images/RHEL-9.x/
입니다.# mkdir -p /var/lib/tftpboot/images/RHEL-9/ # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-9/
DHCP 서버에서
dhcpd
서비스를 시작하고 활성화합니다. localhost에 DHCP 서버를 구성한 경우 localhost에서dhcpd
서비스를 시작하고 활성화합니다.# systemctl start dhcpd # systemctl enable dhcpd
tftp.socket
서비스를 시작하고 활성화합니다.# systemctl start tftp.socket # systemctl enable tftp.socket
이제 PXE 부팅 서버가 PXE 클라이언트를 제공할 준비가 되었습니다. Red Hat Enterprise Linux를 설치하는 시스템인 클라이언트를 시작하고, 부팅 소스를 지정하라는 메시지가 표시되면 PXE 부팅 을 선택한 다음 네트워크 설치를 시작할 수 있습니다.
추가 리소스