pxe 启动失败并显示消息:未找到 DEFAULT 或 UI 配置指令

pxe 启动失败并显示消息:未找到 DEFAULT 或 UI 配置指令

我正在尝试通过 pxe 启动一台机器(客户端),并且在此过程中,我正在尝试设置该机器可以启动的 tftp 服务器。

在运行 Ubuntu 10.10 的服务器上,我设置了 dhcp、dns、nfs 和 tftp-hpa 服务器。所有服务器/守护进程都启动正常。我使用 tftp 客户端并下载服务器目录托管的文件来测试 tftp 服务器。

我的 /etc/xinet.d/tftp 看起来像这样

service tftp
{
    disable                 = no
    socket_type             = dgram
    wait                    = yes
    user                    = nobody
    server                  = /usr/sbin/in.tftpd
    server_args             = -v -s /var/lib/tftpboot
    only_from   = 10.1.0.0/24
    interface   = 10.1.0.1
}

我的 /etc/default/tftpd-hpa 看起来像这样

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

我的/var/lib/tftpboot/目录如下所示

 initrd.img-2.6.35-25-generic-pae
 vmlinuz-2.6.35-25-generic-pae
 pxelinux.0
 pxelinux.cfg
   -- default

我做到了

 sudo chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
 chmod 755 /var/lib/tftpboot/initrd.img-2.6.35-25-generic-pae
 chmod 755 /var/lib/tftpboot/vmlinuz-2.6.35-25-generic-pae

/var/lib/tftpboot/pxelinux.cfg 包含以下内容

 SERIAL 0 19200 0
 LABEL linux
 KERNEL vmlinuz-2.6.35-25-generic-pae
 APPEND root=/dev/nfs initrd=initrd.img-2.6.35-25-generic-pae nfsroot=10.1.0.1:/nfsroot ip=dhcp console=ttyS0,19200n8 rw

我安装包后就/var/lib/tftpboot/pxelinux.0从中复制了。/usr/lib/syslinux/syslinux-common

同样,为了完整性,/etc/dhcp3/dhcpd.conf以下几行(与此界面相关)

subnet 10.1.0.0 netmask 255.255.255.0 {
  range 10.1.0.100 10.1.0.240;
  option routers 10.1.0.1;
  option broadcast-address 10.1.0.255;
  option domain-name-servers 10.1.0.1;
  filename "pxelinux.0";
}

当我启动客户端计算机并通过串行端口观察输出时,我注意到客户端从服务器请求 IP 地址并获取该地址。然后我看到显示 TFTP - 表明它正在尝试连接到 TFTP 服务器。这成功了,我看到了TFTP.|,它立即返回并显示以下消息

PXELINUX 4.01 debian-20100714  Copyright (C) 1994-2010 H. Peter Anvin et al
No DEFAULT or UI configuration directive found!
boot: 

/var/log/syslog节目

Feb 20 15:24:05 ch in.tftpd[2821]: tftp: client does not accept options

系统日志中讨论的是什么选项?我假设它指的是 OPTIONS 或 TFTP_OPTIONS,但我做错了什么?

答案1

为了 ”未找到默认或 UI 配置指令“尝试改变

from  KERNEL vmlinuz-2.6.35-25-generic-pae
      APPEND ....optopns...
to    DEFAULT vmlinuz-2.6.35-25-generic-pae ....options...

或者使用 UI 菜单。它帮助我使用 ubuntu 10.10 pxeboot.0

答案2

您缺少 DEFAULT 文件中的默认值 - 在您的情况下 /var/lib/tftpboot/pxelinux.cfg应该有

"DEFAULT linux"

行开头。

答案3

请注意使用正确版本的 menu.c32 或 vesamenu.c32。否则您将收到错误消息:“Menu.c32 不是 com32r 文件”。可以从 /boot 目录中找到这些文件的正确版本。此外,如果父系统是 64 位,则需要安装 32 位库。在上述示例中,“默认 menu.c32”不再起作用,它应该保留:UI menu.c32 或 UI vesamenu.c32。

答案4

你缺少默认条目/var/lib/tftpboot/pxelinux.cfg/default

我有同样的问题。

这是我的默认文件的内容:

DEFAULT menu.c32

prompt 0

timeout 5

LABEL linux

        menu default
        menu label Linux
        KERNEL fc1/vmlinuz-2.4.22-1.2115.nptl
        APPEND initrd=fc1/pxeboot.img.gz ramdisk=8192

菜单默认是必要的。

以下是Syslinux 维基

相关内容