Linux

在 initrd.img (Centos) 中添加 eth0 支持的更簡單方法

  • August 21, 2015

我正在嘗試通過 pxeboot 在硬碟上部署複製映像。為此,我想使用 dd 工具。我知道很少有像fog和clonezilla這樣的工具可以做類似的事情,但這是大學項目。

背景:

目前我正在通過 pxeboot 部署 VMlinuz 和 initrd.img,因為這為我提供了執行我的 bash 腳本的環境,所以在載入完成後,我執行 dd 以在硬碟上部署映像。這工作正常。

問題:現在我想掛載駐留在 pxe 伺服器上的 nfs,而不是在 initrd.img 中打包磁碟映像(這非常昂貴)。但是當 initrd 被載入並且我嘗試 ping pxe 伺服器時,它會給出錯誤“網路無法訪問”

我試圖找到 RC,我認為 eth0 沒有配置,我沒有 IP 地址。我進一步嘗試找到一種方法來啟用此 eth0,但一種方法涉及修改 inramfs,這對我來說是非常新的。任何人都可以在這裡幫助我獲得一些起點。

謝謝

這就是發生的事情。當您通過 PXE 引導 vmlinuz/initrd 時,兩個文件的網路傳輸由位於客戶端 PXE 韌體中的 PXE“UNDI”網路驅動程序支持。從 vmlinuz 處於活動狀態並且它已安裝 initrd 的那一刻起,PXE UNDI 驅動程序不再使用,現在使用相應的Linux網路驅動程序("if available")

從您所說的情況來看,在我看來,您正在使用 vmlinuz/initrd 設置,does not have net support或者您可能正在弄亂 init 腳本,並且您ping在 init 設置 Linux 網路服務之前呼叫服務。

當 vmlinuz/initrd 集確實具有網路支持時,您將看到核心何時啟動新的 DHCP 請求,因為它需要初始化其 NIC/s,儘管 UNDI 驅動程序在傳輸 vmlinuz/initrd 前幾秒鐘前已經完成了完全相同的操作。然後您可以通過確認是否有 1 或 2 個 DHCP 請求來查看您的設備是否具有網路支持;或者只看init的程式碼。

如果您的套裝沒有網路支持,只需購買新套裝。您可以在 Serva的頁面上找到許多帶有網路支持的核心/initrd 集。請考慮depending on the set必須附加某些 syslinux 參數才能正確設置網路服務,例如 ieipappend 2ip=dhcporip=bootp

引用自:https://serverfault.com/questions/715395