Linux 배포 ISO를 사용하여 PXE 설치 설정

Linux 배포 ISO를 사용하여 PXE 설치 설정

내 집 LAN에는

  • 라우터/스위치, DHCP 서버이기도 함
  • 데스크탑
  • USB로 부팅도 안되는 (아주아주 오래된) 노트북

PXE를 사용하여 이 노트북에 (32비트) Linux 배포판을 설치하고 싶습니다.

(내가 아는 한) 두 가지 질문이 있습니다.

  1. 내가 본 페이지에서는 이 작업에 대해 논의했습니다(예:이 문제웹사이트) 모두 내 컴퓨터에 DHCP 서버를 설정해야 한다고 말합니다. 이미 다른 DHCP 서버가 있다는 점만 빼면 괜찮습니다. 노트북이 다른 서버를 선호하지 않을까요?

  2. 부팅 가능한 32비트 ISO가 작동합니까?

  3. 배포판에 설치된 ISO의 어떤 파일이 어디에 복사되는지 어떻게 알 수 있나요?

참고: 좀 더 구체적으로 설치해 보겠습니다.리눅스 라이트.

답변1

알아채다Linux Lite의 자체 문서에서는 USB로 부팅할 수 없는 경우 PLoP 부팅 관리자를 사용할 것을 권장합니다.:PLoP는 CD나 플로피 디스크에서도 부팅할 수 있는 부팅 관리자이며 기본 USB 저장소 지원 기능이 내장되어 있습니다.

https://www.plop.at/en/bootmanager/download.html

https://www.howtogeek.com/howto/16822/boot-from-a-usb-drive-even-if-your-BIOS-wont-let-you/

저는 BIOS에서 USB를 지원하지 않는 이전 시스템에서 USB 기반 설치를 부팅하는 데 이를 사용했습니다.

그러나 PXE를 사용하려는 경우 PXE 시작에 대한 전체 이벤트 순서는 다음과 같습니다.

  1. PXE BIOS 확장(또는 최신 시스템의 UEFI 펌웨어용 내장 네트워크 드라이버)은 네트워크 카드를 활성화하고 일부 특수 식별자가 추가된 DHCP 요청을 발행합니다.

    • (PXE 옵션 vendor-class-identifier#60) 단어로 시작 PXEClient하고 사용된 프로세서 아키텍처를 식별하는 코드를 포함하는 문자열로 설정됩니다. 이는 선택적으로 다양한 클라이언트 유형에 대해 사용자 정의된 PXE 부팅 솔루션을 제공하는 데 사용될 수 있지만 간단한 설정에서는 DHCP 서버가 이를 무시할 수 있습니다.
    • DHCP 요청은 클라이언트가 DHCP 옵션 #66 및 #67의 값(TFTP 서버 이름 및시작 파일클라이언트는 별도로 로드해야 합니다.
  2. DHCP 서버에는 실제로 TFTP 서버 이름과 부팅 파일 이름을 제공하는 두 가지 방법이 있습니다. 위에서 설명한 DHCP 옵션을 사용할 수도 있고, DHCP가 BootP와 역호환되므로 이전 BootP 필드를 사용하여 DHCP에 정보를 제공할 수도 next-server있습니다 bootfile-name. 패킷.

(일부 PXE BIOS 확장은 버그가 있을 수 있으며 그 중 하나만 지원됩니다. DHCP 옵션 #67을 사용하지만 BootP 레거시 스타일을 사용하는 경우 부팅 파일 이름에 추가 0바이트를 추가하는 PXE 펌웨어를 본 적이 있습니다. 문제를 식별하려면 Wireshark를 사용하거나 tcpdump실제 DHCP 및 TFTP 요청과 응답을 살펴봐야 합니다.

  1. PXE BIOS 확장은 DHCP 응답을 사용하여 네트워크 인터페이스를 구성하고 지정된 TFTP 서버에서 지정된 파일을 다운로드하고 파일을 실행합니다. 원칙적으로 이후에 발생하는 모든 일은 이 파일의 프로그램 코드(PXE 부트 로더)에 의해 완전히 제어됩니다. 실제로 오늘날 Linux계에서 가장 일반적인 두 가지 PXE 부트로더는 다음과 같습니다.PXELinuxSYSLINUX 시리즈 또는PXE. 둘 다 기본적으로 네트워크 구성으로 시작하고 다른 특수 식별자를 사용하여 또 다른 DHCP 요청을 발행합니다. 이를 통해 DHCP 서버는 다른 DHCP 옵션을 사용하여 PXE 부트 로더에 부트 로더 구성 파일을 로드할 위치를 알릴 수 있습니다.

    • PXELINUX의 경우 이는 선택 사항입니다. 추가 옵션이 없으면 부트로더 자체를 로드하는 동일한 TFTP 서버에서 구성을 다운로드하려고 시도합니다. 예를 들어, PXELINUX를 다운로드하기 위한 TFTP 경로가 /pxe/pxelinux.0이면 에서 해당 구성을 다운로드하려고 시도합니다 /pxe/pxelinux.cfg/default.
    • iPXE의 경우 DHCP 옵션을 사용하여 구성 파일의 이름을 지정해야 하지만 iPXE에는 HTTP에 대한 지원이 내장되어 있으므로 일반 HTTP URL을 DHCP 옵션 값으로 허용할 수 있습니다.
  2. 부트로더 구성 파일에는 멋진 부팅 메뉴의 정의가 포함될 수도 있고, 단순히 부트로더에게 특정 Linux 커널과 initrd/initramfs 파일을 로드하라고 지시할 수도 있습니다. 로드가 디스크가 아닌 네트워크를 통해 수행된다는 점을 제외하면 일반 GRUB처럼 작동합니다. 부트 로더 구성 파일에는 GRUB 구성과 마찬가지로 Linux 커널에 대한 부팅 옵션이 포함될 수 있습니다. 네트워크 설치 시나리오에서는 일반적으로 부팅 옵션을 사용하여 설치 프로그램이 ISO 이미지 또는 해당 내용을 찾아야 하는 위치를 지정해야 합니다. 최신 배포판에서 이 옵션의 값은 일반적으로 HTTP URL 형식을 취합니다.

  3. PXE 부트로더가 커널 및 initramfs 파일을 클라이언트 시스템의 RAM에 성공적으로 로드하면 해당 작업이 완료됩니다. 즉, Linux 커널을 부팅하고 initramfs 콘텐츠 및 커널 부팅 옵션을 전달한 다음 커널이 변환할 때 부트로더를 덮어씁니다. 시스템을 16비트 호환 모드에서 진정한 32비트 보호 모드로 변경하고 가상 메모리 맵을 자체 요구 사항에 맞게 재배열합니다. Linux NIC 드라이버는 드라이버가 시작될 때 네트워크 어댑터를 재설정하므로 일반적으로 IP 주소 구성이 손실됩니다. (최신 UEFI 시스템은 이미 64비트 보호 모드에서 부팅되지만 UEFI에는 보안 부팅과 관련된 자체 문제가 있습니다.)

  4. 네트워크 기반 설치를 제공하는 대부분의 배포판에서 initramfs에는 자체 DHCP 클라이언트가 포함되어 있으므로 부팅 스크립트는 네트워크 주소 매개변수를 얻기 위해 DHCP 요청을 (다시) 만듭니다. 그런 다음 initramfs에 있는 설치 프로그램의 첫 번째 부분이 시작되고, 커널 부팅 매개변수로 지정된 URL에 연결하여 자체의 추가 부분을 다운로드하고, 마지막으로 운영 체제 설치 프로세스를 시작합니다.

귀하의 질문에 :

1.) 필요한 DHCP 옵션 값을 클라이언트에 제공하도록 라우터의 DHCP 서버를 구성할 수 있는 경우 두 번째 DHCP 서버가 필요하지 않습니다. 맞습니다. 동일한 네트워크에 조정되지 않은 두 개의 DHCP 서버가 있으면 상황이 무작위적이고 복잡해집니다.

2.) ISO 내의 설치 프로그램은 네트워크 기반 설치를 지원해야 합니다.

