Jump to content

Windows 98SE From USB?


legacyfan

Recommended Posts

I'm working on a new project to get windows 98 running on a usb flashdrive and I was wondering what the best way to go about this is in pretty new to this kind of thing and if anyone could help with this it would be much appreciated (also I'm planning on using 98se for the test)

Edited by legacyfan
Link to comment
Share on other sites

  • legacyfan changed the title to Windows 98SE From USB?

What happens when you install the USB drivers for Windows?

Booting Win98 from USB uses BIOS to provide the USB drive as drive C:. When you install USB drivers, it will cause problems.

So, you could just never use USB.

But if you have enough memory,

- You could setup Win98se on the computer, drivers and all

- Reduce it in size, unless you have a lot of memory

- Create a harddrive img or vhd file large enough to hold your Windows install.

- Use Virtualbox or something to make the harddrive image a system disk, using a Win98 floppy image. (Create one from your install, if you installed any update that modified MsDos 7 Boot files.)

- Copy you Windows installation to the harddrive image. (Do not overwrite MsDos 7 boot files.)

- Format your USB drive as FAT32.

- Install Grub4Dos to the USB drive.

- Then configure Grub4Dos to enable USB support and boot the Win98 harddrive image from memory.

Every time you shutdown any changes will be lost. You can get around this by installing the HxD hex editor, and using it to copy the entire drive image to a new file. You do this "while" Windows is running. Then you swap the saved image with the new one you just created. You do this before shutdown or reboot.

Some changes try to reboot Windows when they are finished. Like installing DirectX. Most of the time you are given a prompt, with an "OK" button. Run HxD and save the image before clicking the "OK" prompt. If you are given no prompt, you'll need to modify your harddrive boot image to start in Safe mode, on next boot. Then boot the harddrive image in VirtualBox or something. Finally, install whatever caused a reboot without prompting you first.

As an additional tip, use or create portable applications. Also install those portable application to you USB drive, not the Windows harddrive image. That is, unless you have a huge amount of memory. You'll want to set a permanent drive letter for you USB drive, from the Drive's "Device Manager" properties.

You'll probably want to move the default Windows and Dos temporary folders to a folder on the USB drive. Again, you'll want to assign a permanent drive letter to your USB drive

You'll also have to decide if you want you Virtual memory enabled or not. It saves room on the harddrive image if you disable it.

Drive C: will be running in "Dos Compatibility Mode". But it won't really matter.

If you get a warning about your boot sector potentially being infected/corrupted, it is because you booted the image by it's partition and not as the drive. Nothing is wrong. Grub4Dos creates fake boot data to initiate the boot.

Link to comment
Share on other sites

I thought of another option. You could use a USB add-on card or PCMCIA. Then you could have the bios booting USB host disabled in Windows. But the add-on USB would provide you with active USB support. It isn't pretty, but it would be easier.

Link to comment
Share on other sites

Other considerations, with live harddisk images of Win98.

You can also use a Fat16 formated disk image. Then you can used DoubleSpace with extreme compression. Afterwards, you could create a smaller Fat16 image for the smaller footprint. The disadvantage is that, the live image runs over INT13, in "Dos Compatibility Mode". This means that Windows cannot relocate DoubleSpace to higher memory. In turn you would have less conventional memory. This might not be a problem, unless you run Dos games that need plenty of conventional memory.

Alternatively, you can use UPX to compress Windows EXEs and DLLs. You will want to avoid the folder with dos EXEs (Scandisk etc.). Then will not work after compression.

You can create a folder on the USB drive, to keep Windows cab files. This also means cab files from updates. That would also reduce the harddisk image footprint.

-To add more a persistent state-

Keep wallpapers in a folder on the USB drive. I name one Wallpaper.xxx and set is as the Windows background. Now when a different wallpaper is desired, in can just be names Wallpaper.xxx (BMP/JPG). Which ever image format used, would need to adhered to.

Created a batch file, on the USB drive, for start up applications. Then placed a shortcut, to it, inside the Windows startup folder.

For any portable applications create a folder, on the USB Drive, with Start Menu like shortcuts and folders inside it; something like Portable Apps. Then add a command, to the startup batch file, that copies the folder to the Windows Start menu folder.

Link to comment
Share on other sites

98 should work just fine on a USB stick, though it may depend on the hardware (motherboard), try following this, the only mod needed is MaxPhysPage value in system.ini and starting the setup with a particular set of parameters from DOS:

https://www.youtube.com/watch?v=5Qd7cDbtwj4

setup /c /it /p a;b

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

I recommend getting something simple to work first, even if the thumb drive is in compatibility mode. Then add Smartdrv. Fat16+DriveSpace and ram disks are other options. I've been thinking for over a decade about running 98se from a thumb drive and have lots of ideas.

