我正在尝试通过 foreman 将 Ubuntu 16.04 配置到 soekris net6501。该过程本身现在实际上运行得相当顺利。
有一件事没有做我们想做的事是后配置。这个想法是能够在任何阶段将新映像/操作系统部署到盒子中,并让其默认尝试 PXE 启动,如果 PXE 未发生,则转到本地磁盘。
因此,当 foreman 设置为构建主机时,PXE 启动工作正常(经过一些调整和实验),但在配置完成后第一次重新启动时,机器就会挂起。
PXE-M0F: Exiting Intel Boot Agent.
如果我更改 BIOS 以选择本地磁盘,那么一切都会好起来。但这不是我想要的;有些机器会放在数据中心,带着笔记本电脑在那里摆弄串行控制台是不可取的。
[下面编辑 1]
工头日志的摘录:
14:45:38 foreman dhcpd: DHCPDISCOVER from 00:00:24:d2:05:bc via eth1
14:45:38 foreman dhcpd: DHCPOFFER on 192.168.0.4 to 00:00:24:d2:05:bc via eth1
14:45:42 foreman dhcpd: Dynamic and static leases present for 192.168.0.4.
14:45:42 foreman dhcpd: Remove host declaration testkris or remove 192.168.0.4
14:45:42 foreman dhcpd: from the dynamic address pool for 192.168.0.0/23
14:45:42 foreman dhcpd: DHCPREQUEST for 192.168.0.4 (192.168.0.1) from 00:00:24:d2:05:bc via eth1
14:45:42 foreman dhcpd: DHCPACK on 192.168.0.4 to 00:00:24:d2:05:bc via eth1
14:45:43 foreman in.tftpd[15186]: tftp: client does not accept options
以及该机器的 PXE.cfg:
SERIAL 0 19200 0
CONSOLE 0
DEFAULT menu
PROMPT 0
MENU TITLE PXE Menu
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local
LABEL local
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT 0
[编辑下面的2](输出乱码,尝试尽可能地清理转义序列):
Intel(R) Boot Agent GE v1.3.72
Copyright (C) 1997-2010, Intel Corporation
Initializing and establishing link...
CLIENT MAC ADDR: 00 00 24 D2 05 BC
DHCP..
CLIENT IP: 192.168.0.4 MASK: 255.255.254.0 DHCP IP: 192.168.0.1
GATEWAY IP: 192.168.0.1
TFTP.
TFTP.
!PXE entry point found (we hope) at 95D2:0106 via plan AUNDI code segment at 95D2 len 5210UNDI data segment at 8F97 len 63 Getting cached packet 01 02 03My IP address seems to be C0A80004 192.168.0.4ip=192.168.0.4:192.168.0.1:192.168.0.1:255.255.254.0BOOTIF=01-00-00-24-d2-05-bcTFTP prefix: Trying to load: pxelinux.cfg/01-00-00-24-d2-05-bc ok
PXELINUX 4.05 20140113 Copyright (C) 1994-2011 H. Peter Anvin et al
@lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx^O
PXE Menu
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x (local) x
x x
x x
x x
x x
x x
x x
x x
x x
x x
x x
x x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
Press [Tab] to edit options
Automatic boot in 1 second...
PXE-M0F: Exiting Intel Boot Agent.
然后它就呆在那儿。
答案1
通过反复试验,我了解到该LOCALBOOT 0
命令并不适用于所有硬件。
您需要为不同的硬件设置不同的磁盘启动命令。在 syslinux wiki 上了解有关硬件兼容性问题的更多信息:http://www.syslinux.org/wiki/index.php?title=Hardware_Compatibility#LOCALBOOT
以下是我们使用的 3 种不同的“硬盘”启动命令,没有一个命令适用于所有硬件。
KERNEL chain.c32
APPEND hd0
LOCALBOOT 0
LOCALBOOT -1
另外,我还发现并非所有 syslinux 版本都能同样好用。因此,请尝试不同的版本,看看哪个最适合您的硬件。