2,706 瀏覽數

DOS PXEboot

DOS PXEboot
最近同事又問起如何快速將多台機台的 BIOS 同步做更新,一般 BIOS 的更新可以在 DOS 下或者是在 Windows 以及 Linux 下來更新,但是透過 Windows 以及 Linux 基本上就快速不起來了,所以他們想到的方式也就是採用網路 PXE 去下載 DOS 的 image 來更新 BIOS.做法只要下面幾個步驟即可.

PXE Linux
關於網路開機 PXEBoot 與 DHCP / TFTP 等服務請先參考 http://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/ 將它變大來使用.
    winimage_format
    除了 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 個網友的想法 “DOS PXEboot

  1. 自動參照通知: USB 的 DOS 開機碟 – Benjr.tw

  2. 自動參照通知: 安裝 Linux | Benjr.tw

  3. 自動參照通知: Linux – Memtest86+ | Benjr.tw

發表迴響