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

18
  • Why don't you just use separate 3 VM's?
    – DavidPostill
    Nov 13, 2016 at 17:06
  • 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
    Nov 13, 2016 at 17:12
  • The Goal is a triple-boot
    – 1w3j
    Nov 13, 2016 at 17:18
  • 1
    Why 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
    Nov 13, 2016 at 17:30
  • 1
    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
    Nov 13, 2016 at 22:57

3 Answers 3

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.

4
  • Sorry, I mistyped the 1GB computer sentence. I was referring to the RAM.
    – 1w3j
    Nov 14, 2016 at 17:04
  • 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
    Nov 14, 2016 at 17:48
  • 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
    Nov 14, 2016 at 18:06
  • 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
    Nov 18, 2016 at 4:58
-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

7
  • 1
    4GB 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
    Nov 14, 2016 at 0:47
  • Sorry. It's been a long time since Ive used inferiorOS. Edited.
    – user657451
    Nov 14, 2016 at 1:37
  • 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
    Nov 14, 2016 at 2:14
  • 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
    Nov 14, 2016 at 2:22
  • "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
    Nov 14, 2016 at 2:31
-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.

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
    Feb 18, 2017 at 23:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .