虚拟机中安装Win98

文章目录

  • 一、下载Win98
  • 二、制作可启动光盘
  • 三、VMware中安装Win98
  • 四、Qemu中安装Win98
    • 1. Qemu的安装
    • 2. 安装Win98

Win98是微软于1998年发布的16位与32位混合的操作系统,也是一代经典的操作系统,期间出现了不少经典的软件与游戏,还是值得怀念的。

本文笔者就介绍一下在VMWare中以及Qemu中安装Win98。

一、下载Win98

可以去https://msdn.itellyou.cn/下载,这里把Win98中文版的下载链接复制过来:
ed2k://|file|SC_WIN98SE.exe|278540368|939909E688963174901F822123E55F7E|/

这是一个自解压EXE文件,运行即解压出两个文件夹:WIN98WIN98SE,前者为第一版,后者为第二版。

二、制作可启动光盘

由于下载的不是可启动光盘,所以只适用于硬盘安装,比较麻烦。为了支持光盘安装,需要将之制作为可启动的光盘镜像,ISO文件,方便后面虚拟机中安装使用。

  1. 下载win98.bif

由于前面下载win98文件不包括光盘启动信息,所以需要一个win98的光盘引导文件,网上有资源,可以去网上搜索win98.bif,也可以去下载笔者使用过的win98.bif

  1. 制作光盘

在另一个目录新建一个目录win98se,然后将之前解压出来的WIN98SE复制到新建的目录中,并将之改名为WIN98。然后打开UltraISO,使用添加目录win98se目录添加进来,或者在win98se目录右键,在UltraISO菜单中执行添加到win98se.iso

在这里插入图片描述

使用UltraISO打开ISO可以看到光盘是不可引导的光盘:

在这里插入图片描述

在启动中执行加载引导文件...

在这里插入图片描述

把之前下载的win98.bif文件添加进来,此时变为“可引导光盘”了,最后记得保存,Win98的可启动光盘镜像就制作好了。

在这里插入图片描述

三、VMware中安装Win98

在新建虚拟机时一定要选择自定义配置,不能使用推荐配置,因为推荐配置中硬盘是使用的IDE接口,在VMWare虚拟机中需要使用SATA接口,否则会报错:

在这里插入图片描述
在这里插入图片描述

由于前面已经制作好了Win98的可启动光盘镜像,这里直接使用,VMWare可以识别到是Windows 98系统。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果宿主机的内存充裕,可以选择512M的内存,但不能选择太大的内存,Win98支持不了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:这里一定要选择SATA类型的虚拟磁盘:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置好虚拟硬件后,就可以启动虚拟机,安装Win98了:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装程序会默认配置使用整个未分配的磁盘空间:
在这里插入图片描述

启用大磁盘支持:

在这里插入图片描述
在这里插入图片描述

安装程序会自动格式化C盘:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

安装程序自动填充好产品密钥,可以不用修改:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里需要设置计算机名工作组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装完成后,第一次进入系统:

在这里插入图片描述

为了更好的体验,需要安装VMWare Tools

在这里插入图片描述
在这里插入图片描述

安装好VMWare Tools后,就可以设置更高的分辨率和色彩了:

在这里插入图片描述

此时还有一些设备没有安装好驱动,比如声卡与USB设备,这需要使用之前笔者上传的windows 98驱动.7z,它也是一个ISO文件,使用VMWare虚拟机加载光盘为该ISO文件即可。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装好驱动后,重启就可以看到音量图标和AudioPCI Mixer图标了:

在这里插入图片描述

至于USB,将硬件设置USB兼容性设置为USB 1.1即可:

在这里插入图片描述

在这里插入图片描述

强烈建议安装一下chip目录中setup安装程序,可以安装不少驱动:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此,就可以怀念一下Win98的风采了。

Win98下可以安装的Firefox版本最高为2.0

在这里插入图片描述

可以安装Qt 4.4.3:

在这里插入图片描述

还可以安装C++ Builder 6以及Delphi 7,说到它们,可是当年风光无限的开发软件,想必如今还有不少使用它们开发的软件还在运行吧,或者还有公司在使用它们开发或者维护软件吧,可即便如此,还是挡不住Borland的没落,着实可惜了。

笔者也使用过C++ Builder 6以及Delphi 7,确实好用,为此笔者特意尝试了一下在Win98下使用C++ Builder 6编译一个程序然后在Win10下来运行:

