oerg866 / win98-quickinstall

A framework + installer to (very) quickly install Windows 98 on anything from a 486 up to a modern system
185 stars 6 forks source link

             Windows 98 QuickInstall ISO Creator Package

                   (C) 2012-2023 Eric Voirin (oerg866)

Disclaimer

Windows is a trademark that belongs to Microsoft Corporation.

This project has NO ENDORSEMENT FROM ANY INVOLVED PARTIES, SUCH AS MICROSOFT.

Please don't sue. I just like old computers :(

Windows 98 SE QuickInstall

This is a framework that is intended for creating and preparing Windows 98 installation ISO images in a way that is optimized for extremely quick installation, similar to nLite, but with a completely different method and context.

It takes the root file system of an already installed Windows 98 system and packages it, whilst allowing drivers and tools to be slipstreamed at will.

For the installer, it uses Linux as a base, paired with some tools to allow hard disk partitioning and formatting, as well as a custom installer with a custom data packing method that is optimized for streaming directly from CD to the hard disk without any seeking.

Bottom line, this means that the effort for the user to build an ISO is higher than for example nLite, but the degree of customizability is also massively increased.

How fast is it really?

On a Pentium III class machine with ATA / ATAPI Ultra DMA available for all storage devices, Windows 98 -- using an ISO built with this framework -- can be installed from CD in roughly 60-90 seconds.

Building the Framework, Bugs, License, etc.

See BUILDING.md.

I don't want to read and/or do all of this.

Okay. Go on archive.org and search for win98qi!

Supported Target Operating Systems

Support for international versions is not properly tested. It should work and in my testing it does, but YMMV. Please report bugs!

NO versions of Windows 95 are supported due to non-PNP device detection being part of the DOS-based installer stage.

System requirements to use QuickInstall

How to boot a QuickInstall image

There are several provided methods to boot into Windows 98 QuickInstall:

  1. CD/DVD-ROM boot

    The Windows 98 QuickInstall ISO image can be booted on any computer that supports floppy-emulation CD-ROM boot.

    Recommended if you have a PC that supports CD-ROM boot.

  2. 1.44M floppy boot with DOS (dosflop.img)

    This is a 1.44M floppy disk image that contains FreeDOS and LOADLIN to boot the kernel directly off the CD-ROM.

    Recommended if you have a computer that does not support CD-ROM boot or wish to install from a hard disk.

    Also recommended if you have the QuickInstall files on an ATA/ATAPI media or other device that is exposed using Int 13h

    If you have a SCSI CD-ROM, the image must be modified accordingly.

  3. 1.44M floppy boot with tiny kernel (floppy.img)

    This is a 1.44M floppy disk image that contains a proper kernel.

    Recommended only if you have QuickInstall on a non-ATA/ATAPI media and your BIOS does not support CD-ROM boot.

    The kernel on this image does not support kernel logs (dmesg)

  4. Removable media such as USB Flash Drives

    Using the system preparation script it is possible to create bootable USB images. The steps to do so are described below.

System requirements to build QuickInstall Images

The system preparation script (sysprep.py)

This script serves the purpose of preparing an installation for packaging into an ISO and/or USB image file.

It takes the following parameters:

Preparing a Windows 98 / ME installation for packaging

Preparing & Packaging

Creating a bootable ISO image

Creating a bootable USB key image

How to write the bootable USB image to a USB flash drive

Packaging multiple operating systems in one image

This is an advanced feature.

By specifying the --osroot parameter multiple times, you can create a multi-variant installation image. In this case a selection menu will appear during installation prompting the user which variant should be installed.

Example:

python3 sysprep.py --osroot D:\quickinstall\Windows98SE --osroot D:\quickinstall\WindowsME --iso multi.iso

win98qi.inf

This file should be present in every OS Root directory. It contains the display name of the installation in the variant selection menu shown in the installer.

It should fit on the screen.

It can be ASCII or UTF8 encoded.

FAQ

Q: This is cool. But are you single?

A: Do you think this project would exist otherwise? 🤪

Q: Windows 98 / ME complains about missing CAT files when installing a driver from the extra drivers

A: 98Lite deletes the catalog root directory to save installation space. Unpack them from the Win98 CAB files to prevent this.

Q: I'm getting a python error about non-zero return code in msdos.exe right after Using SHELL32.xxx to reboot!

Example:

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.

A: This problem happens when running the script on Windows whilst the script directory is in a share hosted by a WSL session (Windows Subsystem for Linux). This causes some incompatibilities. Run the script from the WSL Linux shell instead.

Q: All the operating system files are un-hidden after installation! Why?

A: You've probably used Linux to do the image creation. Linux has no concept of hidden files, therefore this file property cannot be replicated in the images.

Q: I'm getting I/O and read errors, segmentation faults and other weird behavior when installing from CD on an Intel i430 / i440-based system with an Intel 82371SB south bridge (e.g. i440FX)

A: This problem has been verified by Deksor, Rigo and myself, and is a deeply rooted problem that has existed since at least version 2.4.xx. Operating the drives in PIO mode can help.

A BIOS update may help, the issue is currently under investigation as we found some BIOS versions where this problem does not occur.

For now, you can work around this problem by using a PCI SCSI or IDE adapter card that supports CD-ROM boot or has DOS drivers with the DOS boot floppy option.

Q: I'm trying to install on a VIA MVP3-based motherboard and I'm getting a "General Protection Fault" on the first boot. (Repoted by Rigo)

A: To work around this issue, select the "slow" hardware detection variant in the installation wizard. The problem is currently under investigation.