본문 바로가기

컴퓨터 기본 개념

PXE 네트워크 부팅

PXE(Preboot Execution Environment)란

운영체제가 설치되어 있지 않는 원격지의 컴퓨터를 네트워크 도메인에 참가시키는 것만으로도 부팅을 시킬 수 있는 환경을 말한다.

요즘에 출시되는 대부분의 메인보드들은 PXE를 지원한다.

BIOS 설정에서 찾아보면 PXE라든지 Network on boot room과 같은 옵션들이 보이는 보드들은 PXE를 지원하는 보드들이다.

이 기능을 활성화 한 다음 부트 오더에 가장 첫 번째에 LAN을 두면 활성화 된다.

보드별로 설정하는 방법이 상이할 수 있으니 보드 메뉴얼을 참조하여 PXE를 활성화 하도록 한다.

 

PXE의 기본 동작을 보면 위와 같은 구성으로 되어있다.

기본적으로 클라이언트이기 때문에 서버가 필요하다.

서버에는 DHCP 서버와 tftp 서버 그리고 초기 램디스크 이미지(initrd.img)와 커널 이미지(vmlinuz)가 있으면 모든 준비가 된다.

 

일단 서버의 설치는 나중에 보도록 하고 먼저 PXE의 코드에서 가장 먼저 실행되는 것은 DHCP 클라이언트이다.

서버로 부터 IP를 가져오기 위해 DHCP 리퀘스트를 전송하면 서버에서는 적당한 IP를 하나 던져 주는데 일반적인 DHCP 응답 메시지가 아니라 PXE를 위한 부가적인 옵션을 전송하도록 설정을 해야한다.

이렇게 DHCP 서버로 부터 IP를 할당 받은 후에는 ftfp 프로토콜을 이용하여 초기 램디스크 이미지와 커널이미지를 서버로부터 다운로드 받게 된다.

 

tftp는 ftp와 비슷하지만 전혀 다른 프로토콜이다.

udp를 사용하는 파일전송 프로토콜로 파일전송 과정이 아주 단순하고 데이터의 완전한 전송을 포장하지는 못한다.

하지만 아주 가볍고 프로토콜리 간단하기 때문에 커널이미지의 전송과 같은 업로드에 많이 사용된다.

이렇게 전송받은 초기 램디스크 이미지와 커널 이미지로 부팅을 하게 되는 것이다.

 

간단하게 IP 할당 받고 커널 이미지 전송받고 부팅한다. 라고  생각하면 된다.

 

참고 블로그

https://blog.pages.kr/156

 

PXE 네트워크 부팅을 통한 OS 설치 자동화

PXE(Preboot Execution Environment)란 운영체제가 설치되어 있지 않는 원격지의 컴퓨터를 네트워크 도메인에 참가시키는 것만으로도 부팅을 시킬 수 있는 환경을 말한다. 말은 되게 어려워 보이는데 실

blog.pages.kr