使用cif进行pxeboot Linux Mint(live CD)时,networking无法正确初始化,但可与nfs一起使用

我有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/imagevmlinuzinitrd/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

nodhcp1nodhcp2

在桌面显示之前,这是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并确认