Jump to content

dual booting DOS and Win7


Recommended Posts

Well, maybe that tutorial said something slightly different and you don't remember it exactly.

This behaviour of BOOTMGR is not among the "most known" things, and as a matter of fact it has been AFAICR hinted for the first time here:


till then everyone was convinced that BOOTMGR loaded NTLDR (i.e. that an entry in \boot\BCD for the "previous OS" was needed) and that NTLDR loaded the BOOT.INI choices.

Further experiments confirmed that instead BOOTMGR reads directly BOOT.INI but selectively "chooses" only non-arcpath entries. :)


Link to comment
Share on other sites

Thanks Jaclaz, I'll have a look at the MSFN thread you have indicated.

Maybe, has this anything to do with what described in the following pages (still under construction)


really I cannot understand you.

If you have a question, ask it :), but it has to be a definite question, my ESP powers are at a very low level, and my crystal ball is AGAIN :( in the shop for maintenance and tuning.

What is "this"? :w00t:

What is "what is described in the following pages"?


Link to comment
Share on other sites


I meant that following the Win7 installation, an (already) existing FAT32 Boot Record results as being modified !

And this is pretty new for me.


Well, if you think a bit about it is "only too logical". :unsure:

The tasks that traditionally the bootsector (or PBR or VBR) code should perform is:

  1. set/check some parameters (the BPB or Bios Parameter Block)
  2. call/invoke the loader or system file (possibly passing to it some of these parameters)

it is evident that the bootsector code for each Operating System that uses a different loader or system file will be different:

  • all DOS bootsectors invoke IO.SYS
  • all FreeDOS bootsectors invoke KERNEL.SYS
  • all Windows NT up to XP/Server 2003 invoke NTLDR
  • all Windows NT starting from Vista :ph34r: invoke BOOTMGR

If you check the comparison here:


attentively you will see that the main "human readable difference" is that one has the string "NTLDR" and the other the string "BOOTMGR", there are other few differences in the BPB, and this is "normal", and as well there are some little differences in the CODE, but it is clear that one is an adaptation of the other pointing to a different system file.

The "problem" is that many years ago (with NT 3.x) the good MS guys decided that the TWO different operations that were required to make a bootable FileSystem in DOS:

  1. FORMAT <- create the filesystem bootsector, including the BPB BUT without writing any CODE
  2. SYS <- write the CODE to the bootsector AND transfer to the filesystem the system files (historically, i.e. up to DOS 6.22 in a given order)

which were already "merged" into the single "FORMAT /S" command somehow *needed* to be merged into the single FORMAT command :w00t:.

Of course they didn't really merged all of the SYS command functions :no:, but only the writing of the CODE to the bootsector.

So, any filesystem created with the FORMAT command under any DOS has NOT any CODE in the bootsector, whilst the FORMAT command under any NT based system includes some code, which is different in different versions of the NT OS.


Edited by jaclaz
Link to comment
Share on other sites

Thanks Jaclaz.

Actually, while reading the article I was so pernickety at the point I promptly saw the difference between the two strings NTLDR/BOOTMGR in the 2 cases.

Thanks again for your clear explanations, though.


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...