我有192.168.26.1上的TFTP / DHCP / NFS / SMB服务器(Ubuntu服务器12.04 LTS)。 我使用pxelinux来显示包含Windows启动和安装选项,Ubuntunetworking安装程序和Linux Mint 17 MATE Live CD的菜单。 让它像这样跑就已经很讨厌了,而且我已经无能为力了
对于Linux Mint,我提供了2个netboot选项:NFS和CIFS。 我已经完全使用NFS:用户可以在启动菜单中select它,不久之后,登陆Linux Mint live CD桌面。 但是使用CIFS,networking不能正确初始化。 当Linux Mint启动时,networking挂起120秒。 然后,它继续启动到桌面,但network-manager没有启动(并且不启动)。 我怀疑这可能是DHCP服务器没有响应的问题,但是,在DHCP服务器日志中,我可以看到DHCP请求和成功的响应。
一旦进入Linux Mint桌面, ifconfig报告由DHCP分配的IP地址,并且ping服务器工作。
我的pxelinuxconfiguration是( 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菜单。 如果我不这样做,初始化networking时启动过程挂起120秒,但不会继续。 如果我添加该行,它仍然挂起,但120秒后,它继续启动。
设置:
客户端和服务器虚拟机仅彼此连接(内部networking)。 networking中根本没有其他机器。
服务器具有/var/lib/tftpboot/下的所有pxe引导文件。 Linux Mint ISO(未修改)安装在/var/lib/tftpboot/linux-mint-17/image 。 vmlinuz和initrd在/var/lib/tftpboot/linux-mint-17/image/casper 。 /var/lib/tftpboot/是一个NFS导出。 有一个名为tftpshare的samba共享映射到/var/lib/tftpboot/ (只读,允许访问所有人)。
smb.conf文件
[tftpshare] comment = TFTP Root path = /var/lib/tftpboot browsable = yes guest ok = yes read only = no create mask = 0644
dhcpd.conf中
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
根据ifconfig ,在成功启动到桌面的情况下,分配给客户端的IP确实是...14 。
这是没有 ip=dhcp :


在桌面显示之前,这是ip=dhcp发生的情况:

我很感激任何想法。 如果有其他日志(哪个?)会帮助,我可以提供。
Serva解决了这个问题(我和Serva开发有关)
可以在这里find完整的内核和附加行以及PXE启动当前Ubuntu / Mint Live版本所需的附加initrd.gz。
基本上这个问题是一个Casper的bug(AFAIK之前从来没有报告/修复过),在CIFS的情况下,netmount忘记导出一个内核参数,这个参数后来影响到networkingconfiguration脚本,最终导致文件/ etc / network /接口。
如果我们看到塞尔瓦的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
我们发现embedded式的“initrd”variables是由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,包括修补的组件。 这种方法避免了重新创build大的原始initrd.lz(20 MB)的需要。 INITRD_N11.GZ可以从Serva的网站免费下载(请不要在此直接链接)
如果我们继续分析“追加”行,我们看到需要添加CIFS挂载选项(OP忘记了这一步),在这种情况下,通过某种令人误解的variables“NFSOPTS”
NFSOPTS=-ouser=serva,pass=avres,ro
在这个例子中,SMB共享有一个user = serva,密码= avres,它将被挂载为“Read Only”,当然用户/密码参数也必须相应地编辑。
TFTPpath和CIFS定位符是Serva存储库结构所需的path; 当PXE服务器不是Serva时,必须相应地编辑这些参数。
如果你们PXE启动这种方式从CIFS共享的Ubuntu / Mint Live版本将不会有networking相关的延迟和互联网/networking将在启动后立即工作
编辑:
Bug已经报告给Ubuntu Launchpad并确认