Link to comment
Share on other sites

It certainly can be done. Just gotta pick your poison. I suppose the issue for some people, is portability. Depending on the OS configuration, some machines may not care to boot it. Using Hiren's minimal Windows 98 as an example, it goes to show that a high rate of compatibility can be achieved.

Link to comment
Share on other sites

3 hours ago, jumper said:

Win98 installations support multiple hard configurations. Is there a way to select pre-launch which will be used?

I'm sure there are ways. For me, I would just disable GUI boot in MSDOS.SYS. Then you could use a Dos boot menu with options for different configurations. Each option would, by batch, modify your "active" hardware profile. It would do so by using the Dos registry tool. You could also ignore the profile and just modify which hardware needs to be enabled/disabled. 

 An issue arises, if you have a machine without BIOS USB to Serial Keyboard emulation. The boot menu would do you no good. In that situation, you could load both a floppy and harddisk image. Transfer your MSDOS.SYS, CONFIG.SYS, and AUTOEXEC.BAT to the foppy image. The floppy would carry the batch for system configuration, or AUTOEXEC.BAT would run one on the Hardisk. But you would need a floppy image for each configuration. Then you could just use a bootloader with USB keyboard support.

Link to comment
Share on other sites

Alternatively, you could just have the batch swap out SYSTEM.DAT files. But that would mean any registry update, you saved, would need to be committed to each "hardware configuration" SYSTEM.DAT file.

Another one of those, pick your poison things.

Not that you would often need to save new registry setting, if the system was fairly complete in configuration. That is where making portable apps comes in handy. They also make new system setup handy. If they are homemade portable apps, you can just make sure to put them in the same location as when they where created; and done. The exception being software with VXD files, or anything that needs to be activated during Windows boot; this rather then at application execution.

Link to comment
Share on other sites

  • 5 weeks later...

I have had problems, using HxD, to save RAM images over 350Mb. When using Grub4dos, the error is "Stream Read Error". With Grub2/Memdisk(from Syslinux), there is no error. But when you boot the saved image, there is filesystem corruption.

I'm not entirely sure it is the size of the image, causing the problem. It could be specific machines. I haven't investigated it very much.

A work around is a Dos USB/Fat32 drive and Partition Saving. This won't work, if the available Dos USB drivers don't work for your machine. There  are some good Dos USB drivers out there. But even the "demo" Dosusb drivers operate long enough, to do a back-up.

Note:These drivers don't work with "EMM386".

The other problem, is that Partition saving adds a very small header. It needs to be cut off, after saving.

If your machine has no PS2 keyboard support, you may have to add a batch file to "C:\Windows\Dosstart.bat". "Partition Saving" can be automated through a configuration file. Then you just exit to Dos, and your batch handles it for you.

Note:If you have prevented Windows from installing a Driver, for a specific USB, your BIOS PS2 Emulation may still work.

Link to comment
Share on other sites

  • 4 weeks later...

I really should have started my own thread, about running from USB. For my part, it's running from memory; but booted from USB.

I run most Win9x systems this way, but not always booting from USB.

This is just another note/update.

I recently ran into, on and off, blue screen parity errors. On this particular machine, I was using memdisk (Syslinux) with Grub2. It could've been an issue, with the shared Video memory. It is fixed in BIOS at 32mb. I think it was more likely something to do with how Windows/Himem.sys calculates available memory, when using some memory for a HardDisk image.

The machine has 1.5gb of RAM. The disk image is 300mb (on the dot). When Windows did successfully load, it would report around 1200mb of memory. After loading, there does not seem to be any stability issues. There is probably some hardware/software initializing sequence, that determines the pass or fail. My assumption would be that this is "more" related to my hardware's initialization. By the time Windows gets a chance to load, the difference between pass or fail has likely already been set.

Several memory sticks were swapped out. Some 512mb and others 1Gb. I never tested with only the built in 512mb (this is a laptop). Memory tests cleared the memory as healthy. I am running with Rloew's memory patch.

The solution has been to set "MaxPhysPage=", in SYSTEM.INI, and under the "[386Enh]" section. When you figure the amount to set, the drive image must be included in your calculation. You do not set how much memory you expect to see reported in "System Properties". You set that amount, plus the HardDisk image amount. Take the total desired amount, in megabytes, multiplied by 256 and converted into hexadecimal.

There is now no occasional parity error, and I have near total memory available. I wasn't sure it that was going to be the case. I started with a setting well below the total amount, and then worked my way up. As this is a live HardDrive image, I could've saved and booted the "live" image, after each adjustment. I just used Qemu, from the live environment, and booted the stored image file to Dos. The Dos text editor provides a quick modification path, to "SYSTEM.INI". This saves on USB writes and time.

There may be a different solution. For now, this seems to work great.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...