ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

VMware Workstation安装Windows 3.1完整指南:配置、驱动与踩坑记录

2026/10/2 15:38:40 拓冰建站 浏览量
VMware Workstation安装Windows 3.1完整指南:配置、驱动与踩坑记录 前几天整理机器上的旧镜像翻出一套Windows 3.1的安装软盘备份顺手就在VMware Workstation里开了一个新虚拟机。原本以为二十分钟能搞定的事结果从分区摸到显示驱动断断续续折腾了一晚上。倒也不是系统本身多难装恰恰相反Windows 3.1的安装程序非常简单难的是在现在的虚拟机环境里模拟出它认识的那些老硬件VMware Workstation并没有给Windows 3.1准备一个专门的“客户机操作系统”预设内存配多大、磁盘选什么接口、启动盘从哪里来全都得自己拿主意。这篇文章把我完整的安装过程、每一步配置背后的原因以及踩过的几个坑都写清楚给想怀旧、在研究早期GUI系统建立机制、或者需要在虚拟机里验证老软件兼容性的朋友做个参考。1. 为什么要把Windows 3.1装进VMware Workstation1.1 Windows 3.1到底是个什么样的系统先说清楚一点Windows 3.1不是独立操作系统它是跑在MS-DOS之上的一个图形界面层1992年发布的时候属于从Windows 3.0到Windows 95之间那个承上启下的版本。它在概念上和现在的Windows差别很大你打开电脑先看到DOS提示符然后敲WIN回车才进入图形桌面关闭图形界面后又回到DOS环境。这套系统分两种运行模式标准模式Standard Mode和386增强模式386 Enhanced Mode。标准模式只需要80286处理器把程序当作多任务任务来切换386增强模式则有真正的虚拟内存和“DOS箱”功能可以在Windows窗口里运行多个DOS程序。这决定了后面虚拟机的配置思路内存给多少、要不要装EMM386都和这个模式选择有关。值得怀旧或研究Windows 3.1的原因很多。它是Win32 API成熟之前最重要的Win16开发平台很多经典老软件、老游戏、早期中文平台比如中文之星只认它它也是理解Windows“图形外壳与内核分离”这个阶段的最好样本。你要是做老软件兼容性测试Windows 3.1虚拟机几乎是必备环境。1.2 为什么选VMware Workstation而不是DOSBox很多朋友一听“跑老系统”第一反应是DOSBox。DOSBox确实轻量对老游戏的支持非常出色但拿它跑Windows 3.1会有点别扭。DOSBox模拟的是“一台接近游戏机配置的DOS PC”默认对显卡声卡的处理都偏向游戏兼容性系统调用行为并不完全像真实PC像Windows 3.1增强模式要用到的扩展内存管理、EMM386加载这些DOSBox可以跑但容易出一些奇怪现象。VMware Workstation走的则是另一条路它模拟的是一台完整且规范的PC有BIOS、IDE硬盘、PS/2键盘鼠标、VGA兼容显卡Windows 3.1在大面上能把它识别成“标准VGA机器”行为更接近你在1993年买的那台品牌机。加上VMware有非常成熟的快照功能你可以在装完DOS、装完Windows、装完驱动软件后的不同阶段各打一个快照怎么折腾都能一键还原这在排故时特别省心。我做一个简单的对比对比项DOSBoxVMware Workstation启动速度和轻量程度高中完整Windows 3.1环境兼容性一般好快照和回滚有限完善硬件识别规范性偏向老游戏机贴近真实PC适合场景跑个别老游戏长期使用老软件、系统测试结论很直接如果你只是为了在Windows 3.1里玩一两个老游戏DOSBox可能更快如果你要把Windows 3.1当成一个持续使用的“老电脑”装软件、跑工具、做兼容性验证VMware Workstation的体验要稳定得多。这篇文章接下来的操作也是以VMware Workstation Pro 17为例新版本的界面基本类似。1.3 准备两份关键素材MS-DOS 6.22和Windows 3.1安装盘安装Windows 3.1之前你得先有一份DOS作为地基。我建议用MS-DOS 6.22它是DOS时代最普及、兼容性最稳的版本比它更早的DOS 5.0也能用但一些磁盘工具和后期软件兼容性稍差。Windows 3.1官方出生于1992年对DOS版本要求其实不高DOS 3.1以上都能装但实战中最稳妥的组合就是MS-DOS 6.22 Windows 3.1。素材方面需要两类文件MS-DOS 6.22安装软盘镜像一般是3张1.44MB的.img或.flp文件其中第一张同时充当启动盘。Windows 3.1软盘镜像一套6张左右第一张里面就有SETUP.EXE。如果你手上没有实体软盘这些镜像在互联网档案馆一类的老系统存档站点就可以找到这是老系统爱好者圈子里的常规做法不属于什么灰色操作。有实体软盘和USB软驱的朋友当然更简单直接把软驱接到宿主机上在虚拟机设置里指向物理软驱即可。不过现代主板还保留软驱接口的非常少所以要提前确认你的USB软驱能不能被宿主机识别。准备工作里还有一个常见问题网上部分下载站会把Windows 3.1压缩成光盘ISO发布。ISO本身也能用但DOS下读取光盘需要先加载光驱驱动和MSCDEX这会给安装增加一道麻烦所以我更推荐用软盘镜像来装。软盘镜像在VMware里可以像软盘一样直接挂载操作最顺手后续换盘也不折腾。2. 创建虚拟机的硬件配置几个关键选择不能马虎2.1 客户机操作系统选项里没有Windows 3.1怎么办打开VMware Workstation的“新建虚拟机向导”选择“自定义高级”到了“客户机操作系统选择”这一步你会发现在Windows列表里最多往回找也没有Windows 3.1这个选项。这是因为VMware从很早期的版本起就没有单独给Windows 3.1做预设官方对老系统的支持通常只到Windows 95。解决办法在客户机操作系统类型里选“其他Other”或“MS-DOS”。VMware Workstation 17的列表里直接有“MS-DOS”这一项选它即可如果某些版本菜单里没有选“其他32位”或者“其他”也没问题因为这类预设只是影响默认硬件模板和鼠标键盘的默认配置真正的效果要靠后续对CPU、内存、硬盘、BIOS的手工设置。还有一个容易被忽略的点是“硬件兼容性”下拉框。默认是“Workstation 17.x”这个值越高虚拟机的虚拟硬件越新可能会出现一些DOS无法识别的PCI设备。我测试时会把硬件兼容性设置成“Workstation 12.x”或“Workstation 14.x”让虚拟硬件模型回归到更接近DOS时代的形态。这样做的代价是损失一些新版本虚拟机才有的特性但对跑Windows 3.1来说完全无所谓稳定优先。2.2 内存、硬盘、软驱、光驱的参数配置思路内存怎么给是个讲究活。Windows 3.1在386增强模式下最多能管理大约64MB扩展内存但它不需要那么多在标准模式下更是只管理16MB。给少了程序容易报内存不足给多了某些DOS驱动和HIMEM.SYS反而会闹脾气。我反复试下来最稳的就是给32MB。这个数值既能让增强模式舒服跑又不会触发老驱动对大内存的适配问题。注意不要再勾选“预留所有客户机内存”之类的选项那样反而会让宿主机压力过大。磁盘接口我选IDE不用SCSI也不用NVMe。Windows 3.1时代IDE刚普及DOS对IDE的支持最成熟虚拟磁盘大小给1GB即可DOS加Windows 3.1全套程序加起来也就几十MB空间绰绰有余。磁盘类型我倒不强烈建议预分配动态分配在安装过程中一样工作正常只要后续不频繁做大文件写入就行。软驱必须保留并且把它作为第一启动设备。在定制硬件面板里找到“软盘驱动器”选中“启动时连接”媒介类型选择“使用软盘映像文件”然后指向MS-DOS 6.22第一张启动盘的镜像。光驱可以先保留在硬件列表里但安装阶段不要依赖它因为DOS和Windows 3.1安装程序默认都不认识光驱。2.3 BIOS固件类型和启动顺序的调整到“固件类型”这一步必须选“传统BIOS”。这是Windows 3.1能够在VMware里跑起来的大前提——它连UEFI是什么都不知道你选了UEFI开机后只会看到一块黑屏加一个光标。创建完虚拟机后再进入“虚拟机设置”在“选项”标签页里找到“高级”确认“固件类型”是BIOS。启动顺序的问题则需要在开机时按F2进入VMware的虚拟BIOS界面调整把“Removable Devices”可移动设备也就是软驱调到第一位硬盘排在第二位CD-ROM往后排。如果你前面已经把软盘镜像挂好了这一步甚至不用调多数情况下VMware会优先尝试启动软驱但为了保险还是建议进BIOS看一眼。我这边的完整启动序列配置是软驱 → 硬盘 → CD-ROM → 网卡。这样既能保证从DOS引导盘启动又不会因为某些奇怪的光盘引导区把安装流程带跑偏。3. 前置系统MS-DOS 6.22的安装细节3.1 FDISK分区别跳过“激活分区”用软盘镜像启动虚拟机后会进入MS-DOS 6.22的安装启动菜单或者直接落到A:\提示符。无论走哪种路径第一步建议先手动做分区因为这能帮你完全控制分区的大小和激活状态。在提示符下输入FDISK第一次运行会问“Do you wish to enable large disk support (Y/N)”选Y这样能使用FAT16大分区格式。然后选第1项“Create DOS partition or Logical DOS Drive”再选第1项“Create Primary DOS Partition”。FDISK会问你要不要用全部容量做主分区直接选Y。完成后系统提示“Partition 1 is made active”注意这句话分区必须激活也就是说引导标记落在这个主分区上否则重启后找不到可启动分区。如果后面格式化时系统提示找不到C盘八成是刚才漏掉了激活步骤。重新进FDISK选第2项“Set active partition”指定分区1即可。我当年第一次装老系统就在这里卡了二十分钟还以为软盘镜像坏了。3.2 格式化和安装DOS系统文件分区完成后重启虚拟机把MS-DOS 6.22的启动盘再挂一次进到提示符。输入FORMAT C: /S/S参数的含义是格式化后把系统文件IO.SYS、MSDOS.SYS、COMMAND.COM复制到C盘让C盘可以单独引导。之后虚拟机就可以脱离软盘启动DOS了。你可以顺手验证一下把软盘镜像从软驱里断开重启虚拟机如果能看到C:\提示符说明引导链路通了。接着把DOS安装软盘第2张或者包含完整安装文件的盘挂到软驱里在C盘提示符下输入A:\SETUP.EXE按提示安装到默认目录C:\DOS。安装程序会在结束时让你选择是否自动修改CONFIG.SYS和AUTOEXEC.BAT选是。它会自动加入HIMEM.SYS等关键驱动省掉好多手工编辑的麻烦。安装完成后卸掉所有软盘重新启动看到C:\就说明MS-DOS 6.22已经跑起来了。3.3 CONFIG.SYS里那几行配置是干嘛的安装好DOS后我习惯用EDIT C:\CONFIG.SYS检查一下配置文件。MS-DOS 6.22安装程序自动生成的配置通常长这样DEVICEC:\DOS\HIMEM.SYS DEVICEC:\DOS\EMM386.EXE NOEMS DOSHIGH,UMB FILES30 BUFFERS20这几行为什么重要HIMEM.SYS是扩展内存管理驱动Windows 3.1增强模式第一步就要检测XMS扩展内存没有它Windows会直接提示“无法在增强模式运行”。EMM386.EXE NOEMS的作用是把高端内存块UMB整理出来让DOS把常驻程序放到1MB以上的区域腾出更多常规内存给应用Windows 3.1在16MB以上内存运行时通常建议保留这个配置。DOSHIGH,UMB则是把DOS核心本身搬进高端内存减少对常规内存的占用。很多老教程会让你删掉EMM386理由是某些游戏和Windows增强模式冲突。但如果你只是装Windows 3.1和普通Win16软件保留EMM386没有大问题反而能提高系统稳定性。真遇到兼容性问题时再删不迟我会在后面的问题小节里专门说。4. Windows 3.1安装的核心过程4.1 怎样把Windows 3.1安装文件喂给虚拟机Windows 3.1的软盘镜像在VMware里有两种用法。第一种最省事把第一张软盘镜像挂到软驱在DOS提示符下输入A:\SETUP.EXE安装程序会提示“Insert Disk #2”这时候你暂停虚拟机“虚拟机设置 → 软盘驱动器 → 使用软盘映像文件”换成第二张镜像切回虚拟机按回车继续。如此反复到完成。这个换盘过程的问题在于每次换镜像都要切到虚拟机设置窗口操作次数多容易手滑点到别的地方。因此我更推荐第二种做法先把所有Windows 3.1软盘里的文件完整复制到硬盘上的一个临时目录再直接从硬盘运行安装程序。复制命令很简单依次挂载每一张软盘执行COPY A:\*.* C:\WIN31\DISK1 COPY A:\*.* C:\WIN31\DISK2需要说明的是Windows 3.1安装软盘里有部分文件是压缩存储的直接用COPY只能拿到原始镜像文件但实际上没关系因为你要运行的是SETUP.EXE它自己知道怎么去查找和解压这些文件你只要保证目录结构和文件名完整就行。全部复制完成后输入C:\WIN31\DISK1\SETUP.EXE即可开始安装全程不用再换软盘。4.2 硬件识别里的几个关键选项Windows 3.1的安装程序启动后会显示一个蓝色字符界面流程比现代系统简单得多。前几步是输入用户名和公司名没什么好说的。关键是“Setup Options”这一步推荐选择“Custom Setup”因为你需要手动确认硬件类型。Computer计算机类型保持默认“MS-DOS System”即可这个选项对虚拟机影响很小。Display显示器选“VGA”这是兼容性最好的起点。不要在一开始就选SVGA后面我会专门讲为什么。Mouse鼠标选“Microsoft Mouse PS/2”或“Microsoft Mouse v2”。VMware给虚拟机提供的是一个标准PS/2鼠标设备Windows 3.1的微软鼠标驱动能直接认出来。如果你发现鼠标箭头一抖一抖再回来换“Logitech”或“Mouse Systems”试试。Keyboard键盘保持“Enhanced 101/102-key US and Non-US keyboards”绝大多数情况不用改。接下来安装程序会要求选择要安装的Windows组件。默认全选即可棋牌游戏“扫雷”“纸牌”和“画图”“写字板”这些虽然是老古董但作为验证系统是否正常工作的手段非常方便建议都保留。4.3 标准模式与增强模式的成因和影响Windows 3.1安装完成后第一次重启VMware画面会从DOS的黑底白字切换到图形界面。你看到的实际上是一个自动选择运行模式的WIN.COM如果处理器和内存配置满足要求它默认进入386增强模式如果检测到不满足增强模式的条件则退回标准模式。标准模式和增强模式直接影响你后面能装什么软件、能同时开几个窗口。增强模式下Windows会建立虚拟内存交换文件也可以开多个DOS窗口还能用“DOS Box”跑很多老DOS程序标准模式则更轻量但对386时代之后的一些图形程序支持较差。VMware虚拟机配置了32MB内存理论上肯定能进增强模式但有时你会看到启动时卡在“Loading Windows”界面上不动或者提示内存配置不对。这时候需要手动干预在DOS提示符下输入WIN /3强制增强模式或者输入WIN /S强制标准模式。通过这个办法很容易判断是增强模式下的某个驱动出了问题还是系统整体没装好。我的实践建议是尽量保证增强模式可用。Windows 3.1的很多有价值特性比如多任务、窗口化DOS程序、虚拟内存都只有在增强模式下才完整。5. 安装完成后的优化、驱动和踩坑记录5.1 显示驱动从16色到256色这里有个原则Windows 3.1默认安装的VGA驱动只有16色屏幕是640×480分辨率一台虚拟机的桌面看起来非常怀旧但长期用它干正事会有点费眼。改成256色是安装后的第一个优化动作。操作路径“主群组 → Windows设置 → 选项 → 更改系统设置 → 显示器”在下拉列表里选择“Super VGA (800x600, 256色)”或者“VGA (256色)”。选完后系统会提示插入安装盘从软盘镜像或之前的C:\WIN31\DISKn目录里找到对应驱动文件确认后重启。这里有个值得注意的原则不要先尝试太新的驱动牌子。VMware虚拟显卡实际上是一个VESA兼容显卡Windows 3.1驱动库里并没有“VMware”这个选项最稳妥的就是通用的“Super VGA”驱动。有人会想试试“S3”或“Tseng Labs”这类号称能提升性能的驱动结果往往是驱动加载后黑屏或花屏最后只能回滚。虚拟机跑的是老系统稳定大于一切通用Super VGA驱动的256色已经足够满足绝大多数Win16软件的需要了。5.2 鼠标、声卡和多媒体扩展的配置顺序鼠标正常的情况下一般不需要额外配置。但如果你在Windows 3.1里感觉鼠标移动太灵敏或者太迟钝可以修改WIN.INI文件在[windows]段里找到MouseSpeed、MouseThreshold1、MouseThreshold2这三个参数。默认值各是1、5、10想降低灵敏度改成0、4、8试试这条经验是我在跑早期中文平台时积累的当时中文输入法下的鼠标特别容易飘。声卡是Windows 3.1虚拟机里比较尴尬的部分。VMware虚拟的音频设备在Windows 3.1下没有被直接识别安装程序也看不到现成的驱动。你可以在“Windows设置 → 更改系统设置”里选“Creative Labs Sound Blaster 1.5”或“Sound Blaster Pro”然后把端口设为220、中断设为5、DMA设为1。这套参数是Sound Blaster系列最经典的标准配置有一定概率让老软件发出声音。如果不行也不用太纠结Windows 3.1时代的软件本来就有一大量是无声运行的音效属于锦上添花。多媒体扩展方面Windows 3.1自带的“媒体播放器”“录音机”可以验证系统是否具备基本多媒体能力。如果打开这些程序时提示缺少MCI驱动去“控制面板 → 驱动程序 → 添加”里补上“MIDI序列发生器”和“波形声音”两个驱动基本就能跑了。5.3 VMware常见的“不可恢复错误”vcpu-0 exception 0xC0000005这段时间在多个老系统虚拟机上折腾发现一个高频问题启动Windows 3.1或某些DOS程序时VMware直接弹出一个错误框写着类似vmware workstation 不可恢复错误: (vcpu-0) exception 0xc0000005 (access violation)。这个错误看起来吓人其实多半不是Windows 3.1本身的问题而是现代虚拟化环境与老扩展内存机制之间的冲突。解决办法有两个方向。首先在“虚拟机设置 → 处理器”里取消勾选“虚拟化Intel VT-x/EPT/VPID”选项让VMware退回去用纯软件动态二进制翻译来执行老代码。这个模式下虚拟机速度会变慢一些但Windows 3.1这种轻量系统根本感觉不出来稳定性反而大幅提升。如果上面没解决再打开虚拟机的.vmx文件在里面添加一行vhv.enable FALSE这行命令同样是关闭嵌套虚拟化。很多时候vcpu-0异常就是宿主机的硬件虚拟化特性传递给了客户机客户机里的老DOS/Windows 3.1并没有正确处理这些新指令关掉就没问题了。顺便说一下如果你在VMware里跑Windows 9x虚拟机时看到“模块‘hv’启动失败”的提示也是同一个根源处理方式完全一样。我还遇到过一次诡异情况按下CtrlAltInsert重启虚拟机后Windows 3.1就再也进不去了一加载就报错。后来才发现是EMM386的NOEMS参数和新版VMware表面冲突把CONFIG.SYS里那行DEVICEC:\DOS\EMM386.EXE NOEMS注释掉再在HIMEM.SYS后面加上/M:1参数强制指定内存访问方式问题就消失了。如果你也卡在这一步可以试试这个组合拳。5.4 怎么用快照把这套老系统的价值发挥到最大把所有驱动和优化都搞定后一定记得马上创建一个干净快照。我的习惯是分三层做第一个快照打在“DOS 6.22刚装完”的状态命名DOS-Base。以后如果Windows 3.1装崩了可以直接从DOS重装不用再重复分区格式化。第二个快照打在“Windows 3.1刚装完、默认VGA驱动”的状态命名WIN31-Clean。这是最干净的初始环境适合做软件兼容性测试的基准。第三个快照打在“256色显示、声卡、常用驱动和软件都装好”的状态命名WIN31-OK。日常用都从快照这里备份继续。快照的本质是给虚拟机整机状态拍“存盘点”你可以在Windows 3.1里随便安装测试软件、修改系统配置、甚至让系统中毒出问题后直接恢复到上一个快照整个过程只需要几秒钟。这是物理老电脑无论如何都比不了的体验也是我强烈推荐用VMware Workstation跑老系统的核心原因。另外一个实用技巧是关于文件传输的Windows 3.1不支持VMware Tools因此没有了方便的拖拽文件功能。我通常的做法是在VMware里给虚拟机额外挂一块FAT16格式的虚拟磁盘先把宿主机上需要导入的文件放进这个镜像里再在Windows 3.1里用文件管理器访问D盘读取。如果你只是临时传几个小文件也可以做一张1.44MB软盘镜像把那几个文件塞进去后挂给虚拟机软驱虽然空间小但操作最简单直接。至于网络功能Windows 3.1原版本身没有集成网卡驱动要上网得先装网络客户端和相应的NDIS/ODI驱动折腾成本很高。大部分老软件的运行都不依赖网络我一般不开网络反而更安全也更稳定。真需要网络环境的场景建议直接换成Windows for Workgroups 3.11那个版本自带NetBEUI和TCP/IP基础协议栈在VMware里挂一个AMD PCnet网卡上网和共享文件会省心不少。这套流程我前后走了好几遍每次换VMware新版本都会重新验证一次。老实说Windows 3.1在虚拟机里并不是一个“难缠”的系统难的是你现在要主动去理解三十年前那套硬件规则为什么内存不能给太大为什么要BIOS不要UEFI为什么显示驱动选通用VGA比选专属驱动更安全。把这些规则摸透了不光是装Windows 3.1往后你再去折腾DOS 5.0、Windows 95、甚至更老的CP/M系统都会有一种“一通百通”的感觉。我最后分享一个小建议安装过程中每改一次关键配置都顺手截个图记录一下等系统稳定后再回头复盘你会有很多和当年那个DOS时代重新对话的乐趣。