I probably should start by explaining what I think might have lead to misunderstandings. I was not careful enough to give enough details on what exactly I have done. This is the hopefully better version:
I have installed Windows 98 SE to E:\WINDOWS when asked by the installer where to intall (default C:\WINDOWS). That will put everything that otherwise lands in C:\WINDOWS now on a different partition. The same goes for files and folders in C:\Programme (German version) which will land in E:\Programme. But the files
that the installer puts into the root end up in the root of C:. Theses are things like a lot of *.log, setup.1st, bootlog.txt, backups of files that were there origionally like msdos.sys (now called msdos.dos), command.com (now called command.dos) and so on. Most important are the new files io.sys and msdos.sys. These are necessary to launch E:\WINDOWS\win.com. So strictly speaking, the BIOS reads the MBR, the MBR looks for a single primary bootable partition and if successful, it reads the boot sector of that primary partition. That boot sector looks for files called winboot.sys or io.sys in the root of the same primary partition where it (boot sector) came from. In case of certain (default may be OK) configurations of msdos.sys I think there is need for config.sys, command.com or autoexec.bat to be able to continue. Io.sys will find the path to win.com from msdos.sys and Windows will start.
Short: I have been able to start Windows 98 SE (installed on a logical drive that sits in the last 2 GB of a 250 GB hard drive) in an attempt to check if it is possible. But I have used a primary bootable partition with two files C:\io.sys and C:\msdos.sys to achieve that goal.
Shorter: I boot from C: to start Windows on E:.
I don't know if any of my previous posts were misleading in a way that makes it look as I have "booted" from logical drive E: without using any startup files on primary C:.
In my defense I quote my initial post#1 from the start of the thread:
Most (maybe all) OS for PC run well when they are installed on a logical drive and I boot from a matching DOS floppy. So I thought maybe they also run well when booting from a small primary DOS partition
Actually there were a lot more files on C: when I did it. Next experiment was to use a spare primary partition to exclude side effects caused by ntldr loading bootsect.dos (512 bytes) to see if it is still possible. In my case ntldr actually is instructed to load a file called C:\SECTOR\msdos710.bin. I didn't think ntldr would influence the basic possibilities, but I checked anyway. Also I have checked that a floppy with only two files can start this installation on E:. In both cases only two files were able to do it. For completeness let me mention that io.sys is unpatched and original, and this is the content of msdos.sys:
; edited by Wolfgang Bernady
; This version is for MS-DOS 7.10 (Windows 98 SE)
The only DOS version that in my experiments was able to go straight from MBR code to a logical partition was PTS-DOS 32
. I think it uses a special IPL inside the MBR to boot DOS from a logical drive, in my case that was E: again. Unfortunately the demo version of PTS-DOS has got a nasty delay of 60 seconds when it boots and I have not felt overly keen on doing much with it. But it surely boots from a logical drive.
Can you verify by booting the last official Dos (6.22?) floppy to see if your fat16 partition, created by Win98E, can be seen by it?
MS DOS 6.22 can not see that particular partition, nor can it see the other partition which was between 12 and 14 GB. Furthermore DOS 6.22 was only able to see my DATA partition (physically first logical drive, sits between 2 and 4 GB, FAT16) after I have changed the 5th byte (partition ID) of the extended partition from 0F hex (Extended LBA) to 05 hex (Extended). Even then it could still not see the 12-14 GB partition nor the 248-250 GB partition (BTW both are type 06 hex FAT16, not type 0E hex). That would have been something. Maybe I could try and use NTFS4DOS
to find out what happens then.
As for USB pen drives, SD cards, CF cards (I have no other media), I really don't know. But I think you are right that the manufacturers choose FAT16 for compatibility with DOS. This makes me think of a USB format
tool, that I have seen recently. It offers FAT, FAT32 and NTFS filesystems for pen drives.
My puzzle is if a MS system can survive as a "stand alone" OS in a logical partition how does it boot itself? Everything about its MBR say it cannot be done.
Sorry, my mistake. It needs a floppy, CDROM, USB boot stick, bootable SD card, network or a small primary hard disk partition to boot first, as far as I know only PTS-DOS 32 boots itself on a logical drive.
Untested: if all partitions located in front of our logical drive are hidden, and Windows was installed to C: then you can probably do without msdos.sys. I think that the paths will default to C:\WINDOWS. So if I install Windows 98 to C:\WINDOWS (primary partition), and copy all the files to the first visible logical drive, and hide the primary partition, (or just convert the primary partition to a logical drive) then I could have a way to lock the computer by taking the boot floppy out. Actually I can think of ways to do that with Win2000, WinXP as well, maybe even Vista, but I don't have Vista. I'm getting carried away here.
The Microsoft Knowledge Base page is currently not available, I will have to look it up later.
I find it very interesting what you write about multiple Windows installations on the same drive. I have a collection of tools that I keep on D:\Tools32 and with some of them I have *.reg files to quickly reinstall/repair their configuration. One of my reasons to keep OS separate was that I was unable to install Win95 to eg E:\WIN95 with programs in E:\Progs95 and parallel to that install Win98 to E:\WIN98 with programs in E:\Progs98. The installation was possible, but I could not figure out how to separate the according %ProgramFiles% folders. That's why I chickened out and ended up with installing unproblematic tools to D: drive and Office or other stuff installed twice on separate E: partitions. Have you got any hints to offer on how one could force Win98 to create and use a folder named Progs98 instead of Programs? It should be possible, because on my installation it is called Programme (long file name with PROGRA~1 as DOS name).
The tools in D:\Tools32 actually work very well even on BartPE and the reg files offer quick and dirty installation. I guess in your case that would be the same with BartPE. I have only a small number of tools that I use like that: file manager, text and hex editors, and a few tiny apps that require no installation. I find it most interesting to hear that it has worked for you over a long period of time. Years back when I tried multiple OS one the same drive I noticed that some programs, when you install them inside one OS, and execute them inside the other, they seem to "repair their installation" (ie create the missing registry entries) and work well afterwards. Other times, I installed the same program for both OS into the same folder. But eventually I gave up, because I was not comfortable any more. Nowadays where hard disks are large, it matters little, but back then it did hurt to waste so much space.
... according to whatever I've read you shouldn't be able to do either, and that's obviously wrong.
I'm glad to see that I am not alone. I regard my computer as a toy, I take it apart and put it back together again as I please. And when somebody says "You are not supposed to do ..." I find myself quite often in the process of checking what happens, if I don't listen.
I have to add that the ever present threat of "data corruption" or "data loss" is no problem, as I can not loose anything valuable (I backup my files, then backup my backups, then check if all the backups are ok, then I start experimenting). Also I found that the frequent "data losses" that are happening here are no losses at all. I only loose access to files, partitions and so on, because that is what partition hiding is all about. I know what bytes I change in the partition table to hide or delete partitions, and when I change the bytes back these partitions are unhidden or undeleted. The data itself remains untouched.