ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

VMware 虚拟机安装 Windows 98 SE:全流程配置、驱动与避坑指南

VMware 虚拟机安装 Windows 98 SE:全流程配置、驱动与避坑指南 上个月有位做设备维护的老哥找到我说他手上有一套 2000 年前后的工控组态软件只能在 Windows 98 SE 上跑装到新系统上连安装程序都点不开厂家早就停止维护了重买一套授权要六位数。他的诉求很简单能不能在一台新电脑上把这套老软件完整跑起来顺便把当年的说明书、驱动盘、加密狗都接上。这类需求这几年其实越来越多——老游戏、老课件、老财务软件、老设备的调试工具都卡在那个年代的操作系统上。折腾了大概三个晚上我把整套流程跑通了中间踩的坑比想象中多得多SATA 磁盘装不上、重启后又被软盘引导回 DOS、装完驱动分辨率还是 640x480、宿主机死活访问不到虚拟机里的页面。这篇文章就把这次VMware 虚拟机安装 Windows 98 SE的完整过程拆开讲清楚。里面涉及的不只是点几下下一步更多是每一项虚拟机参数背后的取舍——为什么磁盘必须是 IDE、为什么内存给多了反而进不去系统、为什么新版 VMware Tools 根本装不上。适合三类人看手上有只认 98 的老软件不得不救的、想重温当年单机游戏但不想留旧电脑的、以及需要给老设备做兼容性验证的技术人员。哪怕你完全没碰过虚拟机跟着走也能自己搭一台出来。1. 先把用途想清楚Windows 98 SE 虚拟机到底解决什么问题动手之前先回答一个问题这台虚拟机将来干什么用这个问题决定了后面一大半配置。很多人一上来就装装完发现分辨率上不去、传不了文件、网络不通回头又得重装一遍白折腾。1.1 三类典型需求配置重点完全不同我把这些年见过的需求归成三类你可以对号入座老软件运行环境财务、进销存、工控组态、医疗设备调试工具。这类软件通常要求 98 SE 加特定的运行库很多还带并口或串口的硬件加密狗。重点在于外设直通和稳定性网络反而次要。老游戏怀旧98 到 2002 年之间的单机游戏尤其是依赖 DirectX 6/7、依赖 Sound Blaster 音效的那些。重点在于显示驱动、声卡驱动、鼠标手感以及 CPU 别太快导致游戏跑飞。兼容性验证开发或者测试岗位需要确认某个程序在 9x 环境下会不会出问题。重点在快照和快速回滚因为要反复装删。我在表弟那台机器上装的第一版就是为了跑老游戏结果因为分配了 4GB 内存安装程序直接报内存不足卡在蓝色文本界面。后来降到 256MB一切正常。这就是典型的给多了反而坏事。1.2 为什么是 98 SE而不是 Windows 95 或者 Me这三个系统在虚拟机里的安装难度差别挺大值得先说清楚。Windows 95 的内核更老对现代虚拟硬件的容忍度更低安装过程中报错的概率明显高于 98Windows Me 虽然界面新但它引入了系统还原和更激进的驱动模型兼容性反而比 98 SE 差很多老游戏在 Me 上跑起来会有声音问题。Windows 98 SE 是那个年代的最终稳定版USB 支持相对成熟、DirectX 支持到 9.0c、自带驱动覆盖面广、FAT32 支持完善。换句话说它是兼容性和易装性之间的最佳平衡点。如果你纠结装哪个直接选 98 SE不用犹豫。1.3 联网这件事最好一开始就定下来老软件分两种一种是纯单机的装上就能用另一种需要连局域网内的服务器或者校验授权。这决定了你在虚拟机网络那里选桥接还是仅主机也决定了要不要在 Win98 里折腾协议栈。我的建议是第一次安装时把网卡加上但先设成仅主机模式。这样虚拟机只能和宿主机通信不会往局域网里广播老旧的协议报文也不会被公司网络里的安全设备当成异常设备处理。等系统装稳了、驱动补齐了再根据实际需要改成桥接或者 NAT。提醒Windows 98 自带的 IE 最高只能到 IE6TLS 支持停留在 1.0现在的 HTTPS 网站基本都打不开。别抱着用虚拟机里的 98 上网的想法会非常失望。2. 开工前的准备镜像、Workstation 版本、宿主机条件准备工作没做好后面全是坑。这一节说的三件事是安装失败率最高的三个源头。2.1 安装介质用原版光盘做 ISO别碰魔改版Windows 98 SE 的安装介质分零售版和 OEM 版两者最大的区别是OEM 版的光盘可以直接引导启动零售版不行必须先用启动软盘引导。如果你手上只有零售版镜像就得额外准备一张 Windows 98 启动盘镜像通常是 .img 或 .ima 格式1.44MB。具体做法把原版安装光盘放进光驱用 ImgBurn 或者系统自带的刻录功能把它读成 ISO 文件保存到宿主机上。这一步别省事去网上找什么精简版美化版集成驱动版这类镜像被裁掉了组件、改过引导记录在虚拟机里出问题的概率非常高而且你根本不知道该往哪个方向排查。关于安装密钥我这边不方便提供请使用你自己手上介质附带的授权信息。Windows 98 SE 的密钥是五组五位字符的格式输入时注意区分数字 0 和字母 O这个当年坑过无数人。启动盘镜像的准备也要提一句启动盘镜像里包含 CD-ROM 驱动程序这很关键。DOS 本身不认识光驱必须靠这张启动盘加载驱动才能从光盘上运行安装程序。如果你用的是 OEM 可引导光盘这一步可以跳过。2.2 Workstation 版本怎么选新版不一定顺手这是很多人忽略的一点。VMware Workstation 新版本对 9x 系列的支持是在逐步退化的客户机操作系统列表里的 Windows 98 条目在不同版本里时有时无随安装包附带的 VMware Tools 早就不再提供 9x 版本的安装程序了。我的实测结论是Workstation 15 到 17 都能装成 Win98 SE但都需要手动补驱动。如果你手头正好有更老的版本比如 12、14装起来反而更省事因为那个时期的 Tools 包里还留着面向 9x 的组件。没必要为了这个专门去装老版本新版本配合手动装驱动一样能跑得很好只是多花二十分钟。另外提醒一句Workstation 和 Player 的区别在于 Player 不能新建虚拟机和修改大部分硬件配置。你要装老系统必须用 WorkstationPlayer 会让你在改磁盘类型这一步直接卡死。2.3 宿主机这边要预留什么宿主机是 Windows 10 或者 Windows 11都能跑问题不大。需要注意几个细节硬盘空间虚拟磁盘按 4GB 算加上快照和安装文件至少要留 20GB。快照是空间杀手后面会专门讲。BIOS 里的虚拟化开关Intel 平台叫 VT-xAMD 平台叫 SVM必须在 BIOS 里打开否则虚拟机启动会报错或者性能奇差。杀毒软件的实时防护有些安全软件会拦截 VMware 的驱动加载表现为虚拟机启动黑屏或者报无法打开虚拟机配置。如果遇到把虚拟机的存储目录加入白名单。Hyper-V 冲突Windows 10/11 专业版如果开了 Hyper-V 或者虚拟机平台功能会和 VMware 抢底层虚拟化表现是虚拟机跑起来异常慢。真要装 Win98 这种老系统把 Hyper-V 相关的功能关掉会更稳。还有个小细节如果你的宿主机用了高分辨率屏幕比如 4K虚拟机窗口里的 640x480 会小得看不清。这个不是故障是 Win98 没装显示驱动时的正常表现后面装完驱动就好了。3. 新建虚拟机的每一项设置为什么要这么填到了最关键的部分。我在这一页向导上停留的时间比后面装系统的时间还长因为每一个选项填错了都可能在安装过程中或者安装完成后才暴露出来那时候改就要重来。3.1 客户机类型与磁盘IDE 是唯一稳妥的选择客户机操作系统这一栏先选 Microsoft Windows然后在版本下拉里找。不同版本的工作站软件里98 的条目位置不太一样有的还有独立的 Windows 98有的只剩合并项还有的干脆被归到其他里。找不到就直接选其他影响不大因为这个选项主要影响的是推荐配置真正的兼容性靠后面的硬件类型决定。真正要命的是磁盘类型。默认给你的是 SCSI 或者 NVMe必须改成 IDE。原因是 Windows 98 的内核里根本没有内置 SCSI 和 NVMe 的控制器驱动安装程序启动后会在检测硬盘那一步直接告诉你找不到可用的磁盘。IDE 是 9x 原生支持的接口不需要额外驱动。虚拟磁盘容量的选择有个权衡容量文件系统适用场景注意点2GBFAT16极老软件、需要 FAT16 兼容浪费空间少但装几个游戏就满4GBFAT32大多数场景推荐分区时要在 FDISK 里启用大硬盘支持8GB 及以上FAT32要装大量老游戏首次格式化和碎片整理耗时明显变长磁盘文件的存放方式选将虚拟磁盘存储为单个文件性能比拆分成多个文件略好一点拷贝的时候也干净。如果你以后要用移动硬盘搬运而移动硬盘是 FAT32 格式那就得选拆分否则拷不进去。这一点很多教程不提但实际搬运时特别容易踩。还有一个选项是立即分配所有磁盘空间。勾上之后虚拟机在创建时就把 4GB 实际占满好处是运行时的磁盘碎片少、写入性能稳定不勾则是按需增长省空间但性能略打折。我的建议是勾上毕竟 4GB 在今天不算什么。3.2 内存、CPU、显存给多了反而出事内存这一栏是最容易想当然的地方。我见过太多人觉得宿主机有 32GB给虚拟机分 4GB 不过分吧结果安装程序跑起来就报错。Windows 98 系列有一个著名的问题物理内存超过 512MB 后启动时可能提示内存不足或者直接无法进入系统。原因是 9x 的 VCache 管理机制在计算缓存大小时会溢出导致初始化失败。所以虚拟机内存给128MB 到 256MB 最合适跑老游戏和老软件完全够用。真需要更多后面可以在系统内用 msconfig 里的内存限制选项处理但没必要一开始就把自己逼到墙角。CPU 数量设成1。Windows 98 是单处理器内核不支持多处理器给它两个核心只会让虚拟机在启动时多绕一圈没有任何性能收益。显存给 8MB 就够最多 16MB。给再多没有驱动也发挥不出来装上驱动之后 8MB 也足够跑 1024x768 的 32 位色。3.3 光驱、软驱与启动顺序光驱选 IDE 接口并且一定要勾上启动时连接。软驱需要挂载前面准备好的启动盘镜像文件格式支持 .img 和 .flo。启动顺序上虚拟机的固件默认是软驱优先还是硬盘优先取决于配置。这里有个很多人栽跟头的地方装系统时你需要从软驱或者光盘引导所以要把软驱/光驱排在硬盘前面。但是安装程序第一次重启之后如果你不改回来它会再次从软盘引导又回到 DOS 提示符。你会看到屏幕上光秃秃一个A:\然后把软盘抽掉再重启一切正常——但第一次遇到的时候真的会以为自己装崩了。我的做法比较干脆安装过程中用软盘引导进入 DOS 开始装等安装程序第一次自动重启、屏幕变黑的那一瞬间立刻在虚拟机设置里把软驱断开或者把启动顺序改成硬盘优先。后面的几次重启就都正常了。3.4 网卡、声卡、USB三个最容易被忽略的选项网卡的型号选择是个关键点。虚拟机的高级设置里网卡类型能选 e1000、e1000e、vmxnet3 等等。对 Windows 98 来说要选 AMD PCnet 兼容的那个vlance。原因很直接这个虚拟网卡在 Windows 98 SE 的驱动库里是有内置驱动的系统安装时就能自动识别而 e1000 系列需要额外的驱动文件vmxnet3 更是必须配合 VMware Tools而 9x 版的 Tools 早就找不到了。声卡选Sound Blaster 16。这是当年 9x 时代的事实标准Win98 自带的驱动就能驱动它装完系统基本直接有声音。另一个选项是 ES1371也能用但对老游戏的兼容性略逊一筹尤其是那些直接调用 SB16 端口的老游戏。USB 控制器保留默认的就行但别指望用它传文件。Windows 98 SE 的 USB 支持很不完整加上虚拟机里缺少对应的增强驱动插 U 盘大概率是识别不出来或者识别出来但读取失败。传文件的事走后面第六节的办法。最后还有一个容易被忽略的打印机端口和串口。如果你的老软件需要硬件加密狗先确认加密狗是并口、串口还是 USB 的。并口和串口可以尝试在虚拟机里添加对应端口宿主机如果没有物理端口就用不了USB 加密狗在 Win98 虚拟机里基本没戏。这个必须在动手前确认否则装完发现激活不了全白干。4. 从 FDISK 到第一次进桌面安装过程实录配置填完点开机真正的重头戏开始。这一段我把实际操作的顺序和中间的关键节点都记下来你可以对照着走。4.1 用启动盘分区与格式化虚拟机从软盘启动后会出现一个菜单通常有几个选项启动时不加载光驱驱动、启动时加载光驱驱动、查看帮助。一定要选加载光驱驱动的那一项否则后面的安装程序从哪儿来进入 DOS 提示符后先分区fdisk第一个问题是是否启用大硬盘支持选 Y这样后面才能用 FAT32。然后在主菜单里选创建 DOS 分区或逻辑驱动器再选创建主 DOS 分区把整块盘分给主分区。分完后回到主菜单选设置活动分区把 1 号分区激活——这一步千万别漏不激活的话重启后会提示没有可引导的操作系统。分完区必须重启让分区表生效。重启后再进入 DOS格式化format c: /s/s参数是写入系统文件让这个分区可引导。4GB 的盘格式化大概要十几秒如果卡住不动超过两分钟说明磁盘类型可能设错了回去检查是不是 IDE。格式化完成后切到光驱盘符。启动盘通常会把光驱分配成 D 或者 E屏幕上会打印出实际盘符注意看d: setup.exe4.2 SETUP 的几个命令行参数setup.exe后面可以带参数能省掉不少麻烦/is跳过安装前的磁盘扫描。磁盘刚格式化过扫描纯属浪费时间。/im跳过内存检查。在虚拟机里内存是固定的不需要检查。/ie跳过创建启动盘。你都已经有一张启动盘镜像了没必要再制作。所以直接敲setup.exe /is /im /ie安装程序启动后会先复制一部分文件到硬盘然后第一次重启。就在这次重启的黑屏瞬间去虚拟机设置里把软驱断开或者改成硬盘优先启动。这一步做对了后面就顺了。接下来是图形界面的安装过程选择目录、输入密钥、选择安装类型选典型、输入用户名和组织名、选择时区然后它会问你是否安装网络组件。这里建议先跳过或者只选最基本的等系统装完、驱动补齐之后再回头配置网络会清晰得多。4.3 首次进桌面必做的三件事第一次看到 98 的桌面那一刻挺有成就感的但先别急着装软件。有三件事必须立刻做按顺序来第一装或者调显示驱动。如果桌面是 640x480、16 色图标大得像砖头说明系统用的是标准 VGA 驱动。这时候右键桌面空白处进设置你会发现颜色深度最高只有 16 色分辨率也调不上去。这是正常的解决方式在下一节。第二检查设备管理器。右键我的电脑进属性看设备管理器里有没有带黄色感叹号的设备尤其是显示适配器、声音设备、网络适配器这三类。有感叹号就记下来后面针对性处理。第三关掉几个没用的东西。Win98 默认会跑计划任务和一堆后台服务在虚拟机里纯属浪费资源。另外把屏幕保护程序和电源管理都关掉不然虚拟机锁屏后唤醒容易出问题。4.4 装完后的第一份快照系统装好、驱动补齐之前先在宿主机上打一个快照菜单里叫快照或者拍摄快照名字写基础系统-未装驱动。这个快照的价值在于万一后面装驱动把系统搞崩了你能一键回到干净状态不用再花二十分钟走一遍 FDISK 和 SETUP。快照是这台虚拟机最值钱的东西具体怎么规划在第八节展开。5. 驱动补齐没有现成 VMware Tools 时怎么办这是整个流程里最需要耐心的一段也是很多教程语焉不详的地方。新版 VMware Workstation 里点安装 VMware Tools虚拟机里挂载的那个 ISO 里面根本没有面向 9x 的安装程序你会被卡在这里。5.1 9x 版的 VMware Tools 为什么找不到了VMware Tools 对客户机操作系统的支持是跟着主线版本走的。较老的工作站版本大致 6.x 及更早附带的 Windows 版 Tools 安装包里面还包含面向 Windows 95/98 的组件从某个版本开始这部分被彻底移除只保留 NT 内核及以上的支持。所以你点安装 VMware Tools之后挂载的 ISO 里只有面向现代系统的 MSI 包跑到 Win98 上当然装不了。这个报错和热词里那个继续运行脚本未能在虚拟机中成功运行是同一类问题——Tools 和客户机系统对不上不是你的操作有问题。那怎么办两条路一是从你自己手上老版本 Workstation 的安装介质里把那个 ISO 提取出来二是放弃完整的 Tools只手动补最关键的三个驱动。我走的是第二条路因为完整版 Tools 在 9x 上能提供的额外功能共享文件夹、拖放、无缝模式本来也用不了。5.2 显示驱动从 16 色 640x480 解脱出来最关键的就是显示驱动。没有它分辨率锁死在 640x480、16 色装个窗口大一点的软件就直接超出屏幕。在 Windows 98 里手动指定驱动的流程是这样的右键桌面进属性切到设置点高级在适配器选项卡里点更改然后选择从列表中选择或者从磁盘安装把路径指向驱动所在的位置。如果你从老版本的 Tools ISO 里提取驱动文件通常在一个 video 或者 display 之类的子目录里包含一个 INF 文件。指定 INF 文件所在的目录系统会列出VMware SVGA II之类的设备选中安装即可。装完重启再进显示设置你会发现颜色深度可以选到真彩色 32 位分辨率能上到 1024x768 甚至更高。这里有个细节分辨率别贪高。Win98 时代的软件界面都是按 800x600 或 1024x768 设计的开到 1920x1080 会让很多老软件界面里的按钮和文字小到没法点。1024x768 是最舒服的档位。另外一个容易忽略的点安装显示驱动后如果宿主机是全屏模式运行的虚拟机鼠标指针的形状可能会变得很奇怪。这是 VMware 的指针优化和 9x 的鼠标驱动配合问题不是故障切回窗口模式一般就正常了。5.3 声卡驱动SB16 优先如果虚拟机的声卡设成了 Sound Blaster 16那基本上不需要你操心Win98 安装时会自动识别并加载驱动。装完进控制面板 → 系统 → 设备管理器展开声音、视频和游戏控制器看到 Creative Sound Blaster 16 之类的条目而且没有感叹号就说明成了。如果没声音按这个顺序排查虚拟机设置里确认声卡是勾选状态、类型是 Sound Blaster 16。虚拟机右下角或者设置里确认已连接。宿主机本身的音量不为静音。设备管理器里有没有其他设备下的未知设备那可能就是声卡没识别出来手动添加。ES1371 也行但遇到老游戏没声音的情况我个人经验是先换回 SB16 试试成功率明显更高。原因在于那个年代的很多游戏是直接操作声卡端口的SB16 的端口和 IRQ 配置最标准。5.4 鼠标、时间同步和其他增强组件鼠标这一项其实不用太担心。虚拟机的虚拟鼠标是 PS/2 兼容设备Windows 98 自带 PS/2 鼠标驱动不装任何额外组件也能正常移动和点击。如果你遇到指针漂移、位置对不上的情况通常在虚拟机设置里关掉鼠标优化选项就能缓解。时间同步是个长期存在的小麻烦。Windows 98 的时钟精度本来就一般在虚拟机里跑起来误差会更明显。装了完整 Tools 的系统可以启用主机时间同步但咱们这种情况没有。我的处理方式是每次启动虚拟机后手动校一次时间用命令行date 2026-01-15 time 09:30:00听起来土但比起在 9x 上折腾 NTP 客户端要省事得多。如果你确实需要精确时间可以找找当年流行的小型对时工具但注意这类工具大多只能走老式的时间协议能不能连上取决于你的网络环境。6. 宿主机和 Win98 之间怎么传文件这是使用阶段最频繁的操作也是新手最容易卡住的地方。Win98 里想装个驱动、拷个游戏文件得先进得去。6.1 共享文件夹为什么在 9x 上不可用VMware 的共享文件夹功能依赖客户机里的一个组件而这个组件只有面向 NT 及以上系统的版本。也就是说在 Windows 98 虚拟机里你没有共享文件夹这个选项可用。同理从宿主机直接拖拽文件到虚拟机窗口、复制粘贴文本这些便利功能在 9x 上统统无效。所以必须换思路用那个年代本来就存在的传输方式。6.2 三个最省事的土办法办法一做成 ISO 挂载。这是我最常用的。把要传的文件用 ImgBurn 或者类似的工具做成一个数据 ISO然后在虚拟机设置里把光驱指向这个 ISOWin98 里就能像读光盘一样读它。优点是速度快、不需要网络、读写都不会出错。缺点是要传新文件就得重新做一个 ISO适合批量传一次性的东西。办法二软盘镜像。用 WinImage 之类的工具做一个 1.44MB 的 .img 文件把文件塞进去虚拟机里挂载软驱。优点是简单缺点是容量只有 1.44MB装驱动勉强够装游戏想都别想。办法三加第二块虚拟磁盘。给虚拟机加一块 IDE 磁盘作为从盘进 Win98 分区格式化之后关机。然后在宿主机上用 Workstation 的映射虚拟磁盘功能把这块带 Win98 文件系统的虚拟磁盘挂到宿主机的一个盘符上直接往里拖文件。用完解除映射再启动虚拟机。这个办法最适合需要长期双向传文件的场景尤其是文件比较大、要来回改的时候。6.3 走网络HTTP 服务器比文件共享省心如果你想让传输自动化一点走网络是最舒服的。但这里有个现实问题现在的 Windows 10/11 默认关闭了 SMB1 协议而 Windows 98 只会用 SMB1 和 NetBEUI。你要让 98 访问宿主机共享就得在宿主机上把 SMB1 重新打开——这是有安全代价的我不建议在办公电脑上这么干。更省心的办法是在宿主机上跑一个简单的 HTTP 文件服务器。如果你装了 Python一行命令就够了cd /d D:\share python -m http.server 8000 --bind 192.168.1.100把192.168.1.100换成宿主机在虚拟机网络里对应的那个地址如果用的是仅主机模式就是 VMnet1 的地址NAT 模式则是 VMnet8 的地址。然后在 Win98 里打开 IE地址栏输入http://192.168.1.100:8000/就能看到文件列表点一下直接下载。这个方式的好处是零配置、不涉及老旧协议、宿主机不需要开任何共享服务。缺点是不能上传只能单向下载。要上传的话在 Win98 里跑一个老版本的 FTP 服务端比如当年的小型 FTP 工具宿主机用客户端连上去就行。注意Win98 的 IE 对中文文件名和某些编码支持不好共享目录里的文件名尽量用英文和数字能省掉一堆乱码问题。6.4 让宿主机访问虚拟机里的服务反向操作也常常需要比如你在 Win98 里装了个老版本的 Web 服务或者数据库服务想在宿主机上用浏览器看效果。如果虚拟机用的是桥接模式那就简单了虚拟机会从路由器拿一个局域网 IP宿主机直接用这个 IP 访问和访问同网段的另一台电脑完全一样。如果虚拟机用的是NAT 模式宿主机到虚拟机的方向是被挡住的需要在 VMware 的虚拟网络编辑器里做端口映射找到 NAT 设置添加一条转发规则把宿主机的某个端口映射到虚拟机的目标端口。比如把宿主机的 8080 映射到虚拟机的 80之后在宿主机浏览器里访问http://localhost:8080就能看到虚拟机里的页面。如果用的是仅主机模式虚拟机和宿主机在同一个虚拟网段内直接访问虚拟机的 IP 就行不需要端口映射但虚拟机出不了外网。这也是为什么我在第一节建议第一次装系统时先用仅主机模式——简单、稳定、不惹麻烦。7. 报错合集现象、原因和排查顺序这一节是全文最实用的部分。我把这次以及过去几次折腾中遇到的报错整理成表格然后是每个问题的详细排查链路。现象最可能的原因处理方向安装程序提示找不到硬盘磁盘类型不是 IDE关机改磁盘类型重新分区重启后又回到 A 盘提示符软驱还在启动顺序前面断开软驱或改为硬盘优先提示内存不足无法初始化虚拟机内存超过 512MB降到 256MB启动时报 Windows 保护错误虚拟 CPU 频率过高见 7.2 的处理设备管理器里没有网卡网卡类型选了 e1000 或 vmxnet3改成 AMD PCnet分辨率调不上去显示驱动没装见 5.2虚拟机占用一个 CPU 核心 100%9x 内核不支持空闲指令属正常现象见 7.57.1 安装阶段卡住或反复重启安装程序在正在检测硬件这一步停留几分钟是正常的尤其是宿主机性能比较好的时候反而可能因为时序太快导致安装程序内部循环变慢。如果超过十分钟毫无进展先看虚拟机的状态栏有没有磁盘读写活动。有活动就继续等没活动就说明卡死了。卡死的常见原因有三个磁盘类型不对、内存超限、安装介质有问题。按这个顺序排查先看虚拟磁盘是不是 IDE再看内存是不是 256MB最后换一个安装源重试。还有一种情况是安装到一半重启后黑屏但虚拟机进程还在跑。这种往往是显示模式切换失败等一两分钟如果还没画面强制重启一次通常能接着往下装——安装程序会在重启后继续未完成的阶段。7.2 装完进系统报Windows 保护错误这个报错的完整文案大概是Windows 保护错误你需要重新启动计算机。在老系统跑在新硬件上的场景里出现得比较多根因是 9x 内核里的时序检测机制和实际 CPU 速度不匹配。我实测下来比较有效的几个处理方向按操作成本从低到高确认虚拟机只分配了 1 个处理器内存降到 256MB。多处理器和超大内存在 9x 上都是不稳定因素。关闭虚拟机设置里的 3D 加速。这个选项对 9x 毫无意义只会引入额外的显示层。修改虚拟机的配置文件。关闭虚拟机后用文本编辑器打开虚拟机目录下的 .vmx 文件追加一行让虚拟机走更保守的执行路径保存后重新启动monitor_control.restrict_backdoor TRUE换一个版本的 Workstation。如果前三步都无效换到较老的 12 或 14 版本重装一遍成功率会明显提升因为这个报错和宿主机 CPU 的指令特性有一定关系。需要说明的是这个报错不是必然出现的很多情况下用默认配置就一次装成。遇到的时候按上面顺序试别一上来就换软件版本。7.3 内存相关的报错和它的边界前面反复提到 512MB 这条线这里说清楚边界在哪。Windows 98 SE 在物理内存超过 512MB 之后启动时可能提示内存不足无法初始化 Windows或者进系统后资源管理器行为异常。原因是 VCache 在计算缓存大小时用了 32 位算术超过阈值就溢出。如果你的宿主机内存很大虚拟机设置里也没法给一个小数值现在都允许给 128MB那就直接在虚拟机里限制。Win98 的系统配置实用程序里有个高级选项可以限制系统识别的内存上限。打开方式是在运行里输入msconfig进高级找到内存相关的限制项勾上并把值填成 512 以内。给 256MB 是最稳的也是我一直在用的配置。跑老游戏和老软件绰绰有余系统本身才占几十兆。7.4 网卡、声卡、光驱集体失踪这三个设备的排查思路是一样的先确认虚拟机有没有给它再确认系统有没有认出来。虚拟机侧的检查设置里对应的设备是不是勾选了已连接和启动时连接。这个启动时连接特别容易漏比如光驱装完系统后你可能把它断开了后来想读个 ISO发现系统里看不到光驱——其实设备在只是没连接。系统侧的检查设备管理器里看有没有其他设备下面带问号的未知设备。如果有说明硬件在只是缺驱动手动指定驱动路径即可。网卡还有一个独有的坑如果虚拟机设置里网卡类型是 vmxnet3Win98 里是绝对不会有驱动的因为它依赖 VMware Tools。改成 AMD PCnet 之后重新启动系统通常会自动识别。如果没自动识别手动添加网卡厂商选 AMD型号选 PCnet Family。关于没有网络适配器这个报错还有一种可能是虚拟机根本没有添加网卡设备。检查一下设置里的网络适配器是不是被删掉了加回去就行。7.5 时间跑偏和 CPU 占用 100%虚拟机进程在宿主机任务管理器里长期占用一个核心的 100%这个现象在老系统虚拟机上非常普遍不是故障。原因是 Windows 9x 系列的系统空闲处理不执行 CPU 的停机指令CPU 会一直跑在忙等循环里。处理方式有三种看你的接受程度不管它。宿主机核心多的话损失一个核完全可以接受虚拟机响应也最灵敏。这是我现在的做法。给虚拟机进程设置处理器亲和性把它钉在某个核心上避免影响其他工作。装第三方空闲驱动。有专门为 9x 和 DOS 设计的工具能让系统进入低功耗状态。但这类工具在虚拟机里的兼容性不保证我一般不建议在老软件环境里引入额外的驱动出问题不好排查。时间跑偏的应对在 5.4 已经说过手动校准是最省心的方案。如果只是偶尔用开机校一次就够如果长期挂着跑任务可以在自动启动里放一个批处理每次开机自动设置时间。8. 长期使用的调优、快照与备份系统跑起来只是开始。要让这台虚拟机在未来几年里稳定地给你干活还需要做几件事。8.1 磁盘和性能的几个小开关虚拟磁盘用久了会碎尤其是反复装删文件之后。Win98 自带的磁盘碎片整理在虚拟机里跑得非常慢而且容易因为磁盘操作被虚拟机层拦截而出错。我的做法是定期用第三方工具处理或者干脆通过快照回滚来保持干净——听起来暴力但在虚拟机里其实是最省时间的。磁盘性能上还有一个开关值得调把虚拟磁盘设为独立-持久还是保持默认。默认的依赖快照模式下所有写入都要经过快照层性能有损耗。如果你已经不需要快照了可以把它改成独立持久写入会直接落到磁盘文件上。但改了之后就没法回滚了所以要确认自己能接受。另一个提升明显的地方是给虚拟机目录放在固态硬盘上而不是机械硬盘。老系统对随机读写很敏感SSD 能让开机时间从两分钟压缩到二十秒以内。8.2 快照树怎么组织才不乱快照是虚拟机的杀手锏也是最容易把自己绕晕的地方。我的建议是保持一条清晰的线不要搞成分叉树快照 1干净系统。系统刚装完、还没装任何驱动。用于最极端的情况回滚。快照 2可用系统。驱动全装完、分辨率正常、网络通。这是你日常使用的起点。快照 3 及以后按软件划分。装完某套老软件、配置调通之后打一个名字带日期和用途。关键原则是每一层快照都是对上一层的增量所以快照链越长磁盘占用越大、回滚越慢。我一般控制在 4 到 6 个超过就把中间的几个合并或者删掉。删除中间快照的时候要选合并不要选删除否则会丢掉那一层的数据。还有个真实经验打完快照别立刻关机。等系统在快照状态下正常跑过一次、确认没问题再关机。有些快照和内存状态相关关机时才能确认状态一致。8.3 整机备份和迁移这台虚拟机最让人放心的一点是它就是一个目录。整个虚拟机目录里包含磁盘文件、配置文件、快照文件、BIOS 状态文件把它们整体复制到另一个硬盘或者移动硬盘上就是一次完整备份。迁移到另一台电脑也很简单把目录拷过去用 Workstation 打开目录里的 .vmx 文件就能运行。因为虚拟 CPU 是抽象层宿主机从 Intel 换到 AMD 也不会有问题——这一点比迁移物理机器省心太多。如果你要把这台虚拟机交给同事用导出为 OVF功能打包成一个开放格式的虚拟机对方用 Workstation 或者别的虚拟化软件都能导入。导出的时候注意一点有快照的虚拟机导出时只会导出当前状态快照历史会丢失。所以导出之前先确认当前状态就是你要交付的状态。提醒虚拟机目录里可能有. lck 之类的锁定文件夹复制之前最好先在 Workstation 里把虚拟机关掉并确认没有残留进程不然拷过去的副本会提示虚拟机已被占用。这台 98 SE 虚拟机我到现在还留着快照树里躺着干净系统驱动齐全装了那套工控软件三个节点。老哥那边的问题也解决了——软件能跑、加密狗能认、报表能导。回过头看整个过程里真正花时间的不是装系统而是搞清楚每个参数为什么这么填以及遇到报错时知道往哪个方向查。我的体会是装老系统这件事耐心比技巧更重要别急着点下一步多花五分钟确认配置能省掉一晚上的返工。
返回列表