How to triple-boot Windows 95, 98 and ME in a VM?

1

NOTE: I'm obliged to make it triple-boot this is for college exam purposes

Didn't find similar questions over the internet.

I tried these steps on a VM:

  1. Install Windows 95
  2. Install Windows 98
  3. (Third but never reached) Install Windows ME

By the moment when installing Win 98 it appears the following (I will edit this later):

Setup Detection Message

not allowing to finish the installation.

The configuration of the VM is this:

  • Hard Drive 20GB
  • SATA Controller
  • 1024 MB RAM
  • 3 Primary Partitions (The size of each one is correct)

I flag the partition where the OS will be installed as active using the fdisk command.

I set the partitions up with the MiniTool Bootable Partition Wizard.iso

Each Partition is formatted with FAT32 file system

TOOGAM responses:

1) My college and the class -> 10 reputation matters

2) I'm using MiniTool Partition Magic Wizard bootable the ISO disc (It requires a 64 bit architecture) So this is the configuration I used to have:

VM config on Minitool Partition Magic Wizard

3) There are no restrictions. I didn't specified what the whole project is about: Install these OSes on a single physical hard drive:

  • Windows 95
  • Windows 98
  • Windows ME
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 8
  • Windows 10
  • Ubuntu
  • Windows Server 2008
  • Windows Server 2012
  • Debian
  • CentOS
  • Mac OSX
  • Solaris

I did this question since the 95, 98 and ME installation were impossible to get, so I just skipped those OSes. The reason I am doing this on a VM is for practicing, then I have to do it on a 128 GB HDD I just bought, every OS has points that will sum on my final score. I can just skip these OSes but I don't want it to.

The teacher said 1GB RAM on a computer would be enough to accomplish this project. I actually don't know if the architecture matters if I'm going to install 95, 98, ME alongside the other OSes.

