2010/04/18

FreeDOS on USB Stick/SD Card

最近從 PTT 入手了一台 ASUS EeePC 1000HAE,用了幾天感覺還不錯,10.1 吋螢幕果然比較好些,鍵盤的配置比起 8.9 吋也大多了。

因為有備份/分割/救援的需求,需要開機到 DOS 下來進行一些操作。由於 Windows XP 已經沒有製作開機片的工具了,找了一下發現網路上有一些相關教學,可以利用 FreeDOS 來製作 USB 隨身碟/SD 卡的開機媒體,遂整理如下:

參考以下文章:
- EEEPC_SD卡開機片製作(含工具程式)與GHOST 系統備份(XP)教學(圖解) - Mobile01 討論群組
- 愛作夢的男人: FreeDOS 用 USB Flash 開機


1. 取得 HP USB Disk Storage Format Tool

目的是取得 HPUSBFW.EXE 檔案,可以從 Google 搜尋單檔或是自 HP 支援中心下載安裝檔案:Windows-based Format Utility for HP Drive Key or DiskOnKey USB Device下載頁面。安裝完畢後也同樣可以取得這個執行檔。HP提供的這個工具可以幫我們把 USB/SD 卡給格式化成開機用媒體,而不像以前的 Windows 只限軟碟機。

2. 取得 FreeDOS 可開機映像檔

FreeDOS 是一套相容 MS-DOS 的自由作業系統,版權方面沒有疑慮。雖然網路上可以找到許多 Bootdisk 是 MS-DOS 的,但畢竟是版權物。用 FreeDOS 不僅取得容易,也沒有版權疑慮,可以安心使用。

我們必須下載由 FreeDOS 官方作好的 Bootdisk,如果你是下載官方的 iso 映像檔的話那還需要安裝才能用,就跟其他作業系統一樣。我們要的是已經能開機執行的 Bootdisk。

官方 Bootdisk 提供點: http://www.fdos.org/bootdisks/
我們下載 FDSTD.288.imz 來用。

3. 下載 WinImage (共享軟體)

要在 Windows 下處理 .img/.imz 檔實在沒有什麼好方案,只有共享軟體 WinImage 比較好用,可惜它只能試用30天,反正我們用來取出 Bootdisk 內容後就夠了。



安裝完 WinImage 或直接取得 zip 解壓取得執行檔後,用 WinImage 開啟 FDSTD.288.imz,執行 Image → Extract,將所有檔案解壓到資料夾,這個即是 FreeDOS。搭配 HPUSBFW.EXE 可以格式化出一個開機媒體。

4. 進行格式化



使用 HPUSBFW.EXE 工具格式化 USB 隨身碟。勾選 Quick Format 快速格式化,並勾選 Create a DOS startup disk,指定剛才解壓 Bootdisk 的資料夾,按下 Start 開始格式化並完成開機媒體製作。

雖然現在 USB 隨身碟/SD 卡已經可以用來開機,但是裡面只有最基本的 Kernel 和 Shell,我們再把更完整的 FreeDOS 丟進去。再丟進去之前我們先更新一下。

5. 補/更新一些驅動 (進階者使用)

Bootdisk 附上的驅動程式其實已經過時了,有些如滑鼠、光碟機驅動也沒有附上去。如果有需要可以自行升級,我的建議是全部升一升免得到時候會用到。

- UMBPCI [http://www.uwe-sieber.de/umbpci_e.html]

內建的 UMBPCI 太舊了,像 EeePC 的 Intel 945GM 晶片組就在舊版不支援,如果有要使用的話記得要下載新版取代舊版,才能在 EeePC 環境正常載入。取出 umbpci.sys 即可。

- CTMOUSE [http://cutemouse.sourceforge.net/]

滑鼠驅動,讓操作更方便。只需要 ctmouse.exe 即可。

- XCDROM [if CD-ROM needed]

光碟機驅動。如果你有需求的話請從 FreeDOS 官方 XCDROM 下載。只需要 xcdrom.sys 檔案。

- 4DOS [http://4dos.isgreat.org/]

更強的 Shell,自行決定是否使用。如果需要只需抽出 4dos.com 即可。

- JEMM [http://www.japheth.de/] (取代內建 EMM386 嚴重錯誤時用)

內建的 EMM386 在我的 EeePC 一載入就發生嚴重錯誤,無法繼續工作。如果你不想用過度依賴晶片組的 UMBPCI 可以選用 JEMM386 取代 EMM386,至少載入後不會當機。

6. 大改 config.sys 和 autoexec.bat

Bootdisk 預設的 config.sys 和 autoexec.bat 都不太適合,我們為他做些修改。如果你以前就熟悉這兩個檔案,那就放手大改吧。不熟悉的話也有範例可以參考。以下是我的設定 (我使用新版 UMBPCI 取代內建 EMM386)

config.sys
LASTDRIVE=Z
BUFFERS=20
FILES=40
DOS=HIGH,UMB
DEVICE=\FDOS\HIMEM.EXE
DEVICE=\UMBPCI.SYS
DEVICE=\XCDROM.SYS /D:ATAPICDD ; if CD-ROM needed only
;SHELLHIGH=\COMMAND.COM /E:256 /P ; FreeDOS default shell
SHELLHIGH=\4DOS.COM \ /P ; if your want 4dos as your default shell

autoexec.bat
@ECHO OFF
\FDOS\CTMOUSE
\FDOS\SHSUCDX /D:ATAPICDD
SET PATH=.;\FDOS
CLS
ECHO Welcome to FreeDOS (http://www.freedos.org)!

參考:FreeDOS Wiki CONFIG.SYS example

7. COPY 完整內容到 USB/SD卡

只要將剛剛解壓 Bootdisk 的資料夾內所有檔案丟到 USB/SD 覆蓋就可以了。

完成之後,就可以在 BIOS 下設定由 USB 磁碟或 SD 卡開機,請參照主機板說明書。開機後讀取應該就可以看到 FreeDOS Kernel FAT 等等字樣,代表成功了。

再來就可以丟 spfdisk, ghost (原檔請購買 Ghost 授權或自行大顯神威) 等救援/分割用程式,讓這開機碟更有作用。

5 則留言:

  1. 只是要提取IMG/IMZ中的檔案的話用7-Zip 9.x開啟即可。

    而Jack所寫的xcdrom有新版(UIDEJR)
    http://johnson.tmfc.net/dos/driver.html

    回覆刪除
  2. 我看新版要搭配XMGR.SYS檔,就沒特別寫了。
    舊版的應該也能順利驅動ATAPI CD-ROM才對。

    其實整個過程我最難理解的,還是HIMEM/EMM386的記憶體關係了。
    什麼EMS, UMA, XMS...
    好像有的不載入運作程式也不會出事的模樣。
    還有UMBPCI應該可以取代EMM386吧?兩個作的事好像不太一樣耶。

    回覆刪除
  3. 其實我直接用這個了
    http://www.hiren.info/pages/bootcd-on-usb-disk

    回覆刪除
  4. 記憶體管理的部分可以只載入一個JEMMEX.EXE就全部搞定了,
    一個抵兩個,又簡單。這樣就不必看晶片組或者煩惱什麼XMS,UMA的。

    >>bootcd-on-usb-disk
    不錯,直接拿救援CD套裝塞進USB/SD,不過我喜歡土法煉鋼。
    煉出一個作業環境後再丟些工具也是OK的。

    回覆刪除
  5. JEMMEX穩定性沒MS HIMEM+MS EMM386好,有時用JEMMEX會遇到unhandled exception死掉。

    Jack的U系驅動程式不用搭配XMGR.SYS也能用。

    回覆刪除