在这里插入图片描述

可以看到运行得非常好,而且依赖是相当少,仅依赖3个文件,这三个文件还只有3.33M。

四、Qemu中安装Win98

VMWare对Win98的支持还是不错的,安装过程还是非常顺利的(唯一注意的点就是硬盘类型要选择SATA),各种驱动程序也比较容易找到,但是随着VMWare版本的提升,发现Win98在使用过程中会卡死,显示画面不同步等等情况。于是笔者想尝试使用Qemu来安装一下Win98。

1. Qemu的安装

可以去Qemu官网查看Windows的安装方法,可以直接下载编译好的安装包,也可以在MSYS2中安装:

在这里插入图片描述

由于笔者是安装了MSYS2,所以这里笔者选择在MSYS2中安装Qemu的最版本8.2.1

在这里插入图片描述

2. 安装Win98

由于Qemu是使用命令行的方式来执行的,就没VMWare简单、直观,上手难度还是非常大的,需要熟悉各参数的用法及意义。

首先,创建磁盘:

qemu-img create -f qcow2 win98 5G

-f qcow2是表示创建qcow2格式的磁盘,它支持创建的磁盘格式有:

  • raw
  • qcow2
  • vmdk
  • vdi
  • vhd(vpc)
  • vhdx
  • qcow1
  • QED

等等,可以使用qemu-img --help查看:

Supported formats: blkdebug blklogwrites blkverify bochs cloop compress copy-before-write copy-on-read dmg file ftp ft
ps host_device http https luks nbd nfs null-aio null-co parallels preallocate qcow qcow2 qed quorum raw replication sn
apshot-access ssh throttle vdi vhdx vmdk vpc vvfat

这里选择qcow2 可以尽量减少宿主的磁盘占用。

创建好磁盘后就可以使用前面的ISO安装镜像进行安装了:

qemu-system-i386 -m 512 -smp 1 -boot c -k -rtc base=localtime,clock=host --accel tcg,thread=multi -cpu pentium3 -device sb16 -vga std -hda "win98" -cdrom "vmware_win98.iso" -drive file="win98se.iso",if=ide,media=cdrom

全部是命令行参数,这里做一个简单说明:

  • -m 512 设定内存大小为512M
  • smp 1 设置SMP的CPU个数为1
  • -boot c 设置设备启动顺序:a为软件;c为硬盘;d为光盘;n为网络
  • -rtc base=localtime,clock=host 设置虚拟机使用宿主机器的本地时间
  • –accel tcg,thread=multi 设置加速方式,这里是设置多线程TCG的方式。可以使用qemu-system-i386 -accel help查看可使用的加速方式,笔者的为tcgwhpx,前者为默认;后者为Win10的Hyper-V。Hyper-V需要在Win10中安装启用,但是与VMWare有冲突,启用后,会导致VMWare中的虚拟机很卡,很慢。
  • -cpu pentium3 设置cpu为奔腾3,可以使用qemu-system-i386 -cpu help查看可用的CPU列表。
  • -device sb16 设置声卡设备,sb16为Creative Sound Blaster 16声卡,win98有相应的驱动程序。想要添加更多设备,可以使用qemu-system-i386 -device help查看各种支持的设备列表。
  • -vga std 设置显卡为标准显卡。
  • -hda “win98” 设置硬盘,可以设置4个硬盘分别为hda,hdb,hdc,hdd,分别代表0、1、2、3号硬盘。fda、fdb代表0、1号软盘。
  • -drive file=“win98se.iso”,if=ide,media=cdrom 设置驱动器,包括镜像文件,驱动接口类型以及驱动媒介类型,该方式的挂载优先级高于使用-cdrom的方式。
  • -cdrom “vmware_win98.iso” 设置光驱镜像文件。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后面就与VMWare中安装一样了。
使用Qemu安装要比VMWare慢得多,需要耐心等待。由于前面直接设置了声卡为SB16,Win98在安装时自动安装好了驱动,第一次启动进入系统即可听到声音,看到音量图标:

在这里插入图片描述

安装好系统后就是安装驱动程序了,最主要的是显卡的驱动程序,不然只有16色的640*480分辨率。

