3

Windows 9x is no longer common, and isn't commonly supported. While there exist many solutions to burning ISO to USB or other storage device, most fail at some point, with commonly useless if any information online.

What are the known ways to install Windows 9x entirely from USB stick, or any other unconventional device?

  • 2
    Install Windows 9x onto what? A modern computer with virtualization, a modern computer without virtualization, or a computer from the 1990s? – snips-n-snails May 7 at 19:19
  • 3
    How about a compact flash card? Its effectively a PATA SSD, which means its readily adaptable to IDE sockets or PCI. And both cards and readers are still readily available due to their use in high end cameras among other places. – user1937198 May 7 at 21:07
  • 1
    I'd just spend ~$20 on a USB-attached floppy. I've used that approach for "F6 boot drivers" for some old versions of Windows NT. I assume it to be equally valid for Windows 9x. – another-dave May 7 at 22:49
  • 2
    USB didn't work properly on Win95: You'd need to be installing Win98 or WinME. Also, many of the earlier machines would not boot off the flash drive. You will need something like plop.at/en/bootmanager/download.html – cup May 10 at 19:03
  • 1
    @cup If your BIOS supports booting off the USB, then you get reading from USB for free. So if you boot DOS/Win3.11/Win95 off the USB, the OS will have USB reading support without the OS itself having drivers – tabdiukov May 10 at 20:01
5

Here is the solution I found. This probably isn't the only possible solution, but the only one that worked so far. Feel free to contribute, as it's likely imperfect

The guide generally assumes the computer can boot off your device. The workaround to boot off USB will be posted, but it might be easier to just stop at this point if the computer cannot.

Note: You'd want to use a 2-4 GB USB stick. The newer 32+ GB sticks aren't always recognised by older BIOS

  1. Download FreeDOS legacy, Windows 9x image, UltraISO. Install UltraISO (trial version will do).

    • UltraISO will be used as it doesn't hide the USB contents (as rufus does. If a solution with rufus found, feel free to switch the guide over to rufus)
    • FreeDOS is chosen over MS-DOS because of pragmatic reasons, such as,
      • FreeDOS supports large capacity FAT32 out of the box, MS-DOS will struggle with large-capacity volumes
      • FreeDOS appears to natively prefer the modern filename conventions, compared to 8:3 filenames. Something that could become a problem later on in the guide if MS-DOS was used
      • MS-DOS was distributed initially on floppies, which makes it quite difficult to burn onto USB. Especially for it's to be used with legacy hardware
      • FreeDOS supports USB r/w, something that might come in handy if you get in trouble
    • FreeDOS legacy is probably what you want. It seems like FreeDOS mainstream requires on the machine to support some extended CPU command set, not always found on legacy hardware.
  2. Start UltraISO, open Freedos legacy ISO. Go to Bootable -> Write disk image. Select,

    • Disk Drive: (your USB)
    • Write Method: "USB-HDD+ v2"
    • Hide Boot Partition: "None"

    Then press "Write", "Yes". The image burning should take ~5 minutes

  3. Close UltraISO, open it back again. Open your Windows 9x image and extract the image contents to some folder ISO (you could use your archiving app for this matter, too, not just UltraISO). Then copy the folder onto your flash device.

  4. Also copy the drivers and software you need to the folder SW on your USB flash drive

  5. Unplug the device and plug it to your to-be Windows 9x machine. Go to BIOS and see if you can boot off your USB stick

    • If you can, proceed.

    • If you cannot, you are probably into the world of pain. At one time what worked for me if getting a second small USB stick that it could somehow see, writing an Easybcd BIOS extender onto it

  6. After having booted up, do install FreeDOS onto the to-be Windows 9x machine. Install the base (minimalistic) package without sources

  7. While still USB plugged in, copy over the ISO and SW folders onto the hard drive,

xcopy /s C:/ISO/ D:/ISO/
xcopy /s C:/SW/ D:/SW/

Notes:

  • /s - to tell xcopy to copy all of its subfolders, source
  • C: - your USB (!) drive letter, always
  • D: - your HDD drive letter, seemingly always

  1. Unplug the USB drive, and now boot from the internal storage. Notice that this time, C: will be assigned to the internal storage (which eliminates bugs)

  2. When prompted with the DOS configurations, select "no drivers (emergency)" configuration. This will prevent any bugs

  3. CD to ISO folder (cd ISO), run setup.exe with the switches you want. For example,

    setup.exe /nm /is /ie /c /p j;a
    

The /NM (No Machine checking, allows installation from FreeDOS) and /IS (Ignore Scandisk) are prescribed by FreeDOS.

  1. Install Windows 9x!

P.S. Other options tried

  • Conventionally burn an image onto USB with UltraISO / Rufus -> boots ok, BSODs when installing drivers with `Fail to read from C:/" (the USB)

  • Conventionally burn an image onto USB with UltraISO / Rufus, begin the installation of Win9x from another media, unplug USB when beginning the installation -> Hangs before getting to GUI. If unplugged later, the GUI setup alleges it'd need to write 5.1 MB onto drive C:/ (the drive-letter assigned to the USB, possibly the installer app bug)

  • Conventionally burn an image onto USB with UltraISO / Rufus, change autoexec.bat to use other drive-letter - no luck

| improve this answer | |
2

You have to get the system booted up under DOS to start with. That's the hard part. If you have a working Windows 9x/ME system you can just format the flash drive as FAT16/32 and select to make the drive bootable. Copy the win98 folder from the Windows 98 setup CD on to the flash drive. Finding the DOS fdisk and format programs from a working Windows 9x install or Windows 98 boot floppy may be needed as the target drive will need to be partitioned and formatted prior to installing Windows. The flash drive should boot up like any other hard drive. Make sure the computer has 1GB of RAM or less else unpatched Windows may hang. Windows 97 and later (95 OSR2) support FAT32.

You can use an emulator like qemu to boot from a floppy image of a Windows 9x boot disk and set the flash drive device to the 1st hard drive. Then just run sys a: c: in DOS after partitioning and formatting the flash drive to make it bootable. Copy the utilities like fdisk and format from the boot disk to the flash drive so you can format the target hard drive.

Now boot off the flash drive and run fdisk. Now that C drive is created reboot. Now format C:. Then run setup.exe from the win98 folder. Windows 98 doesn't need any drivers so it should work on any computer, but you'll be stuck with VGA 16 color graphics. USB legacy support will be needed in the BIOS if you have a USB keyboard or mouse. You can install Windows to the same flash drive that you just booted from. You can also use the hard drive in the computer in place of the flash drive. Just follow the same directions but make the hard drive bootable to DOS rather than the flash drive.

In any case once you have DOS installed it's a simple matter of running setup.exe from the win98 folder that was copied over. Even 32-bit Windows XP and earlier can be installed the same way from within DOS by running winnt.exe /b from the i386 folder.

| improve this answer | |
  • upvoted, thanks! – tabdiukov Jun 30 at 9:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.