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/tftpboot
dnsmasq는 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를 통해 구성과 완전히 안전하지 않은 여러 이미지를 가져오기 때문에 이 방법은 신뢰할 수 있는 인트라넷 내에서만 수행할 수 있습니다.