spo*_*roo 4 ubuntu tftp pxe-boot ubuntu-10.10
我正在尝试 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
}
Run Code Online (Sandbox Code Playgroud)
我的 /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"
Run Code Online (Sandbox Code Playgroud)
我的/var/lib/tftpboot/
目录看起来像这样
initrd.img-2.6.35-25-generic-pae
vmlinuz-2.6.35-25-generic-pae
pxelinux.0
pxelinux.cfg
-- default
Run Code Online (Sandbox Code Playgroud)
我做到了
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
Run Code Online (Sandbox Code Playgroud)
/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
Run Code Online (Sandbox Code Playgroud)
我是在安装包后复制/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";
}
Run Code Online (Sandbox Code Playgroud)
当我启动客户端计算机并通过串行端口观察输出时,我注意到客户端从服务器请求 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:
Run Code Online (Sandbox Code Playgroud)
/var/log/syslog
节目
Feb 20 15:24:05 ch in.tftpd[2821]: tftp: client does not accept options
Run Code Online (Sandbox Code Playgroud)
它在系统日志中谈论什么选项?我认为它指的是 OPTIONS 或 TFTP_OPTIONS,但我做错了什么?
对于“找不到默认或 ui 配置指令”尝试更改
from KERNEL vmlinuz-2.6.35-25-generic-pae
APPEND ....optopns...
to DEFAULT vmlinuz-2.6.35-25-generic-pae ....options...
Run Code Online (Sandbox Code Playgroud)
或使用 UI 菜单。它帮助我使用 ubuntu 10.10 pxeboot.0