Windows 95 98 ME 在 Bochs 里的完整安装体验
bochsrc 推荐配置
Windows 95/98/ME 需要的硬件配置:
romimage: file=BIOS-bochs-latest, address=0xfffc0000
vgaromimage: file=VGABIOS-lgpl-latest-cirrus.bin # Cirrus VGA
cpu: model=pentium, count=1, ips=15000000 # Pentium (或 pentium2)
memory: guest=64, host=64 # Win95/98 推荐 64MB
# 硬盘 500MB flat 格式(bximage 创建时输出 C/H/S)
ata0-master: type=disk, path="win98.img", mode=flat, cylinders=1040, heads=16, spt=63
# 光驱用于安装 ISO
ata1-master: type=cdrom, path="win98se.iso", status=inserted
# 先用软盘引导安装盘(或用 ISO + CD-ROM 引导)
floppyA: type=1_44, path="boot.img", status=inserted
boot: cdrom, floppy, disk # 先试光盘引导
vga: extension=cirrus, update_freq=5
pci: enabled=1, chipset=i440fx, slot1=cirrus
keyboard: keymap=us
mouse: enabled=1 # 开鼠标
display_library: wx
# 可选硬件
sb16: enabled=1, midimode=dummy, wavemode=wav, waveintfreq=44100
ne2k: enabled=1, mac=00:40:3c:00:00:01, ethmod=slirp
log: bochsout.txt
panic: action=ask
关键配置点:
- VGA 必须用 Cirrus——Windows 95/98 自带 Cirrus GD5446 驱动
- CPU model 用 pentium 或 pentium2——太高的 CPU 可能导致 Win98 里某些老应用不兼容(过度优化的分支预测等)
- 内存 64MB 足够——Win98 在 64MB 下很流畅(比当年真实硬件快多了)
安装步骤概览
- 创建空白硬盘:
bximage -q -create -mode flat -size 500M -filename win98.img,记下输出的 C/H/S - 配置 bochsrc:按上面的模板写,C/H/S 从 bximage 抄
- 启动 Bochs:bochsdbg -q(调试版可以不用,bochs.exe 也可以)
- BIOS 自检:看到 Bochs BIOS 输出的硬件信息——应该能检测到 Cirrus VGA、NE2000 网卡、SB16 声卡
- 从光盘引导:Win98 SE 安装盘 ISO 是可引导的,会显示
Windows 98 Setup启动界面 - Fdisk + Format:先用 Win98 自带的 Fdisk 对硬盘分区、Format C:
- Setup 安装:一步步 Setup 向导,复制文件、检测硬件、配置网络
- 重启:安装完 Setup 会提示重启,改 bochsrc 里 boot: disk(拔掉光驱),再启动就进入 Win98 桌面了
可能遇到的问题
安装过程中 Fdisk 报磁盘容量不对
flat 磁盘 C/H/S 参数写错了——bximage 创建时输出的 CHS 必须完整抄到 bochsrc。Fdisk 报告的容量应该和你的磁盘大小一致(±几 MB 误差)。
安装完重启后黑屏
可能的原因:
- boot 顺序没改——改成
boot: disk - VGA BIOS 和 VGA 型号不匹配——Cirrus VGA BIOS 配 extension=cirrus
- 显卡驱动没装好——开机进 Safe Mode(F8),删除显卡驱动重装
鼠标不能用
bochsrc 里 mouse: enabled=1 必须有。而且 Win98 安装过程中需要检测到 PS/2 鼠标(Bochs 默认模拟的就是 PS/2 鼠标)。如果还是不行,换 USB 鼠标试试(bochsrc 加 usb_mouse: enabled=1)。
SB16 检测失败
Win98 硬件检测会自动识别 SB16——但你需要把 SB16 设为 ISA 模式(不要插到 PCI 槽)。如果还是检测不到,可能是 IRQ 冲突——检查 bochsrc 里有没有其他设备用了 IRQ 5(SB16 默认用它)。
速度太慢
Bochs 跑 Win98 的速度取决于你宿主 CPU 的性能。ips=15000000 大概相当于 Pentium III 1.5GHz——比 Win98 当年运行的机器快得多,但 Bochs 是解释执行,所以实际速度会慢。新的 i7/i9 CPU 上 Win98 在 Bochs 里应该能流畅运行(启动几十秒,打开窗口不卡顿)。

Windows 95 特殊注意事项
Win95 发布时 32MB RAM 是标配。64MB RAM 下 Win95 有一个内存 bug——会在启动时报"Not enough memory"或者运行不稳定。解决方法:在 CONFIG.SYS 里加:
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS NOVCPI
Win98 没有这个问题。
Windows ME
ME(Millennium Edition)在 Bochs 里的表现和 Win98 类似。ME 是 Win9x 系列最后一代,核心还是 DOS + 16/32 位混合代码,硬件驱动和 Win98 几乎相同。Bochs 里 ME 的兼容性很好。
典型使用场景
- 怀旧:在新电脑上跑 Win98 自带的经典小游戏(Solitaire、Minesweeper、Pinball)、Office 97
- 历史软件研究:运行 1990 年代的生产力软件(Lotus 1-2-3、WordPerfect、dBASE IV)
- 兼容性测试:如果你开发的软件需要在老旧系统上运行,Bochs 提供了精确的硬件环境
- 教学演示:展示 Windows 桌面环境是如何进化的