CONFIG.SYS 是 DOS/Windows 9x 開機時讀取的核心系統配置檔,控制記憶體管理、裝置驅動程式載入、檔案控制塊、緩衝區、殼程式、環境變數等底層參數。正確配置能大幅提升傳統應用相容性、常規記憶體可用空間與系統穩定度。
核心指令分類與語法
| 指令 | 功能 | 語法範例 | 備註 |
DEVICE / DEVICEHIGH | 載入裝置驅動程式 (常規/上位記憶體) | DEVICE=C:\DOS\HIMEM.SYS
DEVICEHIGH=C:\DOS\MOUSE.SYS | HIGH 需 UMB 可用 |
DOS | DOS 核心載入位置與 UMB/HMA 控制 | DOS=HIGH,UMB,AUTO | HIGH=用 HMA, UMB=用上位記憶體, AUTO=自動配置 |
FILES / FILESHIGH | 最大同時開啟檔案控制塊數 | FILES=30 / FILESHIGH=30 | 30-60 適中,過大浪費記憶體 |
BUFFERS / BUFFERSHIGH | 磁碟緩衝區數量 (及次要快取) | BUFFERS=30,0 / BUFFERSHIGH=30,0 | 次要快取 0 表不啟用 |
STACKS / STACKSHIGH | 硬體中斷堆疊數量與大小 | STACKS=9,256 | 9 個 256-byte 堆疊為標準值 |
FCBS / FCBSHIGH | 檔案控制塊 (FCB) 最大數 (舊相容) | FCBS=4,0 | 現代極少用,保留預設即可 |
LASTDRIVE / LASTDRIVEHIGH | 最大可用磁碟機代號 | LASTDRIVE=Z | 預設 E/Z,視分割區數而定 |
SHELL | 指定命令解譯器 (預設 COMMAND.COM) | SHELL=C:\COMMAND.COM /P /E:640 | /P=永久駐留, /E=環境空間(bytes) |
SET | 設定環境變數 | SET TEMP=C:\TEMP | AUTOEXEC.BAT 也常設定 |
BREAK | 擴展 Ctrl+C 檢查 | BREAK=ON | ON 可在唯讀操作中斷 |
BUFFERS | 磁碟緩衝區 | BUFFERS=20 | |
ACCDATE | 記錄檔案最後存取日期 (DOS 7+) | ACCDATE=C+ D+ | + 啟用, - 停用 |
NUMLOCK | 開機時 NumLock 狀態 | NUMLOCK=OFF | |
SWITCHES | 特殊開機選項 | SWITCHES=/F /N | /F=跳過雙啟動延遲, /N=禁用 F5/F8 |
INSTALL / INSTALLHIGH | 載入 TSR (常駐程式) | INSTALLHIGH=C:\DOS\DOSKEY.COM /INSERT | |
REM | 註解 | REM 這是註解 | 不執行 |
MENUITEM / MENUDEFAULT / MENUCOLOR | 多重開機選單配置 | MENUITEM=WIN98, Windows 98 | 搭配 AUTOEXEC.BAT 實現選單 |
兩套實戰最佳範本 (MS-DOS 7.10 / Windows 98 SE)
方案一:EMM386.EXE 模擬擴充記憶體 (傳統相容)
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS NOVCPI I=B600-B7FF
DEVICEHIGH=C:\DOS\IFSHLP.SYS
DEVICEHIGH=C:\DOS\MOUSE.SYS
DEVICEHIGH=C:\DOS\CDROM.SYS /D:MSCD001
DOS=HIGH,UMB,AUTO
FILES=40
BUFFERS=30,0
STACKS=9,256
LASTDRIVE=Z
SHELL=C:\COMMAND.COM /P /E:1024
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
ACCDATE=C+ D+ E+
NUMLOCK=OFF
方案二:UMBPCI.SYS + HIRAM.EXE 最大化上位記憶體 (現代硬體最佳)
DEVICE=C:\DOS\UMBPCI.SYS
DEVICE=C:\DOS\HIRAM.EXE
DEVICEHIGH=C:\DOS\HIMEM.SYS
DEVICEHIGH=C:\DOS\IFSHLP.SYS
DEVICEHIGH=C:\DOS\CDROM.SYS /D:MSCD001
DOS=HIGH,UMB,AUTO
FILES=40
BUFFERSHIGH=30,0
STACKSHIGH=9,256
LASTDRIVEHIGH=Z
SHELL=C:\COMMAND.COM /P /E:1024
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
COUNTRY=086,936,C:\DOS\COUNTRY.SYS
NUMLOCK=OFF
關鍵優化觀念
- HIMEM.SYS 必須最先載入 (提供 XMS),其次 EMM386/UMBPCI (提供 EMS/UMB)。
- DEVICEHIGH/FILESHIGH/BUFFERSHIGH/STACKSHIGH/LASTDRIVEHIGH 將結構放入 UMB,騰出寶貴的 常規記憶體 (低於 640KB) 給 DOS 應用程式。
- DOS=HIGH,UMB,AUTO:核心進 HMA (64KB 高端記憶體區)、啟用 UMB 連結、自動最佳化。
- 排除衝突區域:
I=B600-B7FF (EMM386) 排除視訊 BIOS/網卡 ROM 區域,防止死機。
- SHELL /E:1024:擴大環境變數空間 (預設 256B 易不足)。
- UMBPCI + HIRAM 於現代主機板 (PCI/PCIe) 比 EMM386 更穩定、相容性更好,強烈推薦。
常見問題排查
| 現象 | 可能原因 | 對策 |
| 開機卡在 "Starting MS-DOS..." | HIMEM/EMM386 衝突、硬體不相容 | 加 /TESTMEM:OFF、嘗試 UMBPCI、最小配置測試 |
| 程式報 "Out of conventional memory" | TSR/驅動程式佔用過多常規記憶體 | 改用 DEVICEHIGH、移除非必要驅動、優化檔案/緩衝區數 |
| 光碟機/滑鼠/網卡無法運作 | 驅動程式未載入/參數錯誤/IRQ/DMA 衝突 | 檢查 DEVICEHIGH 行參數、BIOS 設定、嘗試常規記憶體載入 |
| 環境變數空間不足 | SET 過多、SHELL /E 太小 | 增加 /E:2048、精簡 SET 項目 |
現代地位
- Windows NT 核心系統 (2000/XP/10/11/Server) 不使用 CONFIG.SYS,改由登錄檔、BCD、服務控制管理器管理。
- NTVDM (NT Virtual DOS Machine) 在 32 位元 Windows 中模擬 DOS 環境時仍會讀取
CONFIG.NT、AUTOEXEC.NT (位於 %SystemRoot%\System32),可依樣畫葫蘆優化 DOS 程式相容性。
- DOSBox、vDos、DOSEmu 等模擬器完整支援 CONFIG.SYS,復古遊戲/舊應用部署仍需調校。
CONFIG.SYS 是 DOS 時代系統調校的藝術品。雖已淡出主流舞台,但其「記憶體分區管理、驅動程式載入次序、資源衝突排除」的核心邏輯,仍映照在現代作業系統的啟動流程、裝置樹建構與資源仲裁機制中。掌握 CONFIG.SYS,即掌握了 PC 相容架構啟動的基因密碼。