使用 cifs pxebooting Linux Mint(live CD)时,网络无法正确初始化,但使用 nfs 时可以正常工作

使用 cifs pxebooting Linux Mint(live CD)时,网络无法正确初始化,但使用 nfs 时可以正常工作

我在 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/imagevmlinuz并且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

nodhcp1 nodhcp2

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 启动板并确认

相关内容