Fedora 25 복구를 pxe 부팅하는 방법

Fedora 25 복구를 pxe 부팅하는 방법

제가 이해할 수 없는 이유로 인해 pxe를 통해 fedora 25의 복구 인스턴스를 시작할 수 없는 것 같습니다. 워크스테이션 버전으로 여러 번 시도한 후 결국 서버 DVD로 되돌렸습니다. 왜냐하면 결국 나에게 필요한 유일한 것은 로컬 디스크 파티션에서 작업하기 위해 pxe fedora를 부팅하는 것뿐이었기 때문입니다. 아아, 행운이 없습니다.

현재 추가 줄에서 다양한 키워드의 정확한 의미를 찾고 있습니다. (pxe, grub,...) 올바른 마법 공식을 찾고 싶지만 내 googlefu도 실패하는 것 같습니다.

다른 배포판에는 문제가 없지만 Fedora가 왜 그렇게 고통스러운지 이해하고 싶습니다.

즉, centos7 pxe(nfs)에서 복구를 시작하는 것은 매우 간단합니다.

LABEL c7r
  kernel centos/7/vmlinuz
  append initrd=centos/7/initrd.img method=nfs:192.168.16.252:/pxedev/centos/7 rescue

Fedora 25에 대한 몇 가지 시도:

LABEL f25r
  kernel fedora/25s/vmlinuz
  append initrd=fedora/25s/initrd.img ip=dhcp root=nfs:192.168.16.252:/pxedev/fedora25s/ rescue

PXE(nfs)에서 설치하는 것은 어렵지 않습니다.

LABEL f25ws
  kernel fedora/25/vmlinuz
  append initrd=fedora/25/initrd.img ip=dhcp inst.stage2=nfs:192.168.16.252:/pxedev/fedora25/

그래서 Fedora 25의 pxe 복구에 필요한 정보가 누락되었습니다. 서버 버전의 경우 DVD: "Fedora-Server-dvd-x86_64-25-1.3.iso"를 다운로드한 다음 폴더에 완전히 추출하고 "images/pxeboot" 디렉토리에 커널과 initramfs를 가져왔습니다.

답변1

TL;DR은 복구 이미지 제공을 잊어버린 inst.stage2 매개변수입니다. initrd와 커널은아니요Fedora를 복구 모드로 부팅하려면 Anaconda의 두 번째 단계 로더가 필요합니다. 물건 root=nfs을 바꾸면 inst.stage2=nfs:192.168.16.252:/pxedev/fedora25/경주를 시작해야 합니다.

더 긴 답변:

PXE 부팅은 움직이는 부분이 많이 필요하기 때문에 약간 어렵습니다.

  1. 다음 서버 매개변수를 배포할 수 있는 DHCP 서버입니다.
  2. 작동하는 TFTP 서버
  3. 커널 이미지 및 초기 램디스크 사본
  4. 마운트된 ISO 이미지의 콘텐츠를 제공하는 기능적 HTTP 서버(NFS를 대안으로 사용할 수 있음)

다음은 제가 작동시킨 방법입니다.

소프트웨어 설치

dnf -y install dhcp-server tftp-server httpd syslinux-tftpboot

ISC DHCPd 섹션

참고: 다른 DHCP 서버를 사용하는 YMMV.

next-server매개변수는 TFTP 서버의 IP입니다.

Subnet 192.168.0.0 netmask 255.255.255.0 { 
     range 192.168.0.100 192.168.0.200;
     option routers 192.168.0.1;
     class "pxeclients" {
            match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
            next-server 192.168.0.2;
            filename "pxelinux.0";
    }
}

TFTPd 섹션

/var/lib/tftpbootFedora는 부팅 이미지와 pxe 구성을 포함하기 위해 여러 디렉터리를 생성해야 하는 TFTP 루트 디렉터리를 배치합니다 .

나는 일반적으로 하위 디렉터리를 다음과 같이 설정합니다. $OSVER/$ARCH이렇게 하면 주어진 시간에 여러 버전의 Fedora PXE를 시작할 수 있습니다.

그런 다음 여러분과 마찬가지로 ISO 이미지 디렉터리의 initrdvmlinuz파일을 images/pxelinuxtftpboot의 적절한 하위 디렉터리에 복사했습니다.

다음으로 pxelinux.cfgtftpboot 디렉터리에 .라는 파일을 만듭니다 default. 이 파일에서 다음과 유사한 항목을 생성합니다.

default vesamenu.c32
prompt 0
timeout 100
label local
  menu label Boot from ^local drive
  localboot 0xffff
label f25_x86_64
  menu label Fedora 25 x86_64 (Generic)
  kernel f25/x86_64/vmlinuz
  append initrd=f25/x86_64/initrd.img repo=http://192.168.0.2/os/fedora/25/x86_64/ ks=http://192.168.0.2/ks/f25-x86_64-ks.cfg
label f25_rescue
  menu label Fedora 25 ^Rescue Mode
  kernel f25/x86_64/vmlinuz
  append initrd=f25/x86_64/initrd.img inst.stage2=http://192.168.0.2/os/fedora/25/x86_64 rescue

2단계 이미지는 크기가 커서 PXE를 통해 전달하는 것이 때로는 문제가 될 수 있으므로 HTTP를 통해 전달합니다.

다음으로, 어떤 이유로 syslinux-tftpboot가 tftp-server의 다른 루트 디렉터리에 대해 알지 못하기 때문에 모든 *.c32파일을 에서 로 /tftpboot/이동 해야 합니다 ./var/lib/tftpboot

HTTPD 부분

HTTPD를 통해 사용 가능한 ISO 이미지를 가져옵니다.

mkdir /var/www/html/os/fedora/$FEDORAVERSION/$ARCH그렇다면 가장 간단한 방법은mount -o loop,uid=48,gid=48,mode=0755 /path/to/fedora-server.iso /var/www/html/os/fedora/$FEDORAVERSION/$ARCH

모든 데몬이 구성되고 활성화되면 작동합니다.

Fedora 27을 부팅하려면 기본적으로 sed -r -e s/25/27/g위의 모든 구성을 사용하면 작동합니다.

관련 정보