Linux

從 dos 實用程序韌體更新程序創建可引導的 PXE 映像

  • August 5, 2011

我想知道是否可以從 dos 實用程序韌體製作 PXE 可引導映像。對於某些細節,韌體更新程序通常安裝在USB 記憶棒上。我有所有的平面文件。我應該只是將平面文件轉儲到我的 tftpboot 伺服器上,然後為 pxemenu 添加適當的位,還是該過程涉及更多?

我找到了 FreeDOS,但它們沒有提供大於 1.44MB 的圖像,這是一個問題,因為僅韌體 rom 的大小為 5MB。我嘗試使用這些步驟創建一個更大的圖像,但沒有任何成功,因為每次我啟動到圖像時它都不會顯示通常的 FreeDOS 菜單(它只列印出 FreeDOS 並且不提供命令提示符)。

編輯:我能夠從這裡從 FreeDOS 映像中執行 rom,但是當然在執行 rom 時它說 rom 已損壞,因為整個 rom 實際上並不在那裡,並且由於只有 1.44 而只是部分在那裡圖像上的 MB 空間。更複雜的是,rom 只會在 himem.exe 和 emm386.exe 執行時執行(它們是通過在 FreeDOS 上選擇第二個選項來啟動的)。

EDIT2:在將平面文件添加到記憶棒和我找到的自定義freedos USB記憶棒中的COMMAND.COM之後,我終於讓USB記憶棒工作了。仍然將文件複製到 USB 映像並嘗試從 PXE 啟動它拒絕啟動。

您可以在此處查看分步教程:http ://www.smop.co.uk/mediawiki/index.php/PXE_booting_floppy_images

或者嘗試搜尋“通過 PXE 啟動 ISO”、“通過 PXE 啟動 DOS”等。


擴展編輯

以下是經過測試和工作的。

您只需要完整的 FreeDOS ISO、最新的Linux LiveCD、已安裝的 Linux 和虛擬機

然後這就是我所做的:

  1. 創建一個只有20 MB 硬碟大小的虛擬機,並將 Full FreeDOS ISO 作為 CD-ROM 附加。
  2. 從 FreeDOS ISO 啟動虛擬機並在虛擬硬碟上安裝 FreeDOS 的最小版本。
  3. 確保在安裝過程中使用提供的 FreeDOS 工具對硬碟進行分區和格式化。該磁碟應可引導並格式化為 FAT16。
  4. 彈出 ISO 映像並嘗試從虛擬硬碟啟動。重複這些步驟,直到它成功啟動到虛擬硬碟。對我來說,它只適用於第三個 FreeDOS 引導選項,但你應該嘗試所有這些。
  5. 將 Linux LiveCD 附加到虛擬機並引導 LiveCD。然後將虛擬硬碟掛載在文件系統的某個位置。
  6. 將所需的 DOS 工具轉移到已安裝的硬碟上。通過 HTTP、SCP、FTP、SMB 甚至通過真正的 USB 快閃記憶體驅動器。沒有必要,但建議創建虛擬硬碟的子文件夾並將文件放入其中。您應該已經在外部或 Linux LiveCD 系統中提取了文件。確保您沒有覆蓋硬碟上的任何 FreeDOS 文件。
  7. 解除安裝虛擬硬碟。
  8. 創建虛擬硬碟的磁碟映像dd if=/dev/sda of=/tmp/freedos.img(將 /dev/sda 替換為虛擬硬碟的正確設備名稱)
  9. 將圖像傳輸/tmp/freedos.img到真實機器(SCP、SMB、FTP 或其他)。
  10. 關閉 Linux LiveCD 系統,彈出 LiveCD 映像,重新啟動並嘗試重新啟動到 FreeDOS 硬碟(不是映像)。

如果它有效並且您看到複製的程序一切都很好,您可以再次關閉系統。如果不是,請從步驟 5) 開始重複。 11. 如果您在某處安裝了 Linux,請嘗試安裝該syslinux軟體包。這比編譯你自己的二進製文件或從某個地方下載預編譯的圖像更容易。
安裝後在文件系統中找到memdisk二進製文件。我的在/usr/lib/syslinux/memdisk. 12. 傳輸memdiskfreedos.imgPXE 環境的 tftp 伺服器,並使用以下配置條目對其進行配置。

.

label freedos
menu label FreeDOS flash environment 
kernel memdisk
append initrd=freedos.img harddisk

通過 PXE 啟動並從網路享受 FreeDOS。


作為讀者的練習,您應該嘗試iPXE,它是一個開源 PXE 韌體。有了它,您可以跳過所有 tf​​tp/PXE 廢話,而是通過 HTTP 啟動!在這種情況下,您可以從 iPXE 引導載入程序引導並輸入以下命令:

dhcp
imgfetch http://192.168.1.1/freedos.img
chain http://192.168.1.1/memdisk harddisk

dhcp為您提供來自 DHCP 伺服器的任何 IP,只是為了與 192.168.1.1 或您的(內部)網路伺服器進行通信。您也可以改為設置靜態 IP。其他命令從 HTTP 下載並安裝引導載入程序和磁碟映像,然後啟動映像。感人的。

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