-vga选项支持:std|cirrus|vmware|qxl|xenfb|tcx|cg3|virtio|none,可以看到支持vmware,是不是可以使用VMWare中的显卡驱动呢?笔者尝试了一下,不行。Win98原生支持cirrus显卡,有显卡驱动,但是分辨率与颜色最高只能是16位色的800*600了,再高就不支持了。

为了支持更高的色彩与分辨率,笔者从WIKI上查到一个非商业许可的VBE兼容的显卡驱动。可以下载:
140131.zip
140214.zip

然后把它解压出来使用UltraISO制作成ISO文件,启动时加载成光驱:

qemu-system-i386 -m 512 -smp 1 -boot c -k pci-ohci -rtc base=localtime,clock=host --accel tcg,thread=multi -cpu athlon -device sb16 -vga std -hda "win98" -cdrom "vmware_win98.iso" -drive file="win98se.iso",if=ide,media=cdrom -drive file="140131.iso",if=ide,media=cdrom

这里-vga选项可以选择所有支持VBE兼容的显卡,然后安装前面下载的驱动。

进入系统后按如下设置:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启后就可以选择32位色,并且最高可达1920*1080的分辨率了,但不能再高,否则Win98支持不了:
在这里插入图片描述

在这里插入图片描述

在Qemu中如果不全屏的话,经常会出现鼠标不同步的情况。还有就是目前没有合适的网卡及驱动程序。

希望能在你怀念Win98的过程中帮助到你,欢迎点赞收藏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/446709.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【牛客】CM26 二进制插入 HJ60 查找组成一个偶数最接近的两个素数

目录 题目一:二进制插入 题目链接:二进制插入_牛客题霸_牛客网 (nowcoder.com) 解题思路: 代码实现: 题目二:查找组成一个偶数最接近的两个素数 题目链接:查找组成一个偶数最接近的两个素数_牛客题霸_…

【sgPhotoPlayer】自定义组件:图片预览,支持点击放大、缩小、旋转图片

特性&#xff1a; 支持设置初始索引值支持显示标题、日期、大小、当前图片位置支持无限循环切换轮播支持鼠标滑轮滚动、左右键、上下键、PageUp、PageDown、Home、End操作切换图片支持Esc关闭窗口 sgPhotoPlayer源码 <template><div :class"$options.name"…

线程和进程

参考链接&#xff1a; 1.基本概念 进程&#xff1a;Windows系统中&#xff0c;一个运行的xx.exe就是一个进程。例如打开浏览器就是一个进程 线程&#xff1a;进程中的一个执行任务&#xff08;控制单元&#xff09;&#xff0c;负责当前进程中程序的执行。一个进程至少有一个…

无人机|LQR控制算法及其无人机控制中的应用仿真

前言 LQR全称Linear Quadratic Regulator&#xff08;线性二次调节器&#xff09;&#xff0c;顾名思义用于解决形如 x ˙ A x B u y C x D u \begin{aligned}\dot{x}&AxBu\\y&CxDu\end{aligned} x˙y​AxBuCxDu​ 线性时不变系统的一种线性控制方法&#xff0c;…

初识REDHAWK

文章目录 前言一、什么是 REDHAWK?1、概述2、REDHAWK 的应用 二、REDHAWK 的流程管理和交互方法1、流程管理2、数据传输 三、入门1、安装 REDHAWK2、IDE 快速入门①、启动 REDHAWK IDE②、打开 Chalkboard③、创建信号发生器④、测试组件的输入/输出响应 前言 REDHAWK 是一个…

Opencv 绘制线段、矩形、圆形、多边形操作

1、前言 OpenCV提供了许多用于绘制图形的方法 包括绘制线段的line()方法、绘制矩形的 rectangle()方法、绘制圆形的 circle()方法、绘制多边形的 polylines()方法和绘制文字的 putText()方法 本章将依次对上述各个方法进行讲解&#xff0c;并作出相应实验。 因为 OpenCV 中的…

简洁的链式思维(CCoT)提示

原文地址&#xff1a;Concise Chain-of-Thought (CCoT) Prompting 传统的CoT导致了输出令牌使用的增加&#xff0c;而CCoT提示是一种旨在减少LLM响应的冗长性和推理时间的提示工程技术。 2024 年 1 月 24 日 Areas where Chain-Of-Thought-like methodology has been introd…

【C/C++ 学习笔记】函数