The only requirement I just remembered is to avoid sub-menus on the boot loader menu. It means, (if I'm using GRUB) no Windows Boot Manager as an option. I searched some third-party boot loaders like rEFInd or BURG, any of them didn't remove the WBM option. I also know how to change the Boot Configuration on BIOS and that is mandatory to turn off the Legacy Mode and Secure Boot.

Lưu Vĩnh Phúc response:

If I press Enter on the red selected option It will show another menu for selecting a Windows OS. It would lessen me 5 points!:(.

GRUB with Windows boot loader option

1w3j

Posted 2016-11-13T17:03:43.727

Reputation: 125

Why don't you just use separate 3 VM's? – DavidPostill – 2016-11-13T17:06:08.513

many modern mainboards don't support windows 98 due to lack of drivers and many other issues. I assume the same thing with virtual machines – phuclv – 2016-11-13T17:12:14.360

The Goal is a triple-boot – 1w3j – 2016-11-13T17:18:45.643

1Why exactly is "the goal" a triple boot? None of those systems were designed to coexist in the first place and as a minimum you would need a third-party boot manager. Hint: you would need to split the vm hard disk into a minimum of three partitions, then set the first as the active partition and install your first OS. Then deactivate the first partition, activate the second and install your second OS, same for the third. The you need a third party boot manager like BootMagic or possibly a Linux grub loader. It's way easier to just use 3 VMs unless you *really* like pain. – Mokubai – 2016-11-13T17:30:55.663

I know is completely a bad idea, but since it is my fifth cycle final exam I need to get it. I do followed all the set-active steps as you mentioned ("I flag the partition where the OS will be installed as active using the fdisk command.") – 1w3j – 2016-11-13T17:56:15.743

Looking at the error message you mention when installing WIN98, it references Windows ME - are you sure the error message does not appear when installing Windows ME..? – Jim Nielsen – 2016-11-13T18:54:02.737

You should edit your question & add an explanation for your requirement for a triple boot VM - i.e. "it's for a test/exam/college" otherwise everybody will just tell you to do it in 3 VMs. – Tetsujin – 2016-11-13T20:06:28.787

@Jim Nielsen: You are right, but the same warning message shows W98 I'm slightly sure. I took that W. Me screen capture when I had the Windows 95,98,Me Virtual Machine, now i deleted that VM and started working on the other part of my exam which is installing 10 more OSes. Anyway, I'll edit my question and upload the W98 warning again. – 1w3j – 2016-11-13T21:59:58.427

How interesting, that a class would have you do that today. I can probably resolve this for you, but may need to ask many questions along the way. First, though it doesn't help you, I wonder what the name of the school and class is. Second, and this may help you more, please specify the partition ID types that you are using. Third, what are the requirements? Are you allowed to have a third party boot manager at the end? A full understanding of every requirement may be needed. 4th: Did the teacher show you this? 5th: I suggest 256 MB RAM. Win9x can freak out w/ 2GB, 1.5 GB, maybe 1GB – TOOGAM – 2016-11-13T22:57:26.943

@TOOGAM Im editing my question. – 1w3j – 2016-11-13T23:14:54.523

Ok I need at least 10 reputation to post at least 2 links, can anyone help? lol – 1w3j – 2016-11-13T23:56:29.990

Drat. The prohibition of multiple boot menus will reduce your options. (Otherwise, I could get Win95 and Win98 to share a single primary partition. The Win98 boot loader can let you choose between them. But, that would be a separate menu...) How many hard drives are you allowed to use? (Some boot loaders can boot off a 2nd hard drive, at least with some cooperating BIOSes.) – TOOGAM – 2016-11-14T00:56:10.280

This may help you: How to install 145 operating systems on one PC. Note that windows 95 and 98 are so old that they might not support SATA. Better make it an IDE. They also don't support more than 384MB RAM (IIRC). The only requirement I just remembered is to avoid sub-menus on the boot loader menu. It means, (if I'm using GRUB) no Windows Boot Manager as an option what's that mean. Windows boot loader doesn't support sub menu like Grub, and even Grub needs WBM to chain load Windows

– phuclv – 2016-11-14T01:42:25.187

@TOOGAM Only one HDD is allowed – 1w3j – 2016-11-14T01:46:10.360

@Lưu Vĩnh Phúc My VMs have IDE controllers I'll consider it by the moment I'm making this on physical. About the Grub mention I'll edit my question. PD: the digg.com link does not work – 1w3j – 2016-11-14T01:57:10.050

what exam is that?! – barlop – 2016-11-14T02:00:37.393

A very head scratching one, Here it is said, that no one completed the fifteen OSes. The course is called Computer Architecture. – 1w3j – 2016-11-14T02:28:00.080

so you want to Windows boot loader to show a menu, not that you can't use WBM and must avoid it, because you have to use it. Just need to edit boot.ini and BCD store to make it one entry only or something like that – phuclv – 2016-11-14T16:47:27.360

Answers

2

Possibilities

First of all, let me declare that it is possible to have over a half dozen operating systems on one PC.

I haven't done the exact assignment you're describing. I've done close to it. (Back in the day, I crammed numerous operating systems onto one hard drive.) At that time, I learned about many of the requirements. So I do have some good idea of what I'm talking about.

A complete guide would be too extensive for a single SuperUser answer. In this answer, I provide some pointers. Feel free to ask more questions (including creating entire new SuperUser questions) as useful. (Also, make comments @TOOGAM to get my attention, if you like.)

Impossibility

The teacher said 1GB on a computer would be enough to accomplish this project.

I see Windows 10 is part of the list that you added. Official system requirements specify that operating system requires 16 GB of space, all to itself. So, you're not going to get that done in 1 GB. My C:\Windows is currently 17.3GB (and is using Windows 10, version 1607).

Of course, if you make hardware too large/capable/new, you may exceed limits imposed by some older operating systems.

CPU requirements

Windows Server 2012 requires 64-bit CPU.
Many of the other operating systems support x86 (32-bit) processors. e.g., you mentioned Solaris. Maybe the latest version of Solaris doesn't, but older versions likely do. Older versions are also likely to be smaller (taking up less disk space), and may be more desirable to score points for this particular project.

Each Win9x (Win95, 98, and ME) system needs a 32-bit CPU capable, capable of running 16-bit code. As I noted in a comment elsewhere on this page, that should be possible based on what I learned. Although, if newer x64 chips have optimized away some of the legacy support that I was trained on (or if they ever do in the future), that could be an issue.

Mac OS X was once not designed for x86. However, it since gained some support for x86 hardware. I have a sneaking suspicion that Mac OS X might have some other requirements that may be a bit unusual, so I would look closely at that (meaning, I would research that) before planning/counting on that working. The other operating systems likely all had versions that work with x86 or x64.

One approach: Using OS images

Worst case scenario, this should be doable. Even if that means:

  • Boot straight into an operating system, custom-set up
  • That operating system uses dd= to install the operating system of your choice, and then alters the boot record (e.g., the MBR, though a UEFI/GPT setup might be a bit more complicated), and reboots
  • That would then boot the operating system you desired; it would still be up to you to have that operating system alter the boot process to get back into your "menu" operating system. (As a former instructor, if I gave this assignment, I would be impressed with getting all the operating systems on one disk, and would likely award full points, if:
    • the student didn't ignore some of the instructions... e.g., if I provided a simpler way of doing things
    • the situation thoroughly worked well. I'd be happier to see that if a different operating system was chosen, then the desired operating system got backed up, in case the user made any changes (or the operating system applied any updates), so updates weren't lost.

Now, there may be simpler ways, but as the above shows, in theory, this should all work.

Side-by-side

If you want to have all systems sitting installed on the hard drive at once, that may actually be more challenging (and potentially impossible for some of the combinations).

One of the requirements is to check hardware compatibility. What CPUs are supported? Are there other hardware requirements to note? (Finding minimum requirements is typically rather easy. Finding maximum requirements, like saying that a system doesn't work so well with some newer hardware, may be a little more challenging to come by.)

One step I would make sure to do carefully is to figure out what are the boot requirements of every operating system. Some operating systems are okay with booting from a logical drive, others aren't. Unfortunately, this might not be quite so prominently documented. In my old project, I found out using some experimentation. It'd be great to use another machine (possibly virtual machines) to experiment with, so that you're not destroying progress on your main project as you experiment.

Also, figure out what filesystems each operating system can use. For instance, Windows 95 is basically limited to FAT16, and doesn't support FAT32, although the second release of Windows 95 (most commonly called "Windows 95 Operating System Release 2", or "Win95 OSR2", and maybe also called Win95B) did support FAT32. Newer Windows operating systems will want to support NTFS (and there may be different versions of NTFS). Many other operating systems may support ext2 (especially Linux, but also other Unix-like platforms), but might prefer to at least boot off of a volume that uses its own native filesystem. Figure out what is possible there.

Understand that there are many boot loaders that can load other operating systems. For example, Windows XP / Server 2003 use a boot loader that can specify a file which contains the bytes of a boot sector. Furthermore, it is possible to have one boot loader run another boot loader. This is what grub's configuration file intends by the word "chain". ("chain loading") You may need to specify timeout values, so that some of the later boot loaders are just invisible (even when multiple boot loaders are used).

Hiding Partitions

It may also be useful to change the Partition Type/ID value. e.g.:

  • Figure out the current Partition Type/ID value of a partition. e.g., FAT32 might use 0x0B (or something else, depending on things like disk size)
  • Record the old value of the Partition Type/ID value
  • Change it. e.g., to 0xED.
  • This can be used to effectively hide Win95/98, while you install Win ME
  • Go ahead and install the desired operating system (e.g., Win ME)
  • After installing, revert the partition Type/ID value (e.g., change back from 0xED to 0x08)
  • See if all your Microsoft operating systems still boot well. (Drive letters may change from this process. That might be problematic.)

I suggest trying:

  • Ranish Partition Manager
    • Excellent Partition Manager for DOS
  • or XFDisk (e.g., probably easily accessible as part of a FreeDOS boot disk)
  • Otherwise, I tend to like OpenBSD's fdisk, which can be used by booting an OpenBSD installation CD

The first two of those can install a boot loader, which could be nice, except that I think you might want a more flexible boot loader for your assignment. I'm not recommending them now because of their boot loader, but because I expect them to easily support changing the partition type identifier. Also, the first (RPM) and last (OpenBSD) show boundaries with great clarity. These recommendations are based on some old experiences; if there are some incompatibilities with larger hard drive sizes, I'm not offhand aware of (or remembering) them.

Sharing partitions

It may be possible for some operating systems to co-exist on the same partition. This may work very well in some cases, and not-so-well in others.

Here is an example: Win98 will work with FAT16. So will Win95. (Although, if you have Win95 OSR2, I might be inclined to just use FAT32.) Windows 98's boot process could load Windows 95 files. (This might be done automatically if you first install Windows 95, then upgrade to Windows 98? Although, maybe you need a Windows 98 Upgrade installation disc for that to happen rather automatically?) Basically, the could be as follows:

  • Install Windows 95 to C:\Win95
  • Create a boot disk, so you can make changes without booting to the hard drive. (e.g., use a "floppy disk". Or reliable be able to boot off of CD, and get to a command prompt. Holding F8 or F5 or Ctrl, or maybe Shift and pressing either F8 or F5, might be helpful.)
  • Rename command.com to Win95Cmd.com
  • Rename config.sys to config.w40
  • Run:
    echo SHELL=C:\Win95\Win95Cmd.com >> C:\config.w40
    • Better yet, use a more flexible command line interpreter, like 4DOS, which will work with multiple operating systems. Then, if you accidentally use the wrong CONFIG.SYS, your system will still boot. Use SHELL=C:\4DOS\4DOS.Com (after placing 4DOS there).
  • Rename autoexec.bat to autoexec.w40
  • Rename io.sys to io.w40
  • Rename msdos.sys to msdos.w40
  • Avoid using any of the above filenames ending with .old (e.g., autoexec.old)
  • Also do not use the filename C:\winboot.ini
  • Back up all of those files. If something gets overwritten, it will be far easier to restore if you have a convenient backup. (Just make a copy to C:\SYSBACK\copy1\ or something like that.)
  • Install Windows 98 to another directory (like C:\Win98)
  • Place BootMulti=1 in the [options] section of Win98's C:\MSDOS.SYS (or C:\WinBoot.ini, if you renamed it to that)
  • Also, put BootMenu=1 there.
    • Also, maybe BootMenuDelay=15
    • Using BootMenu=1 will actually be bad for the assignment, as it creates a visible menu, but will be helpful for verifying/testing.
    • Later, you can use BootMenuDefault= and, once that is working as desired, flip BootMenu back to 0.
  • Back up those files again (e.g., to C:\SYSBACK\copy2\ or something like that)

WinME may not be so nice. (Google Search: Automatic running of Windows ME's GUI %windir%\system32\vmm32.vxd 4DOS might be helpful?)

Educational Value

In a day when Windows 10 exists, I question the educational value of toying around with Windows ME. Sure, playing with different operating systems may be more educational than playing the latest video game, but why not include some more worthy contenders, like more BSD operating systems, which might be more useful as technology continues on. The nostalgic part of me would love to spend time doing this, and teaching others how to do this, as I would find that fun. However, when I think about how this would be useful for people's careers, I have to wonder. As a college IT instructor, I wasn't able to come up with a good justification on how it would be useful for the students. Although I don't go to the Professional School of Systems Engineering in a place that mostly speaks Spanish, I imagine that Microsoft's licensing requirements would limit the usefulness of tinkering with some of these operating systems.

If you hit snags, you may want to consider asking the instructor for some guidance, or maybe some negotiation. Maybe successfully implementing another feature may be worth some points.

TOOGAM

Posted 2016-11-13T17:03:43.727

Reputation: 12 651

Sorry, I mistyped the 1GB computer sentence. I was referring to the RAM. – 1w3j – 2016-11-14T17:04:25.727

I have a Hard Drive with 3 primary partitions A,B,C. If Install Windows XP on A, Windows Vista on B and Ubuntu on C. Does A need to have the XP bootloader inside (A)? (The same as VIsta for B and Ubuntu for C) I think GRUB2 finds all bootloaders inside a the Disk where A,B,C are. So,in my GRUB menu I'll find the the bootloaders of A,B and C (XP, Vista, Ubuntu). Does it really works like that? I saw Ubuntu Installer has an option to install the boot manager on different partition ('manager' is different from booloader). What happens If I create another 500Mb partition to store it? Differences? – 1w3j – 2016-11-14T17:48:06.810

From which OS would you recommend me to begin? Should I make partitions and respective formating from the beginning? Is IDE mandatory to use in this project (I have a SATA drive:( )? The Windows Reserved partitions are the same as /boot/efi on Linux? – 1w3j – 2016-11-14T18:06:03.553

If you want Win9x, they have no UEFI support that I know of, so you'll need to use BIOS (or enable BIOS compatibility in UEFI). As a generalization, any OS in any order typically works, so no preference there. If you use BIOS and MBR, you only get 4 partitions in the Master Boot Record; they can be 3 primary partitions plus an extended partition containing more. Best spot for boot loaders are in partitions, so the main boot code (which may be a boot manager) can be replaced without breaking an OS that is in a partition. Unsure about AHCI/SATA, but can use SATA in IDE-compatibility mode. – TOOGAM – 2016-11-18T04:58:17.277

-1

The error tells you clearly. You Need an MSDOS MBR. you said when installing W98 but error message is headed ME? You say "The Size of each one is correct" - list them? W95 and FAT16 is limited to 2GB partitions, and generally 512mb RAM without hacks While 98, FAT32 is theoretically capable of 2TB. Win 98 shares similar memory issues.

Both require IDE connections, without drivers (which may not exist) So check that VBox controller is IDE. (I assume it is if 95 booted). Also 95/98 will never run on x64. Suggest

hda1: msdos pri 4G fat16
hda2: msdos pri 4G fat32
hda3: msdos pri #G ntfs

Then I would install MSDOS7 on hda1, and install 95 over it.

Secondly, (and we're going back a couple of decades here, so excuse if I'm wrong) Windows installs >98 should have the option to "Keep existing OS and install Side-by-side" which will install M$ bootmanager, and give you the list on startup. Once 95 boots, install 98 using above option, but to the second partition, and the same for ME.

Or, if you're allowed to use superior bootloader, check this guy out: http://forums.justlinux.com/showthread.php?147959-How-to-install-and-boot-145-operating-systems-in-a-PC

user657451

Posted 2016-11-13T17:03:43.727

Reputation: 268

14GB partition claim is false. (approximations used here) FAT16 is limited to 4GB, though Win9x's implementation is 2GB. FAT32 should be able to reach 128GB (limited of LBA28; higher than that needs LBA48). – TOOGAM – 2016-11-14T00:47:51.927

Sorry. It's been a long time since Ive used inferiorOS. Edited. – user657451 – 2016-11-14T01:37:05.887

Minitool Partition Wizard does not allow to format on FAT16 mode. I will install it assuming the format command that comes on the windows95.iso will format it that way. PD: For the rest, I'm configuring things as you mentioned. – 1w3j – 2016-11-14T02:14:36.123

Another question came up. Does it really matters if the partitions I'll create must be primary or they can also be logical? Does W95,98Me have any restrictions? – 1w3j – 2016-11-14T02:22:19.307

"FAT16" and "FAT" are the same, that was my bad. FAT does appear as a format option on Minitool Partition Wizard. Also why Install MSDOS7 is so necessary? – 1w3j – 2016-11-14T02:31:27.763

Only NT60 boot loader on Vista and up can boot from logical drives. NT52 on XP and 9x's boot loaders are limited to primary partitions only – phuclv – 2016-11-14T03:03:39.593

I also doubt this statement about Win95/98 never working on x64. Until x64 encounters an Assembly Instruction that places in 64-bit enhanced mode, the x64 chip should be quite happy to switch back into 32-bit legacy mode which can run the 16-bit instructions. (Sorry, my terminology might be slightly off about the names of these modes.) The reason why 64-bit Windows operating systems can't run 16-bit code is because the operating system already places the system in the "enhanced" mode, which drops 16-bit support. – TOOGAM – 2016-11-14T04:10:56.197

-1

I'm glad to come across this post to see that others are interested accomplishing the same thing.

I read that 145 OS article, pretty impressive, although I doubt the guy fully got those OSes working.

What he does is chainloading (using the boot records written into individual partitions /dev/hda6 /dev/hda7 etc ). Most linux distros will not offer this option at installation so you manually need to boot them up or boot a rescue cd up, chroot into them and do an install-grub --force /dev/hda6 etc.

file -s /dev/sda6
/dev/sda6: Linux rev 1.0 ext4 filesystem data,  (needs journal recovery) (extents) (large files) (huge files) < NOT BOOTABLE

file -s /dev/sda8
/dev/sda8: DOS/MBR boot sector < BOOTABLE

Oh yes and for the question of WHY? the answer is because I can and because why not. It's fun to boot up some retro debian potato OS for example and realize all the shortcomings it had or run a nessus vulnscan against windows95.

Also I planning to create a half retro OS / half retro gaming machine, where most of the games are installed/run from Win98 (the best OS for retro games), and yeah why not just use VMWARE for this?

I do, I actually have a 2D capable W98Se retro vm image which can run a lot of games but the gotcha is full OpenGL and full screen (none of them are possible at this point and even if it will be it's more retro to sit in front of an old PC with mechanical clickin' keyboard and play than in vmware on a shiny new Alienware laptop).

I don't think I will make a full guide out of this like the other guy did but here is a good tip for everyone who want to put together mega multiboot systems like this:

Save lots of time and use vmware for the linux BSD part, faster than writing out OSes to rewritable cds/dvds and looking at the install screen there on the old pc for hours.

Simply fire up a stock 32-bit linux vm with a disk (a bit smaller!) than your physical disk in the machine. Do all the installations (eg 100 linuxes on 10GB partitions), configurations, testings in vmware and once you done you boot up your final box from a sysrescuecd and do a:

   nc -p 1234 -l > /dev/sda

Inside your finished vm image you do:

   cat /dev/sda > nc machineip 1234

And have couple of coffees or just go to sleep you have saved more time you could imagine. All the linuxes and BSDs will most likely work identically on your physical pc, except the video drivers but that's something you can always fix. The goal here is to have all the systems boot up and mount up their file systems.

Defiler

Posted 2016-11-13T17:03:43.727

Reputation: 1

Please read the question again carefully. Your answer does not answer the original question. "How to triple-boot Windows 95, 98 and ME in a VM?" – DavidPostill – 2017-02-18T23:54:17.967