본문 바로가기
OS

PXE(FTP)_BIOS/UEFI

by Yoon_estar 2023. 12. 14.
728x90
반응형

개요

FTP 방식으로 Kickstart 자동 설치까지 완료하였다. 아래 포스팅한 방법은 BIOS Legacy 방식으로 한 것이고 이제 UEFI 방식으로 하려고 한다.

PXE 기본 설치와 kickstart 과정은 아래 포스팅한 방법으로 완료한 상태로 다양한 시도를 하면서 UEFI 모드로 kickstart를 구현하는 것을 목표로 과정들을 기록하려고 한다.

https://estar987.tistory.com/38

 

PXE 설치(FTP 방식)

1. DHCP 서버 설치 yum -y install dhcp-server 혹은 dnf install dhcp-server # vi /etc/dhcp/dhcp.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp-server/dhcpd.conf.example # see dhcpd.conf(5) man page # dhcp_interface="ens34"; subnet 1

www.estar9801.cloud

https://estar987.tistory.com/42

 

PXE 설치 _ Kickstart

개요 https://estar987.tistory.com/38 PXE 설치(FTP 방식) 1. DHCP 서버 설치 yum -y install dhcp-server 혹은 dnf install dhcp-server # vi /etc/dhcp/dhcp.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp-server/dhcpd.conf.example #

www.estar9801.cloud

 

STEP 1

1. /var/ftp/kickstart/estar987-rocky8.6-uefi.cfg

헷갈리지 않도록 기존 legacy 형식으로 구현한 kickstart 파일(estar987-rocky8.6-legacy.cfg)을 복사해서 estar987-rocky8.6-uefi.cfg UEFI 모드 전용 파일로 만들었다.
UEFI 모드 설정 시 추가한 설정은 저 2줄이다.

# UEFI모드 설정시 추가
part /boot/efi --fstype="efi" --ondisk=sda --size=500 # 내가 추가한 줄
part /boot/efi --asprimary --fstype=vfat --label EFI  --size=200  # For UEFI
# BIOS 모드
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
part / --fstype="ext4" --ondisk=sda --grow
part swap --fstype="swap"  --size=8000 --ondisk=sda
part /xtmp --fstype="ext4"  --size=1 --ondisk=sda --grow

 

2. /var/lib/tftpboot/pxelinux.cfg/default
위에서 변경한 kickstart 파일을 읽어올 수 있도록 /var/lib/tftpboot/pxelinux.cfg/default 파일을 수정하여 uefi 모드 메뉴를 추가하였다.

LABEL RockyLinux8.6(estar987)_Kickstart
        MENU LABEL RockyLinux 8.6 Install(estar987)_Kickstart_FTP_UEFI
        KERNEL /rockylinux8.6/vmlinuz
        APPEND initrd=/rockylinux8.6/efiboot.img inst.repo=ftp://192.168.203.32/rockylinux8.6 inst.ks=ftp://192.168.203.32/kickstart/estar987-rocky8.6-uefi.cfg

 

3. EFI 부트 모드 파일 복사

이미지 파일에 있는 UEFI 부트 모드 관련 파일들을 PXE 설정 디렉터리로 이동하여 내 PXE에서 UEFI가 정상 작동할 수 있게 한다.

cp /var/ftp/rockylinux8.6/EFI/BOOT/grubx64.efi /var/lib/tftpboot/rockylinux8.6/BOOTX64.EFI
cp /var/ftp/rockylinux8.6/EFI/BOOT/grub.cfg /var/lib/tftpboot/rockylinux8.6/

 

4. EFI 부트 모드 파일 복사 제대로 됐는지 확인

[root@localhost rockylinux8.6]# pwd
/var/lib/tftpboot/rockylinux8.6
[root@localhost rockylinux8.6]# 
[root@localhost rockylinux8.6]# ll
합계 93764
-rw-r--r--  1 root root  2292672 12월 13 20:57 BOOTX64.EFI
-rw-r--r--  1 root root     1501 12월 13 20:31 grub.cfg
-rw-r--r--. 1 root root 83253316 12월 11 03:22 initrd.img
-rw-r--r--. 1 root root 10457392 12월 11 03:22 vmlinuz
[root@localhost rockylinux8.6]#

 

