我在 192.168.26.1 上有一个 TFTP/DHCP/NFS/SMB 服务器(Ubuntu 服务器 12.04 LTS)。我使用 pxelinux 显示一个菜单,其中包含 Windows、Ubuntu 网络安装程序和 Linux Mint 17 MATE 实时 CD 的启动和安装选项。让它像这样运行已经很麻烦了,我已经筋疲力尽了……
对于 Linux Mint,我提供了 2 个网络启动选项:NFS 和 CIFS。我让它完全使用 NFS:用户可以在启动菜单中选择它,片刻之后,就会进入 Linux Mint Live CD 桌面。但是使用 CIFS,网络无法正确初始化。当 Linux Mint 启动时,网络会挂起 120 秒。然后,它继续启动到桌面,但网络network-manager
没有启动(并且没有启动)。我怀疑这可能是 DHCP 服务器没有响应的问题,但是,在 DHCP 服务器日志中我可以看到 DHCP 请求和成功响应。
一旦进入 Linux Mint 桌面,ifconfig
就会报告由 DHCP 分配的 IP 地址,并且可以 ping 服务器。
我的 pxelinux 配置是(之后的所有内容APPEND
都在一行中,我只是为了方便在本站阅读而将其分开):
NFS:
LABEL linuxmint17
MENU LABEL Linux Mint 17
KERNEL linux-mint-17/image/casper/vmlinuz
APPEND
root=/dev/nfs boot=casper netboot=nfs
nfsroot=192.168.26.1:/var/lib/tftpboot/linux-mint-17/image
initrd=/linux-mint-17/image/casper/initrd.lz
CIFS:
LABEL linuxmint17smb
MENU LABEL Linux Mint 17 (SMB)
KERNEL linux-mint-17/image/casper/vmlinuz
APPEND
root=/dev/cifs boot=casper netboot=cifs
nfsroot=//192.168.26.1/tftpshare/linux-mint-17/image
ip=dhcp
initrd=/linux-mint-17/image/casper/initrd.lz
请注意,我必须将该ip=dhcp
选项插入 CIFS 菜单。如果我不这样做,启动过程在初始化网络时会挂起 120 秒,但之后不会继续。如果我添加该行,它仍然会挂起,但 120 秒后它会继续启动。
设置:
客户端和服务器虚拟机仅相互连接(内部网络)。网络中根本没有其他机器。
服务器在 下有所有的 pxe 启动文件/var/lib/tftpboot/
。Linux Mint ISO(未修改)安装在 下/var/lib/tftpboot/linux-mint-17/image
。vmlinuz
并且initrd
位于 中/var/lib/tftpboot/linux-mint-17/image/casper
。/var/lib/tftpboot/
是 NFS 导出。有一个名为 的 samba 共享tftpshare
映射到/var/lib/tftpboot/
(只读,允许所有人访问)。
smb配置文件
[tftpshare]
comment = TFTP Root
path = /var/lib/tftpboot
browsable = yes
guest ok = yes
read only = no
create mask = 0644
dhcpd配置文件
authoritative;
subnet 192.168.26.0 netmask 255.255.255.0 {
range 192.168.26.10 192.168.26.40;
next-server 192.168.26.1;
filename "pxelinux.0";
}
syslog
成功启动实时桌面环境后,客户端机器出现了奇怪的2分钟间隙:
Jun 14 13:13:18 mint kernel: [ 23.388873] intel_rapl: domain core energy ctr 0:0 not working, skip
Jun 14 13:13:18 mint kernel: [ 23.528409] intel_rapl: domain uncore energy ctr 0:0 not working, skip
Jun 14 13:13:18 mint kernel: [ 23.528453] intel_rapl: no valid rapl domains found in package 0
Jun 14 13:13:20 mint ntpdate[1198]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jun 14 13:13:20 mint ntpdate[1198]: no servers can be used, exiting
(2 分钟内没有任何条目,大约与 120 秒的启动延迟时间相同)
Jun 14 13:15:19 mint dbus[864]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)
Jun 14 13:15:19 mint dbus[864]: [system] Activating service name='org.freedesktop.PolicyKit1' (using servicehelper)
Jun 14 13:15:19 mint acpid: starting up with netlink and the input layer
Jun 14 13:15:19 mint acpid: 9 rules loaded
Jun 14 13:15:19 mint acpid: waiting for events: event logging is off
使用 CIFS 时,两种情况都会发生以下情况:
在服务器上:
...
Jun 14 13:12:52 ubuntu-netboot in.tftpd[2722]: RRQ from 192.168.26.13 filename /linux-mint-17/image/casper/initrd.lz
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPDISCOVER from 08:00:27:1c:c5:43 via eth1
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPOFFER on 192.168.26.14 to 08:00:27:1c:c5:43 via eth1
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPREQUEST for 192.168.26.14 (192.168.26.1) from 08:00:27:1c:c5:43 via eth1
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPACK on 192.168.26.14 to 08:00:27:1c:c5:43 via eth1
根据 ,成功启动桌面后分配给客户端的 IPifconfig
确实是...14
。
这就是发生的事情没有这ip=dhcp
:
ip=dhcp
在桌面显示之前,立即发生以下情况:
我很感谢大家提出任何想法。如果其他日志(哪个?)有帮助,我可以提供。
答案1
这个问题已经解决了塞瓦(我负责 Serva 开发)
可以找到完整的内核和附加行以及使用 CIFS 的 PXE 启动当前 Ubuntu/Mint 实时版本所需的附加 initrd.gz这里
基本上,该问题是 Casper 错误(据我所知之前从未报告过/修复过),在 CIFS netmount 的情况下,忘记导出内核参数,该参数后来影响网络配置脚本,最终导致重新创建文件 /etc/network/interfaces 时出现延迟和错误。
如果我们看到 Serva 的 Ubuntu/Mint“附加”行
append = showmounts toram root=/dev/cifs initrd=NWA_PXE/$HEAD_DIR$/casper/initrd.lz,NWA_PXE/$HEAD_DIR$/casper/INITRD_N11.GZ boot=casper netboot=cifs nfsroot=//$IP_BSRV$/NWA_PXE_SHARE/$HEAD_DIR$ NFSOPTS=-ouser=serva,pass=avres,ro ip=dhcp ro
我们发现嵌入的“initrd”变量由 2 个“连续加载”的 initrd 文件(initrd.lz 和 INITRD_N11.GZ)组成
initrd=NWA_PXE/$HEAD_DIR$/casper/initrd.lz,NWA_PXE/$HEAD_DIR$/casper/INITRD_N11.GZ
第一个 (initrd.lz) 是随 Ubuntu/Mint 提供的,而第二个 (INITRD_N11.GZ) 是一个很小的 8K(最初由 Serva 开发)自定义 initrd,包括修补的组件。这种方法避免了重新创建较大的原始 initrd.lz (20 MB) 的需要。INITRD_N11.GZ 可以从 Serva 的网站免费下载(请不要在此处发布直接链接)
如果我们继续分析“附加”行,我们会发现需要添加 CIFS 安装选项(OP 忘记了这个步骤),在本例中,这些选项由某种误导性的变量“NFSOPTS”携带
NFSOPTS=-ouser=serva,pass=avres,ro
在此示例中,SMB 共享具有用户 = serva 和密码 = avres,并且它将被安装为“只读”,当然必须相应地编辑用户/密码参数。
TFTP 路径和 CIFS 定位器是 Serva 存储库结构所需的路径和 CIFS 定位器;当 PXE 服务器不是 Serva 时,必须相应地编辑这些参数。
如果你们以这种方式从 CIFS 共享启动 Ubuntu/Mint Live 版本,则不会出现与网络相关的延迟,并且启动后互联网/网络将立即工作
编辑:
Bug 已报告给Ubuntu 启动板并确认