PXE 부팅을 통한 Fedora 네트워크 설치

PXE 부팅을 통한 Fedora 네트워크 설치

PXE 부팅을 사용하여 네트워크를 통해 Fedora를 설치하는 방법은 무엇입니까?

동기: 대상 시스템의 BIOS가 USB 대용량 저장 장치에서 부팅할 수 없습니다. 또 다른 동기는 네트워크를 통한 출시의 편의성이 더 높다는 것입니다.

과제: LAN에는 변경할 수 없는 DHCP 서버가 이미 있습니다. 즉, PXE 관련 옵션 구성을 지원하지 않는 서버입니다(Fritz Box 라우터의 일부임).

답변1

다음을 설정할 수도 있습니다.프록시DHCP서비스PXE. 이렇게 하면 기존 DHCP 서버를 변경할 필요가 없습니다. 그런 다음 일반 Linux 시스템(예: 워크스테이션)을 사용하여 PXE(Preboot Execution Environment)를 호스팅할 수 있습니다.

네트워크 부팅을 위해 PXE를 설정하려면 다음 단계가 필요합니다.Fedora 네트워크 설치 이미지(또한 Fedora 호스트라고 가정):

인증 이미지

$ gpg --verify Fedora-Server-21-x86_64-CHECKSUM
$ sha256sum --check Fedora-Server-21-x86_64-CHECKSUM
Fedora-Server-netinst-x86_64-21.iso: OK

이미지 설치

mkdir /mnt/iso
mount -o loop Fedora-Server-netinst-x86_64-21.iso /mnt/iso

DHCP 설정

yum install dnsmasq tftp-server syslinux-tftpboot

tftp-server패키지는 디렉토리를 생성하는 데에만 사용되며 /var/lib/tftpbootdnsmasq는 tftp 서버를 통합했습니다.

구성:

cat > /etc/dnsmasq.conf
interface=enp0s25
# and don't bind to 0.0.0.0
bind-interfaces
# extra logging
log-dhcp
dhcp-range=192.168.178.0,proxy
# first IP address is the one of the host
dhcp-boot=pxelinux.0,192.168.178.34,192.168.178.0
pxe-service=x86PC,"Automatic Network Boot",pxelinux
# Specify the IP address of another tftp server
enable-tftp
# default location of tftp-server on Fedora
tftp-root=/var/lib/tftpboot
# disable DNS
port=0

시작하세요:

systemctl start dnsmasq.service

TFTP 디렉터리 설정

필요한 모든 파일을 복사합니다.

cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot
cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot
cp /tftpboot/pxelinux.0 /var/lib/tftpboot
cp /tftpboot/vesamenu.c32 /var/lib/tftpboot
cp /tftpboot/ldlinux.c32 /var/lib/tftpboot
cp /tftpboot/libcom32.c32 /var/lib/tftpboot
cp /tftpboot/libutil.c32 /var/lib/tftpboot

구성 추가:

mkdir /var/lib/tftpboot/pxelinux.cfg
cat > /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
prompt 0
# disable timeout
timeout 0
#timeout 600

# if file is missing, this is ignored
display boot.msg

label linux
  menu label Install Fedora 21 Server x86-64
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=http://workstation.example.org/

HTTP 서버 설정

yum install nginx

구성 예:

cat > /etc/nginx/conf.d/iso.conf
  server {
      listen       80 default_server;
      server_name  localhost;
      root         /mnt/iso ;
      include /etc/nginx/default.d/*.conf;
  }

기본 인스턴스를 비활성화하거나 다른 포트로 이동합니다.

--- a/nginx/nginx.conf
+++ b/nginx/nginx.conf
@@ -43,7 +43,7 @@ http {
     include /etc/nginx/conf.d/*.conf;

     server {
-        listen       80 default_server;
+        listen       8080 default_server;
         server_name  localhost;
         root         /usr/share/nginx/html;

서버를 시작합니다:

systemctl start nginx.service

Fedora 설치 프로그램(dracut)은 기본적으로 http 서버에서 파일을 가져와야 합니다.

LiveOS/squashfs.img

방화벽 구성

firewall-cmd --add-service=http
firewall-cmd --add-service=dhcp
firewall-cmd --add-service=tftp
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --add-service=tftp --permanent

클라이언트 시작

그게 다야. 클라이언트는 PXE를 통해 네트워크 부팅을 하고 Fedora 네트워크 설치 이미지를 얻을 수 있는 것으로 알려져 있습니다.

변경 사항은 다음과 같습니다: 완전 자동화된 네트워크 설치를 위한 킥스타트 파일 추가(및 시간 제한 설정), 다양한 클라이언트에 대해 다양한 PXE 설정 구성(MAC 주소 기반) 등

청소하다

데몬을 중지하고 루프백 이미지를 마운트 해제할 수 있습니다.

systemctl stop nginx.service
systemctl stop dnsmasq.service
umount /mnt/iso

안전 설명서

네트워크 부팅 클라이언트가 TFTP 및 HTTP를 통해 구성과 완전히 안전하지 않은 여러 이미지를 가져오기 때문에 이 방법은 신뢰할 수 있는 인트라넷 내에서만 수행할 수 있습니다.

관련 정보