5. /var/lib/tftpboot/rockylinux8.6/grub.cfg 파일에 아래 부분 추가

menuentry 'Install Rocky Linux 8' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /rockylinux8.6/vmlinuz inst.repo=ftp://192.168.203.32/kickstart/
        initrdefi /rockylinux8.6/initrd.img
}

6. 결과 확인

데몬 재실행 후 TEST 결과는 실패...

systemctl restart dhcpd tftp-server vsftpd

 

STEP 2

1. 피드백 받은 결과 BIOS 모드에서 설정했던 default 파일과 UEFI 모드에서 설정한 grub.cfg 파일의 역할이 같다는 것을 알게 되어서 default 파일에 추가했던 항목은 삭제하였다.

대신grub.cfg 파일의 설정을 수정하기로 했다.

또한 /var/ftp/kickstart/estar987-rocky8.6-uefi.cfg 파일에서 /boot/efi 설정은 중복되므로 내가 추가한 줄은 삭제하였다.

# UEFI모드 설정시 추가
#part /boot/efi --fstype="efi" --ondisk=sda --size=500 # 삭제 
part /boot/efi --asprimary --fstype=vfat --label EFI  --size=200  # For UEFI
# BIOS 모드
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
part / --fstype="ext4" --ondisk=sda --grow
part swap --fstype="swap"  --size=8000 --ondisk=sda
part /xtmp --fstype="ext4"  --size=1 --ondisk=sda --grow

 

2. /var/lib/tftpboot/rockylinux8.6/grub.cfg 파일 수정 (ip=dhcp ~ /kickstart/estar987.... 추가)

menuentry 'Install Rocky Linux 8' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /rockylinux8.6/vmlinuz inst.repo=ftp://192.168.203.32/kickstart/ ip=dhcp inst.ks=ftp://192.168.203.32/kickstart/estar987-rocky8.6-uefi.cfg
        initrdefi /rockylinux8.6/initrd.img
}

 

STEP 3

1. /var/lib/tftpboot/rockylinux8.6/grub.cfg 파일 수정하라는 피드백을 받고 계속 Trouble shooting을 하였다.....

 

2. DHCP 설정을 바꿨다.

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
#dhcp_interface="ens34";

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 192.168.203.0 netmask 255.255.255.0 {
     option routers 192.168.203.1;
     option subnet-mask 255.255.255.0;
     range dynamic-bootp 192.168.203.30 192.168.203.44;
     default-lease-time 3600;
     max-lease-time 7200;
#     ### pxe setting ###
#     allow booting;
#     allow bootp;
#     next-server 192.168.203.32;
#     filename "pxelinux.0";
     class "pxeclients" {
        match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
        next-server 192.168.203.32;

        if option architecture-type = 00:07
        {
          filename "BOOTX64.EFI";
        } else  {
        filename "pxelinux/pxelinux.0";
                }
        }
}

 

tail -f /var/log/messages 

STEP 4

1. grub.cfg 파일 경로 변경(/var/lib/tftpboot/rockylinux8.6 --> /var/lib/tftpboot)

 

메뉴 선택 창은 나오고 메뉴 실행이 안되는 걸 보니 부트 관련 파일 경로를 수정하면 될 것 같다

 

/var/lib/tftpboot/grub.cfg

menuentry 'Install Rocky Linux 8' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /rockylinux8.6/vmlinuz inst.repo=ftp://192.168.203.32/rockylinux8.6 inst.ks=ftp://192.168.203.32/kickstart/estar987-rocky8.6-uefi.cfg
        initrdefi /rockylinux8.6/initrd.img
}

 

Final

성공!!

반응형

'OS' 카테고리의 다른 글

Kickstart 설치 시 네트워크 정보 미리 설정  (0) 2024.01.03
PXE(FTP)_CentOS07  (0) 2023.12.15
PXE 설치 _ Kickstart  (0) 2023.12.12
PXE 설치(FTP 방식)  (0) 2023.12.11
PXE란  (0) 2023.12.06