DOS PXEboot
最近同事又問起如何快速將多台機台的 BIOS 同步做更新,一般 BIOS 的更新可以在 DOS 下或者是在 Windows 以及 Linux 下來更新,但是透過 Windows 以及 Linux 基本上就快速不起來了,所以他們想到的方式也就是採用網路 PXE 去下載 DOS 的 image 來更新 BIOS.做法只要下面幾個步驟即可.
PXE Linux
關於網路開機 PXEBoot 與 DHCP / TFTP 等服務請先參考 https://benjr.tw/83 裡面說明到如何透過網路 PXELinux 服務啟動系統.
DOS 開機片與 memdisk
我們需要兩個檔案一個是 memdisk 另外一個是 DOS / windows 98 boot image.可以至下面的網站下載
-
memdisk
http://syslinux.zytor.com/memdisk.php
這個檔案的用途是將,DOS / windows 98 boot image 載入到記憶體中,並將他的行為模式模擬成硬碟或是磁片的裝置. -
DOS / windows 98 boot image
DOS / windows 98 boot image 可以使用 WinXP 做出來的 DOS 開機片但是他是1.44M的格式,可能會塞不下所需要的工具,所以如果要使用2.88M 的格式時要再配合使用 winImage http://www.winimage.com/ 將它變大來使用.
除了 Windows 做出來的磁片外還可以選擇使用 FreeDOS – http://www.freedos.org/
修改 DOS 開機片內容
在 Linux 底下可以透過 #mount -o loop 而在 windows 下可以透過 winImage
[root@benjr ~]# mount -o loop -t vfat win98-boot.img /mnt [root@benjr ~]# cd /mnt
其中裡面的檔案只有下面三個不能移除其他的可依需求來添加.
- io.sys
- command.com
- msdos.sys
如你需要 Ghost 也可以放.還可以利用 DOS PXEBoot 來更新 BIOS.其實就是將 BIOS 檔案放到剛剛建好的 DOS 開機 image 檔裡面.詳細步驟請參考下面的聯結.
https://lists.sdsc.edu/pipermail/npaci-rocks-discussion/2005-June/012092.html
[root@benjr ~]# umount /mnt [root@benjr ~]# cp memdisk win98-boot.img /tftpboot/linux-install/
PXE Linux 設定
DOS PXEboot 主要是透過 Linux 下的 PXEBoot 來啟動,所以我們需要修改一下設定,設定檔位於 /tftpboot/linux-install/pxelinux.cfg/default
[root@benjr ~]# vi /tftpboot/linux-install/pxelinux.cfg/default label dos kernel memdisk bigraw append initrd=win98-boot.img
DOS 下的網路磁碟
如果要讓 DOS 連線到網路磁碟機中必須先啟動網卡.
[root@benjr mnt]# cat autoexec.bat @echo off SET TZ=GHO-08:00 prompt $p$g \net\netbind.com MOUSE.COM echo Loading…
DOS driver 在其官方網站都可以找到.這邊我使用的是 broadcom 的網卡.
[root@benjr mnt]# cat config.sys [COMMON] DEVICE=\net\protman.dos /I:\net DEVICE=\net\dis_pkt.dos DEVICE=\net\B57.dos LASTDRIVE = Z
3 thoughts on “DOS PXEboot”