3.) 기본적으로 커널 파일과 initramfs 파일이라는 두 개의 파일을 찾아야 합니다. 아마도 ISO 이미지의 가장 일반적인 32비트 Linux 부트로더는 ISOLINUXSYSLINUX 제품군일 것입니다. 간단히 파일을 읽 isolinux.cfg거나 syslinux.cfg구성하고, 커널 및 initramfs 파일 경로와 필요한 부팅 옵션을 찾아 이를 네트워크 구성 부트로더 선택에 복사하면 됩니다. 일부 배포판은 특별히 네트워크 부팅을 위해 별도의 커널+initramfs 세트를 제공합니다. ISO의 내용에서 images/netboot이름이 같거나 비슷한 디렉토리를 찾아보세요.

이러한 파일을 얻는 데 사용되는 TFTP 경로 이름을 지정하므로 기본적으로 원하는 위치에 파일을 배치할 수 있습니다. 그러나 간단하게 유지하고 선택한 TFTP 서버의 기본 "TFTP 루트" 디렉터리에 배치하기를 원할 수도 있습니다.

올바른 커널 및 initramfs 파일을 클라이언트에 전달하는 작업을 완료한 후에는 ISO 콘텐츠의 나머지 부분을 제공하는 방법을 알아내기만 하면 됩니다. 일반적으로 ISO 또는 추출된 내용(또는 루프 마운트 ISO 이미지)을 웹 서버의 편리한 위치에 배치하고 ISO URL을 지정하는 커널 부팅 옵션을 PXE 부트 로더에 추가하면 구성됩니다.

  • 최신 RHEL/CentOS/Fedora 및 해당 복제본의 경우 필요한 커널 부팅 옵션은 다음과 같습니다.ip=dhcp inst.stage2=http://some.www.server/root/of/ISO
  • Debian/Ubuntu에는 설치 프로그램 initramfs에 deb.debian.org배포판의 저장소 서버(예: github)에 직접 연결할 수 있는 충분한 기능이 있으므로 나가는 연결이 허용되는 경우 전체 ISO가 전혀 필요하지 않을 수 있습니다.

관련 정보