Please don't sue. I just like old computers!! :(
- Windows 9x QuickInstall
- The QuickInstall Framework
- Booting / Starting QuickInstall
- The QuickInstall Installer
- The Emergency Linux Shell
- Frequently Asked Questions
- ...to install Windows 98 or ME extremely quickly?
- ...to test a lot of acquired retro-hardware in quick succession?
- ...to install Windows 9x from a USB flash drive or perhaps an SD card?
- ...to install Windows 9x to and boot from an NVMe SSD?
- ...native AHCI and USB 2.0 support on Windows 9x?
- ...a fully patched Windows 9x version without manually installing everything?
- ...a Windows 9x version that works on modern computers, including non-CSM UEFI machines?
- ...a Windows 9x version optimized for small footprint, maximum functionality and comfort?
- ...said version to also excel on 486-class machines?
- ...a Windows 9x installation with lots of integrated drivers and a lot more available on the install disk?
If you answered "yes" to any of the above, you may want to keep reading...
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Windows 9x QuickInstall is a framework intended to replace the original Windows 9x setup environment and provide an extremely quick and highly optimized and customized installation process paired with integrated patches and drivers. In that sense, it is not dissimilar to nlite, but the method used to achieve this is very different.
QuickInstall images are derived from already set-up and working installations. This means that they retain any patches, drivers and software that is already installed, enabling more powerful, comfortable, modern and headache-free Windows 9x installations than ever before.
Combining this method with the blooming landscape of third-party patches and fixes, it opens up these classic operating systems to a vast variety of machine classes, ranging from early 486 systems to the very latest Core Ultra and Ryzen machines available on the market today (yes, really).
After preparation, the image is stripped of hardware detection information, and upon installation the Windows 98 Setup's hardware detection phase is re-run, accessing the vast driver library available with QuickInstall.
QuickInstall uses a Linux-based custom installation environment that quickly writes the full installation image to a target directory of your choosing, using a specially-crafted flat binary file format (MercyPak) that is designed to be read exactly once, in sequence, to avoid expensive CD drive seeking and attain the maximum installation speed possible.
This also means you can finally install Windows 9x from USB without any fuss!
...or from a CD/DVD-R. Or boot from a floppy disk and then install off of USB.
The truth is, it does not matter how you boot the system or where the QuickInstall data is located, if you manage to boot the kernlel, the installation environment will find its files. This also means that you can install Windows from USB on machines that do not support USB-Boot (using the boot floppy)!
And yes, this does mean that the effort for a user to build an ISO is higher than for example nLite, but the degree of customizability is also massively increased.
A set of reference images is also provided for your convenience and to get a feel for the vast power that QuickInstall provides to the retro enthusiast of 2023 2024 2025 2026. Enabling you to install your favorite flavor of vintage Windows faster than ever.
It depends where!
- In VirtualBox on a modern machine? 15 seconds.
- On a Pentium III 866MHz with a DVD-ROM and an ATA133 disk? 60 seconds.
- On a 486 DX4-100? 5 minutes.
In any case, QuickInstall is at least an order of magnitude (i.e. 10x) faster than the official Windows 98 setup.exe
The QuickInstall Framework provides a set of scripts and tools to create bootable ISO / USB images that can install Windows 9x operating systems quickly using the integrated installation environment.
- Microsoft Windows 98 (Build 4.10.1998) -- UNTESTED
- Microsoft Windows 98 Second Edition (Build 4.10.2222)
- Microsoft Windows Millenium Edition (Build 4.90.3000)
Support for international versions is not properly tested. It should work and in my testing it does, but YMMV.
NO versions of Windows 95 are or likely will ever be supported due to non-PNP device detection being part of the DOS-based installer stage.
Creating custom QuickInstall installation images using the framework scripts is a complex process.
Refer to the guide:
These patches and fixes do not need to be integrated into the Windows image before creating a QuickInstall image.
-
CREGFIX
This is a patch for CREGFIX an issue of many modern CSM BIOS implementations where certain control register bits are left dirty, causing issues when trying to run Windows 9x ("While initializing device VCACHE: Windows protection error") or while trying to run EMM386.EXE.This universal VxD fix version was provided by SweetLow / LordOfMice
-
Silent Default Display Prompt
This gets rid of the "Default Monitor" install dialog that normally pops up. -
UEFI boot files (CSMWRAP)
This is a EFI binary that provides BIOS emulation functions on EFI-only systems without CSM, allowing you to boot Windows 9x on them.Courtesy of: https://github.com/FlyGoat/CSMWrap
-
LBA64HLP and GPT Disk drivers
This is an experimental set of drivers for Windows 9x to enable support for LBA64 disks, especially those with the GPT partition layout. It also supports 4kn sector disks. In theory, together with Paragon NTFS for Windows 98 you can gain write access to modern Windows drives, so be careful!
And not to forget, the vast driver libraries:
-
win98-driver-lib-baseThese drivers will be processed and packaged alongside the OS data. If selected during installation, these drivers are integrated into windows and will be found during any hardware detection.
This includes many network drivers, common sound and video card drivers, storage drivers, etc.
This includes the excellent USB 2.0, USB Mass Storage and NVMe driver stacks from SweetLow / LordOfMice. It also includes his patched versions of the R.Loew native AHCI SATA drivers.
-
win98-driver-lib-extraThese drivers will be processed and packaged in a subdirectory of the installation media, but they are not injected into Windows' automatic hardware detection. This can have several reasons:
- The driver is very big
- The driver is part of a hardware family where no single driver is guaranteed to be optimal
- The driver is for a chip, but may lack card vendor-specific functionality
- The driver is known to cause problems
The reference images come in three flavors:
- Windows 98 SE: Stock installation
- Windows 98 SE: 98Lite Micro De-Bloated installation with DirectX 8.1
- Windows ME: 98Lite Micro De-Bloated installation with DirectX 8.1
All of these images are pre-patched for usage with both the very latest and very old hardware alike without running into the usual problems with memory size, CPU issues (TLB invalidation bug, CSM control register bug) or hard disk sizing problems (LBA48 issues, etc.).
These images also contain a lot of drivers and useful utilities for benchmarking, overclocking, diagnostics, et cetera.
The list of patches can be found in the Documentation linked below:
- i486-class CPU, at least a 486SX (but it will be very slow)
- 24 MiB of memory
- An IDE / SATA / SCSI / NVMe controller supported by Linux
There are several provided methods to boot into Windows 9x QuickInstall:
This is a 1.44M floppy disk image that contains a full kernel with USB support.
It will find its installation source media automatically, meaning you can use it together with a QuickInstall CD/DVD-ROM, USB flash drive (even if your system does not support booting from either of them), CF-Card or Hard Disk.
Note: Due to the strong compression used in this version, the system will take a long time to start up on 486SX/DX-class machines. I recommend using dosflop.img instead.
Note: Due to the size constraints, this version does not print diagnostic messages on the screen when starting up.
The iso images can be written to a CD or DVD and then booted. This is the recommended method on systems that support this.
Since this uses the classic floppy emulation boot method it should work very well even on the earliest BIOSes that provide CD-ROM boot support.
The Linux Kernel on the QuickInstall media can be loaded from DOS. To facilitate this, a batch file named INSTALL.BAT is provided in the root directory.
Navigate to the CD-ROM or Hard Disk drive that contains the Windows 9x QuickInstall files and type INSTALL to start QuickInstall.
This is a 1.44M floppy disk image with FreeDOS and a CD-ROM driver that loads and boots QuickInstall directly off of a CD-ROM or hard disk drive (using LOADLIN).
Recommended if you have a computer that does not support CD-ROM boot or if you have the QuickInstall files on an ATA/ATAPI media or other device that is exposed using Int 13h that you cannot boot from
Note: If you have a SCSI CD-ROM drive, the image must be modified accordingly.
By using an appropriate tool, you can write the usb images to a flash drive and boot off of it.
You can also use the Native Floppy Disk Boot method to execute QuickInstall off a flash drive if your PC does not support booting from such media.
An example sequence could look like this:
-
On Linux, you can use
dd-
sudo dd if=<USB image file> of=/dev/sdX bs=1M status=progressReplace
/dev/sdXwith the USB flash drive's device path.
Example:$ sudo dd if=win98qi_v0.9.6_ALL_usb.img of=/dev/sdc bs=1M status=progress 1248+1 records in 1248+1 records out 1309323264 bytes (1,3 GB, 1,2 GiB) copied, 1,26113 s, 1,0 GB/s
-
-
On Windows, you can use the Windows port of
ddor Win32 DiskImager, for example:
Executing the steps described above, the resulting media can also be booted on UEFI systems, even those that lack the Compatibility Support Module (CSM).
Note: UEFI installation support is very experimental at this point in time, and no support can be provided if it fails.
It is not recommended, but you can also write the "usb" image to a hard disk drive.
As long as your system supports booting from it, it will work and install normally.
Dubbed lunmercy internally (long story...), this is a custom installer written in C that guides the user through the entire installation process.
After you launch QuickInstall and made it past the introductory text, either you are sent to the main menu, or you will be asked which operating system version you wish to install - if the booted QuickInstall image contains two or more installable OS variants.
INSTALL- This proceeds with the installationCFDISK- This leads you to the Hard Disk Partitioning ToolSHELL- This leads you to a minimalistic Linux shell.OS- This button is only visible if you are using an image with two or more installable OS variants.
The installer will first lead you to this selection menu. Here you can select the hard disk you wish to partition.
QuickInstall comes with cfdisk, a TUI hard disk partitioning tool, to help you set up your hard disk(s) for installation.
The version of cfdisk shipped with QuickInstall is slightly modified to better fit the purpose of preparing disks for the installation of Windows 9x.
NOTE: In order to apply the changes, you must click the [ Write ] button before exiting the partitioning tool!
The default for partition creation is W95 FAT32 (LBA).
However, on very old systems, you may need to choose the non-LBA version instead.
Here you will be asked for the destination partition.
If you are booted off a FAT32-formatted media (e.g. a USB flash drive), it will appear here with an asterisk (*), depicting that it cannot be used for installation.
Note: Only partitions/disks marked mbr are valid installation destinations.
Partitions with an unsupported file system cannot be re-formatted from the installer. You must change the partition type using the partitioning tool.
This menu gives you several choices to configure the installation process.
Sensible defaults are pre-selected, however, you may choose to change them.
For example, you may wish that the partition is not formatted before commencing the installation.
Or you wish to omit the installation the driver library to speed up the installation process, however, then you will lose the benefits of this library being available to Windows during hardware detection.
The options marked NO by default should only be changed when necessary.
Press Enter here to start the installation.
The installation execution dialog will give you continous feedback over the status of the installation. Every major step has its own progress bar.
After successful installation, you are presented with the last menu inside the QuickInstall installation environment, which asks you what to do next. The usual choice here is to reboot to finalize the installation.
Afterwards, the system should boot into the desired Windows 9x version.
It will then finalize itself by detecting all the hardware in your system, culminating in one final reboot.
NOTE: If you experience hangs or errors in this step of the installation, please re-try the installation and set the Skip legacy non-PnP hardware detection phase option to NO before filing a bug report!
And voilà, you have successfully gone through the QuickInstall experience!
The QuickInstall environment provides a minimal Linux shell. This allows you to do rudimentary diagonstics.
You can mount file systems, use dd to read and write images, use diagnostic tools such as lspci, lscpu, etc. and inspect the kernel log using dmesg|less, for example.
It will not replace a purpose built and more featured Linux environment, but it may be helpful in a pinch!
QuickInstall contains the newly released gold-standard tool for diagnosing 3dfx Voodoo 2 cards for your convenience, provided with permission from Fagear.
To use it, type witchery at the shell.
More information here: Voodoo2 diagnostics software (Witchery)
A: Hardware in the 90s and 2000s was eccentric! Especially with regards to faster Multi-Word or Ultra DMA transfer modes on IDE/SATA controllers.
The Floppy, CD/DVD and USB images allow you to boot the kernel with disabled DMA modes, which may help work around the problem!
A: There is some trouble with USB-Handoff with BIOSes that provide "legacy emulation", i.e. access to USB mass storage via Int13h.
If this problem occurs, please unplug USB mass storage devices when booting. You may plug them again afterwards.
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: 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.
You can also try disabling DMA when booting the CD/Floppy.
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.
A: Your BIOS might have an incomplete/buggy LBA implementation. Partition the drive to use a FAT32 non-LBA partition and try again.
You can also try disabling DMA when booting the CD/Floppy.
Refer to BUILDING.md
- TheRetroWeb Cool community with cool people
- SweetLow / LordOfMice for his invaluable help by contributing drivers and patch sets
- Jeff Chen for helping to debug boot sector problem
- Fouquin for testing and contributing drivers
- Deksor for being French
- PhilsComputerLab for spreading the word
- goshhhy / linear cannon for Linux kernel config & systems programming help
- Rudolph R. Loew for a decade of amazing patches and drivers (rest in peace 😢)
- More testing done by: computerguy096, Rigo (0xCats), agent_x007, Enigma, CptKlotz, matcarfer, viti95
Long live Windows 9x.
Oerg866, signing out.

























