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.
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).
– phuclv – 2016-11-14T01:42:25.187The 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@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