PXE 服务器 - CentOS 6.5 64 位
目标 - 客户端应在网络启动菜单中看到操作系统选择 - Oracle Linux 6.5、RHEL 7、Ubuntu 14。选择后,应继续进行所选操作系统安装。
答案1
您可以通过 TFTP 通过网络引导 grub。然后,grub 可以按照通常的方式显示下一个要启动的选项菜单。这些选择可以是各种操作系统安装程序。 grub 也可以通过 TFTP 加载所选的操作系统安装程序。
我知道 Debian(和 Ubuntu)安装程序可以作为单个独立的 Linux 内核 + initramfs (initrd) 组合启动。这是最简单的,因为 grub 可以以简单的方式(menuentry
使用linux
和指令)引导它initrd
,并且您不需要安排安装程序来访问其他任何内容。可能其他发行版的安装程序是类似的。
有一些注意事项这里设置 grub 通过带有 EFI 的 TFTP 启动。通过搜索可以轻松找到更多文档。基本上,它可以归结为配置 DHCP 服务器并将正确的文件放在 TFTP 服务器上。 DHCP 服务器配置文件和 TFTP 服务器根目录的位置因操作系统而异。
DHCP 服务器需要向客户端提供启动文件名作为 DHCP 选项。这是任何网络启动的标准。引导文件名指向位于包含 grub 的 TFTP 服务器上的文件名。
对于 grub 映像,您可以使用捆绑的独立映像(在前面引用的页面上制作映像的说明),
bootx64.efi
或者仅使用 grub 核心core.efi
。在后一种情况下,grub 在运行时需要从 TFTP 服务器单独加载其他模块及其配置文件。grub.cfg
应该是一个普通的 grub 配置文件,您可以在其中将内核和 initrd 的路径名指定为(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
菜单(live USB)或isolinux
菜单(live 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