使用CIF进行pxebooting Linux Mint(Live CD)时,网络无法正确初始化,但可与nfs一起使用


9

我在192.168.26.1上有一个TFTP / DHCP / NFS / SMB服务器(Ubuntu服务器12.04 LTS)。我使用pxelinux显示一个菜单,其中包含Windows的启动和安装选项,Ubuntu网络安装程序以及Linux Mint 17 MATE live CD。像这样让它运行起来已经很讨厌了,我已经精疲力竭了……

对于Linux Mint,我提供了2个netboot选项:NFS和CIFS。我完全可以使用NFS:用户可以在启动菜单中选择它,不久之后,它就会进入Linux Mint live CD桌面。但是使用CIFS,网络无法正确初始化。Linux Mint启动时,网络将挂起120秒。然后,它继续引导到桌面,但是net 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/imagevmlinuz并且initrd/var/lib/tftpboot/linux-mint-17/image/casper/var/lib/tftpboot/是NFS导出。有一个称为的samba共享tftpshare映射到/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

据称,如果成功启动到桌面,分配给客户端的IP ifconfig确实是...14

没有以下内容,就会发生这种情况ip=dhcp

nodhcp1 nodhcp2

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

成功

我很感谢任何想法。如果有其他日志(哪个?)有帮助,我可以提供它们。


这是一个应该如何写的问题:)
沃伦(Warren)2014年

您是否尝试在服务器上进行tcpdump,以查看是否从客户端获得了任何东西?
lacasitos 2014年

1
看一下casper的启动脚本。我认为问题就在那里。您是否重新生成了initramfs?我假设您设置了BOOT = casper?
马特

1
马特,您可以清楚地看到OP设置了boot = casper。重新生成initramfs的作用是什么?
2014年

1
@warren我只是尝试了一下,它奏效了。@Sneetsher eth0如果需要互联网连接,我会连接到网关。
拨号器

Answers:


3

Serva解决了这个问题(与Serva开发有关)

完整的内核和附加行以及PXE使用CIFS引导当前Ubuntu / Mint实时版本所需的其他initrd.gz可以在此处找到

基本上,问题是Casper错误(以前从未报告过/未解决过AFAIK),在CIFS netmount的情况下,它忘记了导出内核参数,该内核参数后来会影响网络配置脚本,最终导致重新创建时出现延迟并出错了文件/ etc / network /接口。

如果我们看到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)的需要。可以从Serva的网站上免费下载INITRD_N11.GZ(请不要在此处发布直接链接)

如果我们继续分析“追加”行,我们会发现需要添加CIFS安装选项(OP忘记了此步骤),在这种情况下,该选项是由误导性变量“ NFSOPTS”携带的

NFSOPTS=-ouser=serva,pass=avres,ro

在此示例中,SMB共享具有一个user = serva和一个password = avres,并将其安装为“只读”,当然,必须相应地编辑当然的user / pass参数。

TFTP路径和CIFS定位器是Serva存储库结构所需的路径;如果PXE服务器不是Serva,则必须相应地编辑这些参数。

如果您以这种方式进行PXE引导,那么CIFS共享中的Ubuntu / Mint Live版本将不会有与网络相关的延迟,并且Internet /网络将在引导后立即运行

编辑:

错误已报告给Ubuntu Launchpad并确认


追加了INITRD_N11.GZ从赛瓦的网站为你mentioded做到了。我未包含任何内容,NFSOPTS因为我的samba服务器未使用身份验证。
Dialer

好; 仅提及在命令行中使用不带特定NFSOPS的CIFS引导时,Casper默认使用CIFSOPTS =“-ouser = root,password =”,但未指定“ ro”,以后可能会有一些副作用;在你的情况我会指定即NFSOPTS = “ - ouser = root,密码=,RO”
帕特

1
修改过的initrd图片是否源自Serva的开发团队?还是以前有人真的修复过此错误?
Dialer

INITRD_N11.GZ是Serva开发的产品,请参见编辑后的答案,您将找到指向我执行的错误报告的链接。如果您有一个Ubuntu Launchpad帐户,则可以“验证”该错误;否则,可能会失败。这将有助于在将来的版本中修复此问题。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.