Win98-quickinstall: A framework and installer to quickly install Windows 98
Win98-quickinstall:快速安装 Windows 98 的框架与安装程序
Windows 9x QuickInstall ISO 创建器软件包
(C) 2012-2024 Eric Voirin (oerg866)
免责声明
Windows 是 Microsoft Corporation 的商标。
本项目_未获得任何相关方的认可,例如 Microsoft。_
请不要起诉。我只是喜欢旧电脑 :(
Windows 9x QuickInstall
描述
这是一个框架,旨在以一种优化的方式创建和准备 Windows 98 安装 ISO 镜像,以实现极快的安装,类似于 nLite,但具有完全不同的方法和上下文。
它获取已安装的 Windows 98 系统的根文件系统并进行打包,同时允许根据需要添加驱动程序和工具。
对于安装程序,它使用 Linux 作为基础,并配以一些工具,用于硬盘分区和格式化,以及一个自定义安装程序,该安装程序具有自定义数据打包方法,该方法经过优化,可直接从 CD 流式传输到硬盘,而无需任何寻道。
总而言之,这意味着用户构建 ISO 的工作量高于例如 nLite,但可定制程度也大大提高。
到底有多快?
在具有 ATA / ATAPI Ultra DMA 可用于所有存储设备的 Pentium III 类机器上,Windows 98——使用此框架构建的 ISO——可以在大约 60-90 秒内从 CD 安装。
构建框架、Bug、许可等
请参阅 BUILDING.md。
我不想阅读和/或做所有这些。
好的。转到发布选项卡 :-)
支持的目标操作系统
- Microsoft Windows 98 (Build 4.10.1998)
- Microsoft Windows 98 Second Edition (Build 4.10.2222)
- Microsoft Windows Millenium Edition (Build 4.90.3000)
对国际版本的支持尚未经过适当的测试。 它应该可以工作,并且在我的测试中确实如此,但 YMMV。 请报告错误!
由于非 PNP 设备检测是基于 DOS 的安装程序阶段的一部分,因此不支持任何版本的 Windows 95。
使用 QuickInstall 的系统要求
- i486 类 CPU,至少是 486SX(但会非常慢)
- 24 MiB 内存
- Linux 支持的 IDE / SATA / SCSI 控制器
如何启动 QuickInstall 镜像
有几种提供的方法可以启动到 Windows 98 QuickInstall:
- CD/DVD-ROM 启动 Windows 98 QuickInstall ISO 镜像可以在任何支持软盘仿真 CD-ROM 启动的计算机上启动。
如果您有支持 CD-ROM 启动的 PC,建议使用此方法。
- 使用 DOS (
dosflop.img) 进行 1.44M 软盘启动 这是一个 1.44M 软盘镜像,其中包含 FreeDOS 和LOADLIN,可直接从 CD-ROM 启动内核。
如果您有不支持 CD-ROM 启动或希望从硬盘安装的计算机,建议使用此方法。
如果您在 ATA/ATAPI 介质或其他使用 Int 13h 公开的设备上有 QuickInstall 文件,也建议使用此方法
如果您有 SCSI CD-ROM,则必须相应地修改镜像。
- 使用微型内核 (
floppy.img) 进行 1.44M 软盘启动 这是一个 1.44M 软盘镜像,其中包含一个适当的内核。
仅当您在非 ATA/ATAPI 介质上有 QuickInstall 并且您的 BIOS 不支持 CD-ROM 启动时,才建议使用此方法。
此镜像上的内核在功能、驱动程序支持方面受到限制,并且不启用内核日志(没有 printk,没有 dmesg)
由于强大的压缩,在慢速系统上启动需要很长时间。 它仅作为最后的手段。
- 可移动介质,例如 USB 闪存驱动器 使用系统准备脚本可以创建可启动的 USB 镜像。 执行此操作的步骤如下所述。
构建 QuickInstall 镜像的系统要求
- Windows 7、8.1、10 或 11 OR 现代 Linux 变体或 WSL
经过以下测试:
* **Windows 10** 21H2, Build 19044.2846
* Windows Subsystem For Linux (Ubuntu 20.04.5 LTS)
* Ubuntu 20.04.4 LTS (原生)
-
python(3.5 或更新版本)- 在 Windows 7 和 8.1 上: 从 https://www.python.org/downloads/ 下载 python 安装包
- 在 Windows 10 和 11 上: 使用 Microsoft Store 下载适当的变体。
- 在 Linux (Debian, Ubuntu) 上:
sudo apt install python3.8
-
脚本要求 在框架目录中运行以下命令:
pip3 install -r requirements.txt -
cdrtools 中的
mkisofs- 在 Windows 上: 该工具与框架捆绑在一起,无需执行任何操作。
- 在 Linux (Debian, Ubuntu) 上:
sudo apt install genisofs
-
wine(仅限 Linux)
sudo apt install wine
ISO 构建过程的许多部分都是 Windows 特有的,无法在 Linux 上以原生方式干净地实现,例如修改系统注册表、解析驱动程序 INF 文件等。
- 86Box(推荐)或能够安装 Windows 9x 的另一个虚拟机
- 从硬盘镜像提取文件的软件
例如,7zip(在 Linux 上:sudo apt install p7zip-full)
系统准备脚本 (sysprep.py)
此脚本用于准备安装,以便打包到 ISO 和/或 USB 镜像文件中。
它采用以下参数:
--iso <ISO>指示脚本使用给定的文件名创建 ISO 镜像--usb <USB>指示脚本使用给定的文件名创建 USB 密钥镜像--osroot <OSROOT>指定要使用的 Windows 98 / ME 系统根目录(“OS Root”)。
可以多次指定此选项,在这种情况下,安装向导将显示一个选择菜单。
--extra <EXTRA>指示脚本将此目录中的文件添加到最终的 ISO/USB 输出中。
默认值:框架目录中的 _EXTRA_CD_FILES_
可以多次指定此选项,在这种情况下,所有目录中的所有文件都将被添加
--drivers <DRIVERS>指示脚本处理_滑流_此目录中的所有驱动程序。
_滑流_是指在安装生命周期的任何时候检测到这些驱动程序的硬件时,即使在安装时硬件尚未出现,也会自动安装这些驱动程序。
默认值:框架目录中的 _DRIVER_。 它已经包含精选的驱动程序。
此参数只能指定一次。
--extradrivers <EXTRADRIVERS>指示脚本处理此目录中的所有驱动程序,并将它们添加到额外的驱动程序目录中。
这些驱动程序_不_会滑流,因此不会自动安装。 但是,它们可以在生成的安装介质上使用,并且可以通过将 Windows 98 / ME Add New Hardware 向导指向介质上的 DRIVER.EX 目录来安装。
此文件夹存在的原因是操作系统可用的硬件种类繁多,并且它们的兼容性/大小各不相同。
建议将非常大的驱动程序放在此处,以及无法假定不同版本具有不同的兼容性和速度的驱动程序。
例如,即使较新的驱动程序也支持此硬件,但出于速度原因,最好为较旧的 nVidia GeForce 卡选择较旧的驱动程序,而较新的驱动程序也应可用,以防出现较新的硬件。
默认值:框架目录中的 _EXTRA_DRIVER_。 它已经包含精选的驱动程序。
此参数只能指定一次。
--verbose VERBOSE
此参数控制脚本的控制台输出详细程度。
其中 VERBOSE 是 True 或 False。
默认值为 False。
此参数当前已损坏,抱歉。 它总是安静的。
准备 Windows 98 / ME 安装以进行打包
-
在虚拟机或模拟器中安装 Windows 98 / ME,就像您想要的那样。 我建议使用以下配置使用 86Box:
-
机器:
- 机器类型:Slot 1
- 机器:[i440BX] ABIT BF6
- CPU 类型:Intel Pentium II (Deschutes)
- 内存:64 MB
-
显示:
- 视频:[ISA] VGA(或任何在 Windows 98 / ME 中没有集成驱动程序的视频卡)
-
网络:
- 无,确保网络驱动程序设置保持不变非常重要!!
-
硬盘:
- IDE (0:0),原始镜像,足够大以安装操作系统。
-
建议您在 APM 模式下安装 Windows,因为 ACPI 是一个错误百出的混乱 (setup /p i)。
警告:操作系统_必须_从硬盘安装,并且必须包含一个包含 CDROM 中的 Windows 98 CAB 文件的文件夹。 否则,驱动程序将无法滑流。
**注意:**建议不要在此 VM 中安装任何额外的驱动程序。
-
随意配置 Windows 98 / ME 安装。 示例:
- 机器名称
- 用户名
- 系统选项
- 主题
- 补丁
- 实用程序
- 软件
-
关闭虚拟机,不要再打开它
-
使用 7zip 或镜像软件,提取您安装 Windows 98 的分区的整个根目录。
将所有文件提取到一个目录中。 我们将此称为 OS Root。 默认情况下,这是框架目录中的 _OS_ROOT_。
在 Windows 上,您可以使用 7zip 文件管理器或 7zip 上下文菜单打开镜像文件。 或者 WinImage 等。
在 Linux 上,您可以使用 p7zip-full 包中的 '7z' 来执行此操作。
7z x -o_OS_ROOT_/ /path/to/image/file
**警告:**只允许_一个_ Windows 目录,并且只允许_一个_ Windows 设置文件 CAB 目录。 如果您使用 98Lite 进行安装,请确保 98Lite 设置目录是这些 CAB 的唯一载体。
信息:脚本通过查找 WIN.COM 来检测 Windows 目录
信息:通过查找 PRECOPY2.CAB 来检测 CAB 文件目录
运行脚本时必须使用 --osroot 参数指定此位置。
准备和打包
- 将要滑流的驱动程序复制到您选择的目录中。 默认情况下,这是框架目录中的
_DRIVER_目录。
注意:_DRIVER_ 已经填充了精选的驱动程序。 如果您愿意,可以删除这些驱动程序。
如果您为此选择非默认目录,则必须使用 --drivers 参数指定它。
- 复制不会滑流但会添加到您选择的目录中的额外驱动程序。 默认情况下,这是框架目录中的
_EXTRA_DRIVER_。
注意:这些驱动程序的处理方式与滑流驱动程序相同,但在安装期间不会复制到硬盘驱动器。
信息:此文件夹在 ISO 上将命名为 DRIVER.EX。 您可以将 Windows 98 硬件向导指向此文件夹,驱动程序将被找到并正确安装。
注意:_EXTRA_DRIVER_ 已经填充了精选的驱动程序。 如果您愿意,可以删除这些驱动程序。
如果您为此选择非默认目录,则必须使用 --extradrivers 参数指定它。
- 将您希望添加到 ISO 的任何额外文件添加到您选择的目录中。 默认情况下,这是框架目录中的
_EXTRA_CD_FILES。
这可以包括您不希望使用 QuickInstall 工具处理的驱动程序,例如包含捆绑软件的驱动程序。
如果您为此选择非默认目录,则必须使用 --extra 参数指定它。
- 运行以下命令来构建包:
sysprep.py --osroot <OS Root Folder>
注意:如果您偏离默认值,则必须添加其他参数。
这将在框架目录中的 _OUTPUT_ 目录中构建安装包。
如果要创建 ISO 镜像或可启动的 USB 密钥镜像,请参见下文。
警告:OS 目录将被就地修改!
创建可启动的 ISO 镜像
- 对
sysprep.py脚本使用--iso参数。
例如,将 --iso output.iso 添加到命令行将生成一个名为 output.iso 的文件,该文件可以刻录到 CD/DVD/Blu-Ray 或在虚拟机中使用。
有关更多信息,请参阅上面的参数说明。
创建可启动的 USB 密钥镜像
- 对
sysprep.py脚本使用--usb参数。
例如,将 --usb output.img 添加到命令行将生成一个名为 output.img 的文件,该文件可以写入 USB 密钥、SD 或 CF 卡、硬盘驱动器或其他介质。
有关更多信息,请参阅上面的参数说明。
如何将可启动的 USB 镜像写入 USB 闪存驱动器
-
在 Linux 上,您可以使用
dddd if=<USB image file> of=/dev/sdX bs=1024k status=progress
将 /dev/sdX 替换为 USB 闪存驱动器的设备路径。
-
在 Windows 上,您可以使用以下工具:
- Windows 版
dd:http://www.chrysocome.net/dd Win32 DiskImager:https://sourceforge.net/projects/win32diskimager/
- Windows 版
在一个镜像中打包多个操作系统
这是一项高级功能。
通过多次指定 --osroot 参数,您可以创建多变量安装镜像。 在这种情况下,安装期间会出现一个选择菜单,提示用户应安装哪个变量。
示例:
python3 sysprep.py --osroot D:\quickinstall\Windows98SE --osroot D:\quickinstall\WindowsME --iso multi.iso
win98qi.inf
此文件应存在于每个 OS Root 目录中。 它包含安装程序中显示的变体选择菜单中安装的显示名称。
它应该适合屏幕。
它可以是 ASCII 或 UTF8 编码。
常见问题解答
问:当我在夏令时切换后创建镜像时,Windows 98 / ME 抱怨系统文件完整性
答:这是一个奇怪的故障,发生在 DST 之后创建的文件突然偏移一小时的 Windows 主机上。
将来,sysprep 脚本将与硬盘镜像文件一起使用,这将使这不再是一个问题。
**解决方法 1:**从您用作创建镜像的基础的硬盘镜像中重新提取文件
**解决方法 2:**在 Linux 上创建镜像
**解决方法 3:**等到夏天 :-)
问:从额外驱动程序安装驱动程序时,Windows 98 / ME 抱怨缺少 CAT 文件
答:98Lite 删除目录根目录以节省安装空间。 可以安全地跳过目录文件,但如果该错误使您烦恼,您可以从 Win98 CAB 文件中解压缩它们以防止出现这种情况。
问:在 Using SHELL32.xxx to reboot! 之后,我立即收到有关 msdos.exe 中非零返回码的 python 错误!
示例:
subprocess.CalledProcessError: Command '['L:\\win98-installer\\__BIN__\\tools\\msdos.exe', 'L:\\win98-installer\\__BIN__\\registry\\regedit.exe', '/L:SYSTEM.DAT', '/R:USER.DAT', 'tmp.reg']' returned non-zero exit status 1.
答:当在 Windows 上运行脚本,而脚本目录位于由 WSL 会话(Windows Subsystem for Linux)托管的共享中时,会发生此问题。 这会导致一些不兼容。 请改从 WSL Linux shell 运行脚本。
问:安装后所有操作系统文件都未隐藏! 为什么?
答:您可能使用 Linux 来进行镜像创建。 Linux 没有隐藏文件的概念,因此无法在镜像中复制此文件属性。
问:当我在具有 Intel 82371SB 南桥(例如 i440FX)的基于 Intel i430 / i440 的系统上从 CD 安装时,我收到 I/O 和读取错误、分段错误和其他奇怪行为
答:此问题已由 Deksor、Rigo 和我自己验证,并且是一个自至少 2.4.xx 版本以来就存在的根深蒂固的问题。 在 PIO 模式下运行驱动器可能会有所帮助。
BIOS 更新可能会有所帮助,该问题目前正在调查中,因为我们发现了一些 BIOS 版本,其中不会发生此问题。
目前,您可以通过使用 PCI SCSI 或 IDE 适配器卡来解决此问题,该卡支持 CD-ROM 启动或具有带有 DOS 启动软盘选项的 DOS 驱动程序。
问:我正在尝试在基于 VIA MVP3 的主板上安装,并且在第一次启动时收到“General Protection Fault”(Rigo 报告)
答:要解决此问题,请在安装向导中选择“慢速”硬件检测变体。 该问题目前正在调查中。
问:我正在尝试在我的 486 上安装,并且收到磁盘 I/O 错误!
答:您的 BIOS 可能具有不完整/错误的 LBA 实现。 对驱动器进行分区以使用 FAT32 非 LBA 分区,然后重试。
问:我在我的现代 PC(Ryzen、Intel 第 13 代等)上运行时收到 While initializing device VCACHE: Windows protection error
安装 CREGFIX 补丁(参考 ISO 包含 extras 文件夹中的补丁):
https://github.com/mintsuki/cregfix
由于技术原因,此补丁无法与 ISO 预先安装,必须手动应用。
关于
一个框架 + 安装程序,用于在从 486 到现代系统的任何设备上(非常)快速地安装 Windows 98
资源
Stars
Watchers
Forks
Releases 12
v0.9.6 Latest Dec 23, 2024 + 11 releases
Packages 0
No packages published
Contributors 2
Languages
Footer
Footer navigation
You can’t perform that action at this time.