【C/C 学习笔记】函数 视频地址: Bilibili 函数结构 返回值类型函数名参数列表函数体语句return 表达式 返回值类型 函数名 (参数列表) {函数体语句;return 表达式; }声明 在函数定义之前声明函数&#xff0c;可以声明多次&#xff0c;但是只能定义依次 返回值类型 函数名…

计算机考研|保姆级择校+资料+全年规划

本科211&#xff0c;研究生上岸某985 计算机考研备考过程中走了不少弯路&#xff0c;希望我的经验能够帮助大家少走弯路 大家决定考研之前&#xff0c;一定要认真思考自己考研的目的是什么&#xff0c;有的人是随大流&#xff0c;别人考研&#xff0c;就跟风考研&#xff0c;有…

JDK 17:Java生态系统的最新巨擘

JDK 17&#xff1a;Java生态系统的最新巨擘 &#x1f680; JDK 17&#xff1a;Java生态系统的最新巨擘 &#x1f680;摘要 &#x1f31f;引言 &#x1f308;模块一&#xff1a;性能优化与提升 &#x1f527;垃圾回收器的改进&#xff1a;JIT编译器的优化&#xff1a;其他性能优…

Visual Basic6.0零基础教学(2)—vb中类的介绍和基本控件的属性

Visual Basic 6.0中类的介绍和基本控件的属性 文章目录 Visual Basic 6.0中类的介绍和基本控件的属性前言一、对象的有关概念1.类2.对象3.对象的三要素4.5. VB程序的执行步骤 二、基本控件属性1.修改控件属性的练习案例 总结 前言 大家好&#xff0c;昨天我们学习了vb的简单介…

python实现生成树

生成树 生成树&#xff08;Spanning Tree&#xff09;是一个连通图的生成树是图的极小连通子图&#xff0c;它包含图中的所有顶点&#xff0c;并且只含尽可能少的边。这意味着对于生成树来说&#xff0c;若砍去它的一条边&#xff0c;则会使生成树变成非连通图&#xff1b;若给…

【学习】pytorch框架的数据管理—— 理解Dataloader

参考&#xff1a;https://spite-triangle.github.io/artificial_intelligence/#/./README 1.标准数据集 使用&#xff1a;以 CIFAR10 数据集为例&#xff0c;其他数据集类似。 # root&#xff1a;数据存放路径 # train&#xff1a;区分训练集&#xff0c;还是测试集 # trans…

前端加密面面观:常见场景与方法解析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

vue项目部署服务器,因为跨域设置nginx.config要修改的配置

下面是我在vue项目中vite.config.js设置的配置代理 对于部署项目需要使用nginx进行vue项目的话&#xff0c;需要对nginx的配置文件进行如下修改即可

Linux:线程互斥与同步

目录 线程互斥 锁的初始化 加锁 解锁 锁的初始化 锁的原理 死锁 线程同步 方案一&#xff1a;条件变量 条件变量初始化 等待 唤醒 条件变量的代码示例 基于阻塞队列的生产消费模型 方案二&#xff1a;POSIX信号量 初始化信号量&#xff1a; 销毁信号量 等待信…

动态规划|【路径问题】|174.地下城游戏

题目 174. 地下城游戏 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健…

map和set(二)——AVL树的简单实现

引入 二叉搜索树有其自身的缺陷&#xff0c;假如往树中 插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff0c;因此 map、set等关联式容器的底层结构是对二叉树进行了平衡处理&#xff0c;即采用平衡树来实现。简…

可免费使用的AI平台汇总 + 常用赋能科研的AI工具推荐

赋能科研&#xff0c;AI工具助你飞跃学术巅峰&#xff01;(推荐收藏) 文章目录 赋能科研&#xff0c;AI工具助你飞跃学术巅峰&#xff01;(推荐收藏)一、可免费使用的AI平台汇总1. ChatGPT2. New Bing3. Slack4. POE5. Vercel6. 其他平台7. 特定功能平台8. 学术资源平台9. 中文…

14 OpenCv边缘处理

文章目录 卷积边界问题边缘处理copyMakeBorder 算子代码 卷积边界问题 图像卷积的时候边界像素&#xff0c;不能被卷积操作&#xff0c;原因在于边界像素没有完全跟kernel重叠&#xff0c;所以当3x3滤波时候有1个像素的边缘没有被处理&#xff0c;5x5滤波的时候有2个像素的边缘…