使用 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 live CD。讓它像這樣執行已經很討厭了,我已經筋疲力盡了……
對於 Linux Mint,我提供了 2 個網路引導選項: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/image
.vmlinuz
並且initrd
在/var/lib/tftpboot/linux-mint-17/image/casper
./var/lib/tftpboot/
是 NFS 導出。有一個名為tftpshare
映射到的 samba 共享/var/lib/tftpboot/
(只讀,允許所有人訪問)。配置文件
[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
ip=dhcp
這是, 在桌面顯示之前發生的情況:我很感謝任何想法。如果任何其他日誌(哪個?)會有所幫助,我可以提供它們。
這個問題已經被Serva解決了(我是Serva開發相關的)
可以在此處找到完整的核心和附加行以及 PXE 使用 CIFS 引導目前 Ubuntu/Mint 實時版本所需的額外 initrd.gz
基本上問題是一個 Casper 錯誤(AFAIK 以前從未報告/修復過),在 CIFS 網路掛載的情況下忘記導出核心參數,該參數稍後會影響網路配置腳本,最終會重新創建文件 /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) 的需要。INITRD_N11.GZ 可以從 Serva 網站免費下載(請不要在此處發布直接連結)
如果我們繼續分析“附加”行,我們會看到需要添加 CIFS 安裝選項(OP 忘記了這一步),在這種情況下,這些選項由某種誤導性變數“NFSOPTS”攜帶
NFSOPTS=-ouser=serva,pass=avres,ro
在此範例中,SMB 共享有一個 user=serva 和 password=avres,它將被安裝為“只讀”,當然使用者/密碼參數必須相應地進行編輯。
TFTP 路徑和 CIFS 定位器是 Serva 儲存庫結構所需的;當 PXE 伺服器不是 Serva 時,必須相應地編輯這些參數。
如果你們 PXE 以這種方式從 CIFS 共享啟動 Ubuntu/Mint Live 版本,則不會出現與網路相關的延遲,並且 Internet/網路將在啟動後立即工作
編輯:
錯誤已報告給Ubuntu Launchpad並確認