본문 바로가기
컴퓨터 & IT (Computer & IT)/Linux

[Linux] PXE (Preboot Execution Environment)

by UltraLowTemp-Physics 2020. 11. 13.
728x90

1. PXE란?

PXE란 부팅 전 실행 환경을 의미한다. 즉, 서버 등의 IT 장비들이 본격적으로 부팅 전에 미리 실행되는 환경이다.

2. 부팅의 흐름

순서 단계 내용
1 Hardware 단계 • 내장 firmware에 의해 Hardware chip/Card가 초기화되는 단계
  - BIOS에 의해서 진행됨 
  - system에 장착된 CPU, memory, PCI card등의 연결 상태를 점검함 
2 부트 로더 단계 "하드웨어 단계" 이후에 "OS 단계"를 준비하는 단계
  - 자신 다음으로 제어를 넘겨 받을 OS의 이미지나 Kernel을 찾아 그것을 메모리에 올려 실행 가능한 상태로 만듬
3 OS 단계 • 실제로 서버를 운영할 OS 단계

3. pxelinux.cfg 폴더 설명

• pxelinux.cfg 디렉토리 내의 파일들은 PXE 부팅 중 부트 로더의 설정과 관련된 파일들이 있다. 
• pxelinux.cfg 내의 파일 이름을 수정함으로써, 개별적인 계산 노드들이 서로 다른 설정 파일들을 호출하도록 할 수 있다. 
• pxelinux.0 : 부트스트랩 
• pxelinux.cfg 내의 파일 이름들의 규칙
   - 파일 이름은 그 파일을 사용할 계산 노드들의 IP 주소(16진법)이다. 
   - 만일 계산 노드의 사설 IP가 192.168.0.2일 경우, 이 계산 노드가 사용할 PXE 부팅에 대한 설정 파일의 이름은 아래와 같다. 
     : 192 →  C0, 168 →  A8,  0 →  00, 2 →  02  
 
 
따라서, 만들어야 할 파일의 이름은 다음과 같다: C0A80002 

4. PXELINUX가 설정파일을 호출하는 순서

  Trying to load: pxelinux.cfg/C0A0002
  Trying to load: pxelinux.cfg/C0A000
  Trying to load: pxelinux.cfg/C0A00
  Trying to load: pxelinux.cfg/C0A0
  Trying to load: pxelinux.cfg/C0A
  Trying to load: pxelinux.cfg/C0
  Trying to load: pxelinux.cfg/C
  Trying to load: pxelinux.cfg/default

• 최종적으로는 default 파일을 찾음 
• default 파일을 통해 노드마다 설정파일이 다르지 않다면, 해당 파일만 설정해도 된다. 

5. pxelinux.cfg 파일의 구성 요소 

명령어 설명
PROMPT 숫자 • 부팅 전에 여러 커널 버전 또는 설정이 있을 때, 선택 메뉴를 모여주는 설정 
• PROMPT 뒤의 숫자는 초이며, 0일 경우, 메뉴를 보여주지 않고 넘어간다. 
DEFAULT 문자/숫자 • 다른 커널 설정을 구별해주고 기본 부트 설정을 결정함
KERNEL 커널의 위치 • 마스터 노드의 절대 경로가 아닌, PXELINUX.0의 위치를 기준으로 한 경로
APPEND   • 부팅 때 커널 뒤에 붙는 인자 설정

 

Reference: 
[1] https://www.sauru.so/blog/setup-pxe-master/
[2] https://wiki.syslinux.org/wiki/index.php?title=PXELINUX

728x90

댓글