![PXE 서버에서 여러 Linux 배포판을 호스팅하고 이러한 선택 사항을 PXE 클라이언트에 제공](https://linux55.com/image/47276/PXE%20%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C%20%EC%97%AC%EB%9F%AC%20Linux%20%EB%B0%B0%ED%8F%AC%ED%8C%90%EC%9D%84%20%ED%98%B8%EC%8A%A4%ED%8C%85%ED%95%98%EA%B3%A0%20%EC%9D%B4%EB%9F%AC%ED%95%9C%20%EC%84%A0%ED%83%9D%20%EC%82%AC%ED%95%AD%EC%9D%84%20PXE%20%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%97%90%20%EC%A0%9C%EA%B3%B5.png)
PXE 서버 - CentOS 6.5 64비트
대상 - 클라이언트는 네트워크 부팅 메뉴에서 OS 선택을 확인해야 합니다(Oracle Linux 6.5, RHEL 7, Ubuntu 14). 선택한 후에는 선택한 운영 체제 설치를 진행해야 합니다.
답변1
TFTP를 통해 네트워크를 통해 Grub을 부팅할 수 있습니다. 그런 다음 grub은 일반적인 방법으로 다음에 부팅할 옵션 메뉴를 표시할 수 있습니다. 이러한 선택 사항은 다양한 운영 체제 설치 프로그램일 수 있습니다. grub은 TFTP를 통해 선택된 운영 체제 설치 프로그램을 로드할 수도 있습니다.
나는 Debian(및 Ubuntu) 설치 프로그램이 단일 독립형 Linux 커널 + initramfs(initrd) 조합으로 부팅할 수 있다는 것을 알고 있습니다. grub이 간단한 방법( 및 명령 menuentry
사용 ) 으로 부팅하고 다른 항목에 액세스하기 위해 설치 프로그램을 정렬할 필요가 없기 때문에 이것이 가장 쉽습니다. 다른 배포판의 설치 절차도 비슷할 수 있습니다.linux
initrd
주의하실 점이 있습니다여기EFI를 사용하여 TFTP를 통해 부팅하도록 grub을 설정합니다. 추가문서는 검색하시면 쉽게 찾으실 수 있습니다. 기본적으로 DHCP 서버를 구성하고 TFTP 서버에 올바른 파일을 넣는 것이 중요합니다. DHCP 서버 구성 파일과 TFTP 서버 루트 디렉터리의 위치는 운영 체제에 따라 다릅니다.
DHCP 서버는 DHCP 옵션으로 클라이언트에 부팅 파일 이름을 제공해야 합니다. 이는 모든 네트워크 시작의 표준입니다. 부팅 파일 이름은 grub이 포함된 TFTP 서버에 있는 파일 이름을 가리킵니다.
grub 이미지의 경우 번들로 제공되는 독립 실행형 이미지를 사용하거나(이미지 생성 지침은 이전에 참조한 페이지에 있음)
bootx64.efi
grub core 를 사용할 수 있습니다core.efi
. 후자의 경우 grub은 실행 시 TFTP 서버와 별도로 다른 모듈과 해당 구성 파일을 로드해야 합니다.grub.cfg
커널 및 initrd 에 대한 경로 이름을 지정하는 일반적인 grub 구성 파일이어야 합니다(tftp)/path/to/the/object
. 물론 다양한 운영 체제 설치 프로그램에 대해 TFTP 서버에서 커널 및 initrd에 대해 다른 이름을 지정해야 합니다.
답변2
pxelinux.0
syslinux 프로젝트의 Linux용 범용 PXE 부트로더입니다. pxelinux.0
소유한 모든 Linux 배포판에 Single을 사용할 수 있습니다 . 당신이 해야 할 유일한 일은 PXE 구성을 업데이트 pxelinux.cfg/default
하거나 설정에 따라 업데이트하는 것입니다 pxelinux.cfg/CLIENT_MAC
.pxelinux.cfg/PORTION_OF_CLIENT_IP
당신은 할 수 있습니다:
- 체인 메뉴,
pmagic_advanced
항목 참조 - 체인 PXE 로더,
openbsd
항목 참조(내가 아는 한 Linux PXE 부트로더는 BSD 커널을 부팅할 수 없습니다) - 체인 TFTP 서버,
pxeserver2
항목 참조 - 부팅할 첫 번째 하드 드라이브에 넣고
syslinux
메뉴(라이브 USB) 또는isolinux
메뉴(라이브 CD)에서 복사할 수 있습니다. 이들은 동일한 프로젝트에 속하며 부팅 구성에 동일한 구문을 사용합니다.
내 예 pxelinux.cfg/default
:
DEFAULT partedmagic_6.7
LABEL test_kernel
MENU LABEL ^Test Kernel
KERNEL hello.boot
LABEL partedmagic_6.7
LINUX pmagic_6.7/bzImage
INITRD pmagic_6.7/initramfs
APPEND edd=off load_ramdisk=1 prompt_ramdisk=0 rw vga=normal loglevel=9 max_loop=256
LABEL partedmagic_5.5
MENU LABEL PartedMagic 5.5
LINUX pmagic_5.5/bzImage
APPEND initrd=pmagic_5.5/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 loglevel=0 max_loop=256
menu begin pmagic_advanced
menu title PartedMagic 5.5 Advanced
label mainmenu
menu label ^Back..
menu exit
include /pmagic_5.5/boot/syslinux.cfg
menu end
LABEL clonezilla_20100623
MENU LABEL ^CloneZilla 2010.06.23
KERNEL clonezilla_20100623/vmlinuz
APPEND initrd=clonezilla_20100623/initrd.img boot=live union=aufs noswap noprompt vga=788 ocs_live_keymap=NONE ocs_lang=en_US.UTF-8 fetch=tftp://192.168.10.123/clonezilla_20100623/filesystem.squashfs
LABEL unattended_4.9
MENU LABEL Unattended 4.9 for ^XP
KERNEL unattended_4.9/bzImage
APPEND initrd=unattended_4.9/initrd z_path=\\192.168.10.123\install_4.9
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL mini_ubutnu
MENU LABEL Mini-Ubuntu
KERNEL memdisk
APPEND initrd=ubuntu_mini.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
LABEL anax_bios_flash
MENU LABEL Anax Bios Flash
KERNEL memdisk
APPEND initrd=anax_bios_flash.img
LABEL openbsd
MENU LABEL ^OpenBSD 3.9
KERNEL openbsd_3.9/pxeboot.0
LABEL plop_4.0.0
MENU LABEL PlopLinux 4.0.0
KERNEL ploplinux_4.0.0/bzimage
APPEND initrd=ploplinux_4.0.0/initrfs.gz vga=1 nfsmount=192.168.10.123:/media/gnu_files/_servers/tftp/ploplinux_4.0.0/ploplinux
LABEL ubuntu_10.04_install
menu label ^Ubuntu 10.04 net install
kernel ubuntu_10.04/vmlinuz
append vga=normal initrd=ubuntu_10.04/initrd.gz -- quiet
LABEL ubuntu_10.04_cli
menu label Ubuntu 10.04 ^command-line net install
kernel ubuntu_10.04/vmlinuz
append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu_10.04/initrd.gz -- quiet
LABEL pxeserver2
menu label Switch to 2nd PXE server...
kernel pxechain.com
append 192.168.10.254::pxelinux.0