라즈베리 파이 4 네트워크 부팅 (PXE) 설정 가이드

Source

  • Evernote/Inbox/SD카드 없이 라즈베리 파이 4 네트워크 부팅하기 seonghyeon.dev.md

Summary

본문은 라즈베리 파이 4(RPi4)에서 SD 카드 없이 네트워크(PXE)로 부팅하여 다수 노드 관리를 자동화하는 방법을 설명한다. 핵심 과정은 1) 클라이언트 RPi4의 부트로더 EEPROM을 업데이트하여 네트워크 부팅 순서(BOOT_ORDER=0xf21)를 활성화하고 시리얼 넘버를 확인하는 것, 2) 서버 측에서 dnsmasq(DHCP/TFTP)를 설정하여 부팅 파일을 제공하는 것, 3) 공통 OS 이미지를 추출·수정(chroot 환경에서 패키지 업데이트, SSH 키 설정, fstab 정리 등)하여 TFTP 루트에 배치하는 것이다. 이를 통해 중앙화된 이미지 배포와 헤드리스 설정이 가능해진다.

Key Points

  • RPi4는 부트로더 EEPROM 업데이트를 통해 SD 카드 없이 이더넷을 통한 PXE 부팅이 가능하다.
  • 클라이언트 설정: rpi-eeprom 패키지를 이용해 부트로더 설정 파일에서 BOOT_ORDER0xf21(SD 시도 후 네트워크 시도)로 변경하고 EEPROM에 플래시해야 함.
  • 클라이언트 식별: 각 RPi4의 고유 시리얼 넘버(vcgencmd otp_dump)를 확인하여 서버 측 TFTP 디렉토리 구조(/srv/tftpboot/<serial>)와 매핑해야 함.
  • 서버 설정: DHCP 및 TFTP 서버(예: dnsmasq)를 구성하여 클라이언트에 부팅 파일 경로와 IP를 할당해야 함.
  • 이미지 준비: 라즈베리 파이 OS 이미지를 마운트 후 루트 및 부트 파티션 내용을 추출하고, chroot 환경에서 공통 설정(SSH 활성화, 패키지 업데이트, fstab 수정 등)을 적용하여 원본 이미지로 관리함.
  • 장점: SD 카드 구매 비용 절감, 다수 노드에 대한 중앙화된 이미지 배포 및 설정 자동화 가능.