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

我不想阅读和/或做所有这些。

好的。转到发布选项卡 :-)

支持的目标操作系统

对国际版本的支持尚未经过适当的测试。 它应该可以工作,并且在我的测试中确实如此,但 YMMV。 请报告错误!

由于非 PNP 设备检测是基于 DOS 的安装程序阶段的一部分,因此不支持任何版本的 Windows 95。

使用 QuickInstall 的系统要求

如何启动 QuickInstall 镜像

有几种提供的方法可以启动到 Windows 98 QuickInstall:

  1. CD/DVD-ROM 启动 Windows 98 QuickInstall ISO 镜像可以在任何支持软盘仿真 CD-ROM 启动的计算机上启动。

如果您有支持 CD-ROM 启动的 PC,建议使用此方法。

  1. 使用 DOS (dosflop.img) 进行 1.44M 软盘启动 这是一个 1.44M 软盘镜像,其中包含 FreeDOS 和 LOADLIN,可直接从 CD-ROM 启动内核。

如果您有不支持 CD-ROM 启动或希望从硬盘安装的计算机,建议使用此方法

如果您在 ATA/ATAPI 介质或其他使用 Int 13h 公开的设备上有 QuickInstall 文件,也建议使用此方法

如果您有 SCSI CD-ROM,则必须相应地修改镜像。

  1. 使用微型内核 (floppy.img) 进行 1.44M 软盘启动 这是一个 1.44M 软盘镜像,其中包含一个适当的内核。

仅当您在非 ATA/ATAPI 介质上有 QuickInstall 并且您的 BIOS 不支持 CD-ROM 启动时,才建议使用此方法

此镜像上的内核在功能、驱动程序支持方面受到限制,并且不启用内核日志(没有 printk,没有 dmesg

由于强大的压缩,在慢速系统上启动需要很长时间。 它仅作为最后的手段。

  1. 可移动介质,例如 USB 闪存驱动器 使用系统准备脚本可以创建可启动的 USB 镜像。 执行此操作的步骤如下所述。

构建 QuickInstall 镜像的系统要求

经过以下测试:

* **Windows 10** 21H2, Build 19044.2846
* Windows Subsystem For Linux (Ubuntu 20.04.5 LTS)
* Ubuntu 20.04.4 LTS (原生)

sudo apt install wine

ISO 构建过程的许多部分都是 Windows 特有的,无法在 Linux 上以原生方式干净地实现,例如修改系统注册表、解析驱动程序 INF 文件等。

例如,7zip(在 Linux 上:sudo apt install p7zip-full

系统准备脚本 (sysprep.py)

此脚本用于准备安装,以便打包到 ISO 和/或 USB 镜像文件中。

它采用以下参数:

可以多次指定此选项,在这种情况下,安装向导将显示一个选择菜单。

默认值:框架目录中的 _EXTRA_CD_FILES_

可以多次指定此选项,在这种情况下,所有目录中的所有文件都将被添加

_滑流_是指在安装生命周期的任何时候检测到这些驱动程序的硬件时,即使在安装时硬件尚未出现,也会自动安装这些驱动程序。

默认值:框架目录中的 _DRIVER_。 它已经包含精选的驱动程序。

此参数只能指定一次。

这些驱动程序_不_会滑流,因此不会自动安装。 但是,它们可以在生成的安装介质上使用,并且可以通过将 Windows 98 / ME Add New Hardware 向导指向介质上的 DRIVER.EX 目录来安装。

此文件夹存在的原因是操作系统可用的硬件种类繁多,并且它们的兼容性/大小各不相同。

建议将非常大的驱动程序放在此处,以及无法假定不同版本具有不同的兼容性和速度的驱动程序。

例如,即使较新的驱动程序也支持此硬件,但出于速度原因,最好为较旧的 nVidia GeForce 卡选择较旧的驱动程序,而较新的驱动程序也应可用,以防出现较新的硬件。

默认值:框架目录中的 _EXTRA_DRIVER_。 它已经包含精选的驱动程序。

此参数只能指定一次。

此参数控制脚本的控制台输出详细程度。

其中 VERBOSETrueFalse

默认值为 False

此参数当前已损坏,抱歉。 它总是安静的。

准备 Windows 98 / ME 安装以进行打包

建议您在 APM 模式下安装 Windows,因为 ACPI 是一个错误百出的混乱 (setup /p i)。

警告:操作系统_必须_从硬盘安装,并且必须包含一个包含 CDROM 中的 Windows 98 CAB 文件的文件夹。 否则,驱动程序将无法滑流。

**注意:**建议不要在此 VM 中安装任何额外的驱动程序。

将所有文件提取到一个目录中。 我们将此称为 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_ 已经填充了精选的驱动程序。 如果您愿意,可以删除这些驱动程序。

如果您为此选择非默认目录,则必须使用 --drivers 参数指定它。

注意:这些驱动程序的处理方式与滑流驱动程序相同,但在安装期间不会复制到硬盘驱动器。 信息:此文件夹在 ISO 上将命名为 DRIVER.EX。 您可以将 Windows 98 硬件向导指向此文件夹,驱动程序将被找到并正确安装。 注意:_EXTRA_DRIVER_ 已经填充了精选的驱动程序。 如果您愿意,可以删除这些驱动程序。

如果您为此选择非默认目录,则必须使用 --extradrivers 参数指定它。

这可以包括您不希望使用 QuickInstall 工具处理的驱动程序,例如包含捆绑软件的驱动程序。

如果您为此选择非默认目录,则必须使用 --extra 参数指定它。

sysprep.py --osroot <OS Root Folder>

注意:如果您偏离默认值,则必须添加其他参数。

这将在框架目录中的 _OUTPUT_ 目录中构建安装包。

如果要创建 ISO 镜像或可启动的 USB 密钥镜像,请参见下文。

警告:OS 目录将被就地修改!

创建可启动的 ISO 镜像

例如,将 --iso output.iso 添加到命令行将生成一个名为 output.iso 的文件,该文件可以刻录到 CD/DVD/Blu-Ray 或在虚拟机中使用。

有关更多信息,请参阅上面的参数说明。

创建可启动的 USB 密钥镜像

例如,将 --usb output.img 添加到命令行将生成一个名为 output.img 的文件,该文件可以写入 USB 密钥、SD 或 CF 卡、硬盘驱动器或其他介质。

有关更多信息,请参阅上面的参数说明。

如何将可启动的 USB 镜像写入 USB 闪存驱动器

/dev/sdX 替换为 USB 闪存驱动器的设备路径。

在一个镜像中打包多个操作系统

这是一项高级功能。

通过多次指定 --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

资源

Readme Activity

Stars

490 stars

Watchers

9 watching

Forks

14 forks

Report repository

Releases 12

v0.9.6 Latest Dec 23, 2024 + 11 releases

Packages 0

No packages published

Contributors 2

Languages

Footer

© 2025 GitHub, Inc.

Footer navigation

You can’t perform that action at this time.