编辑:我搞明白了。我只需要正确设置文件的权限,这会导致问题(不知道我怎么会错过这一点)。感谢大家的建议。
我正在尝试在 CentOS 6 上安装 TFTP 服务器。我的想法是,我安装它的机器是一台服务器,它允许客户端通过网络启动以启动我的 tftp 配置中列出的启动选项。
我试图为用户提供 4 个不同的选项,本地启动、centos 安装程序/救援和内存测试。我遇到的问题是,我可以成功启动客户端以通过网络启动并连接到启动器,但它会抛出一个错误,提示未找到默认选项(这是由于未设置默认值)。
我并不想让菜单默认为某个选项,我只是希望它超时 30 秒,以便用户可以选择一个选项(他们可以按 F1 查看选项列表)。除非他们选择另一个标签,否则它会在 30 秒后启动到本地硬盘。
我的/tftpd
目录有一个/images, pxelinux.0, pxelinux.cfg (within this is the default, helpfile, boot.message)
我的默认文件:
default #dont know what to put here
display boot.message
F1 helpfile
prompt 0
timeout 300
ontimeout local
MENU TITLE Main Menu
LABEL local
MENU LABEL Boot LOcal
LOCALBOOT 0
LABEL centinstaller
MENU LABEL Installer
APPEND images/initrd.img linux
LABEL centrescue
MENU LABEL Rescue
APPEND images/initrd.img linux rescue
LABEL memtest
MENU LABEL testmem
KERNEL images/memtest86+-4.10
基本上,用户输入标签来启动该选项(无论是内存测试还是本地硬盘启动)。但这种配置实际上并不允许我按 F1 来显示帮助文件,它也不会执行任何操作……一旦客户端启动,它实际上就会冻结,并显示一条消息“未设置默认值”。我实际上应该将其设置为多少才能实现我想要的效果?
我配置了其他所有内容(dhcp.d、/etc/xinetd.d/tftp)
答案1
您正在寻找MENU DEFAULT
设置,并且需要menu.c32
实际显示菜单。这是我在工作中设置的 PXE 配置(删除了无关的细节,它实际上是从 Django 模板自动生成的,并且稍微复杂一些):
PROMPT 0
DEFAULT menu.c32
MENU TITLE Booking.com PXE environment
MENU AUTOBOOT Booting local in # seconds
TIMEOUT 100
LABEL local
MENU DEFAULT
MENU LABEL local
LOCALBOOT 0x80
LABEL co6-x86_64
MENU LABEL co6-x86_64
kernel ...
append ...
LABEL DiskWipe
MENU LABEL Disk Wipe/Erase
KERNEL /menu.c32
APPEND /dban/isolinux.cfg