Vista MBR vs. XP MBR

T

Timothy Daniels

jorgen said:
As said, the key point is: they all load the boot sector of
the active partition.

So when you install xp after vista, the key point is to
restore the boot sector. If you don't, you can write all
the MBRs you want, they won't fix your problem.

No one has said that only the MBR had to be changed
to "fix your problem". (Please note that it is not I who has
the problem of the inquiring poster.) The point of differing
opinion is whether the *MBRs* of various Windows/DOS
OSes are different. In that respect, you are mostly correct -
they are *usually* the same. I say "usually" because there
is some confusion in the online documentation about Vista's
MBR.

Here at APCmag, the author is clearly of the notion
that Vista's MBR differs from that of XP
(http://apcmag.com/5485/dualbooting_vista_and_xp):

"The Windows XP bootloader gets installed to the MBR
and Vista can no longer boot." [......]

And following the link to
http://apcmag.com/5485/dualbooting_vista_and_xp#restoring ,
we have:

"Restoring Vista and dual booting

"Because you can't use the Windows XP bootloader to boot
Vista, we have to reinstate Vista's bootloader to the MBR
and configure it to manage both operating systems."


This view is seemingly supported by Microsoft's own
online documentation
(http://support.microsoft.com/kb/919529/en-us):

"When you install an earlier version of the Windows operating
system on a Windows Vista-based computer, Setup overwrites
everything from the MBR, the boot sector, and the boot files.
Therefore, the earlier version the Windows operating system
loses forward compatibility with Windows Vista." [.......]

"RESOLUTION
"To resolve these issues, follow these steps.

"Note You can run the commands in the following procedure
by using the command prompt. If you run these commands in
Windows Vista, run them at a command prompt that has
elevated user rights. To do this, click Start, click Accessories,
right-click the command-prompt shortcut, and then click
Run as Administrator.
1. Use Bootsect.exe to restore the Windows Vista MBR and
the boot code that transfers control to the Windows Boot
Manager program. To do this, type the following command
at a command prompt: Drive:\boot\Bootsect.exe /NT60 All"


But it turns out that "bootsect.exe" just restores the boot sector
unless the option "/fixmbr" is added. Alone, "bootsect.exe"
defaults to "bootsect.exe /fixboot". (See the following webpage:
http://neosmart.net/blog/2007/bootsectexe-modifies-the-bootsector-not-the-mbr/ ).
The following reason is offered in the article for the disparity:

"The source of all this confusion is that during the Longhorn/Vista
beta program, quite a number of builds were shipped with a
version of bootsect.exe (originally dubbed `fixntfs.exe`) that
modified both the MBR and the bootsector."

So at one time, the MBR of Vista differed from the pre-Vista MBRs,
but when Vista was finally released, it had the old MBR. This site
offers a breakdown of the "bootsect.exe" command syntax if you're
interested:
http://thevistaforums.com/index.php?autocom=ineo&showarticle=32 .

The usual source of "bootsect.exe" is the recovery section of the
Vista installation DVD. But if you don't have the Vista installation
DVD, it turns out you can also get it from the free download of
VistaBootPro at http://www.vistabootpro.org/ (where the Download
link is at the bottom of the webpage).

*TimDaniels*
 
S

Sami Laiho

Just to correct you must not mix the two commands: bootsect.exe and
bootrec.exe.

BOOTREC.EXE is the one with the parameters /FIXMBR, /FIXBOOT and /REBUILDBCD

Regards,

Sami

Timothy Daniels said:
jorgen said:
As said, the key point is: they all load the boot sector of
the active partition.

So when you install xp after vista, the key point is to
restore the boot sector. If you don't, you can write all
the MBRs you want, they won't fix your problem.

No one has said that only the MBR had to be changed
to "fix your problem". (Please note that it is not I who has
the problem of the inquiring poster.) The point of differing
opinion is whether the *MBRs* of various Windows/DOS
OSes are different. In that respect, you are mostly correct -
they are *usually* the same. I say "usually" because there
is some confusion in the online documentation about Vista's
MBR.

Here at APCmag, the author is clearly of the notion
that Vista's MBR differs from that of XP
(http://apcmag.com/5485/dualbooting_vista_and_xp):

"The Windows XP bootloader gets installed to the MBR
and Vista can no longer boot." [......]

And following the link to
http://apcmag.com/5485/dualbooting_vista_and_xp#restoring ,
we have:

"Restoring Vista and dual booting

"Because you can't use the Windows XP bootloader to boot
Vista, we have to reinstate Vista's bootloader to the MBR
and configure it to manage both operating systems."


This view is seemingly supported by Microsoft's own
online documentation
(http://support.microsoft.com/kb/919529/en-us):

"When you install an earlier version of the Windows operating
system on a Windows Vista-based computer, Setup overwrites
everything from the MBR, the boot sector, and the boot files.
Therefore, the earlier version the Windows operating system
loses forward compatibility with Windows Vista." [.......]

"RESOLUTION
"To resolve these issues, follow these steps.

"Note You can run the commands in the following procedure
by using the command prompt. If you run these commands in
Windows Vista, run them at a command prompt that has
elevated user rights. To do this, click Start, click Accessories,
right-click the command-prompt shortcut, and then click
Run as Administrator.
1. Use Bootsect.exe to restore the Windows Vista MBR and
the boot code that transfers control to the Windows Boot
Manager program. To do this, type the following command
at a command prompt: Drive:\boot\Bootsect.exe /NT60 All"


But it turns out that "bootsect.exe" just restores the boot sector
unless the option "/fixmbr" is added. Alone, "bootsect.exe"
defaults to "bootsect.exe /fixboot". (See the following webpage:
http://neosmart.net/blog/2007/bootsectexe-modifies-the-bootsector-not-the-mbr/ )
.
The following reason is offered in the article for the disparity:

"The source of all this confusion is that during the Longhorn/Vista
beta program, quite a number of builds were shipped with a
version of bootsect.exe (originally dubbed `fixntfs.exe`) that
modified both the MBR and the bootsector."

So at one time, the MBR of Vista differed from the pre-Vista MBRs,
but when Vista was finally released, it had the old MBR. This site
offers a breakdown of the "bootsect.exe" command syntax if you're
interested:
http://thevistaforums.com/index.php?autocom=ineo&showarticle=32 .

The usual source of "bootsect.exe" is the recovery section of the
Vista installation DVD. But if you don't have the Vista installation
DVD, it turns out you can also get it from the free download of
VistaBootPro at http://www.vistabootpro.org/ (where the Download
link is at the bottom of the webpage).

*TimDaniels*
 
T

Timothy Daniels

Sami Laiho said:
Timothy Daniels said:
jorgen said:
Timothy Daniels wrote:

Oh! Just Windows/DOS. OK, so talk about just
Windows/DOS MBRs. Even just for them, the MBRs
are different.

As said, the key point is: they all load the boot sector of
the active partition.

So when you install xp after vista, the key point is to
restore the boot sector. If you don't, you can write all
the MBRs you want, they won't fix your problem.

No one has said that only the MBR had to be changed
to "fix your problem". (Please note that it is not I who has
the problem of the inquiring poster.) The point of differing
opinion is whether the *MBRs* of various Windows/DOS
OSes are different. In that respect, you are mostly correct -
they are *usually* the same. I say "usually" because there
is some confusion in the online documentation about Vista's
MBR.

Here at APCmag, the author is clearly of the notion
that Vista's MBR differs from that of XP
(http://apcmag.com/5485/dualbooting_vista_and_xp):

"The Windows XP bootloader gets installed to the MBR
and Vista can no longer boot." [......]

And following the link to
http://apcmag.com/5485/dualbooting_vista_and_xp#restoring ,
we have:

"Restoring Vista and dual booting

"Because you can't use the Windows XP bootloader to boot
Vista, we have to reinstate Vista's bootloader to the MBR
and configure it to manage both operating systems."


This view is seemingly supported by Microsoft's own
online documentation
(http://support.microsoft.com/kb/919529/en-us):

"When you install an earlier version of the Windows operating
system on a Windows Vista-based computer, Setup overwrites
everything from the MBR, the boot sector, and the boot files.
Therefore, the earlier version the Windows operating system
loses forward compatibility with Windows Vista." [.......]

"RESOLUTION
"To resolve these issues, follow these steps.

"Note You can run the commands in the following procedure
by using the command prompt. If you run these commands in
Windows Vista, run them at a command prompt that has
elevated user rights. To do this, click Start, click Accessories,
right-click the command-prompt shortcut, and then click
Run as Administrator.
1. Use Bootsect.exe to restore the Windows Vista MBR and
the boot code that transfers control to the Windows Boot
Manager program. To do this, type the following command
at a command prompt: Drive:\boot\Bootsect.exe /NT60 All"


But it turns out that "bootsect.exe" just restores the boot sector
unless the option "/fixmbr" is added. Alone, "bootsect.exe"
defaults to "bootsect.exe /fixboot". (See the following webpage:
http://neosmart.net/blog/2007/bootsectexe-modifies-the-bootsector-not-the-mbr/ )
.
The following reason is offered in the article for the disparity:

"The source of all this confusion is that during the Longhorn/Vista
beta program, quite a number of builds were shipped with a
version of bootsect.exe (originally dubbed `fixntfs.exe`) that
modified both the MBR and the bootsector."

So at one time, the MBR of Vista differed from the pre-Vista MBRs,
but when Vista was finally released, it had the old MBR. This site
offers a breakdown of the "bootsect.exe" command syntax if you're
interested:
http://thevistaforums.com/index.php?autocom=ineo&showarticle=32 .

The usual source of "bootsect.exe" is the recovery section of the
Vista installation DVD. But if you don't have the Vista installation
DVD, it turns out you can also get it from the free download of
VistaBootPro at http://www.vistabootpro.org/ (where the Download
link is at the bottom of the webpage).

*TimDaniels*
Just to correct, you must not mix the two commands:
bootsect.exe and bootrec.exe.

BOOTREC.EXE is the one with the parameters
/FIXMBR, /FIXBOOT and /REBUILDBCD

Regards,

Sami

Thanks, Sami. I had missed that. These are the paragraphs that Sami
refers to in
http://neosmart.net/blog/2007/bootsectexe-modifies-the-bootsector-not-the-mbr/:

"The problem that most people seem to be having can be traced
back to single, simple fact: bootsect.exe does not modify the MBR:
it only fixes/repairs the bootsector of your Windows Vista partition.
The MBR is like a "global bootsector" that tells the BIOS where in
the hard-drive it should look for a bootloader. The bootsector, on
the other hand, is like a partition-dependant MBR - each operating
system can have its own bootsector to tell your system how to boot it.

"The source of all this confusion is that during the Longhorn/Vista
beta program, quite a number of builds were shipped with a version
of bootsect.exe (originally dubbed `fixntfs.exe`) that modified both
the MBR and the bootsector.

"However, in the Windows Vista RTM build and Longhorn Server
builds following that, bootsect.exe is a command-line utility used to
repair the bootsector and only the bootsector - it won't get your
MBR to use the Vista BCD/Bootmgr. In order to do that, you'll
have to boot from the
Vista DVD | Repair Options | Command Prompt.

bootrec.exe /fixmbr
bootrec.exe /fixboot
bootrec.exe /rebuildbcd

"Bootrec.exe is an "all-in-one" boot-repair tool that can only be
accessed and run from the Vista recovery console. The first
command rebuilds the MBR to use the Vista boot manager.
The second does the same thing as bootsect.exe and tells the
bootsector where to find the BCD bootloader (\bootmgr). The
final command rebuilds the BCD data from scratch and is highly
useful when recovering a borked Vista partition."

In short, "bootsec.exe" is now equivalent to "bootrec.exe /fixboot".

*TimDaniels*
 
J

John John

The MBR *is* different but the articles that you quote are incorrect, or
at least partially incorrect. See inline below.

Timothy Daniels wrote:
[Snip]

(http://apcmag.com/5485/dualbooting_vista_and_xp):

"The Windows XP bootloader gets installed to the MBR
and Vista can no longer boot." [......]

No it doesn't, that article has technical errors or that particular
passage is incorrect. No one disputes that the MBR is rewritten when
you install a Windows Operating System, that is a well known fact but
the XP boot loader is NTLDR and it does not reside in the MBR. You can
take a Windows 98 boot disk and rewrite/replace the XP MBR with the
Windows 98 MBR and the newly written MBR will still be able to boot
Windows XP, proof enough that the XP boot loader is not installed or
does not reside in the MBR!


And following the link to
http://apcmag.com/5485/dualbooting_vista_and_xp#restoring ,
we have:

"Restoring Vista and dual booting

"Because you can't use the Windows XP bootloader to boot
Vista, we have to reinstate Vista's bootloader to the MBR
and configure it to manage both operating systems."

That is only half ass correct. You have to restore the Vista MBR but
the Vista boot loader itself is not in the MBR. The reason why you need
to change the MBR is not really evident, but it is not completely due to
the boot code requirements.


This view is seemingly supported by Microsoft's own
online documentation
(http://support.microsoft.com/kb/919529/en-us):

"When you install an earlier version of the Windows operating
system on a Windows Vista-based computer, Setup overwrites
everything from the MBR, the boot sector, and the boot files.
Therefore, the earlier version the Windows operating system
loses forward compatibility with Windows Vista." [.......]

"RESOLUTION
"To resolve these issues, follow these steps.

[snip]

1. Use Bootsect.exe to restore the Windows Vista MBR and
the boot code that transfers control to the Windows Boot
Manager program. To do this, type the following command
at a command prompt: Drive:\boot\Bootsect.exe /NT60 All"

Confusing to say the least. I would have to do some tests to see what
is really going on with the bootsect.exe tool. Keep in mind that
Microsoft is famous for changing terminology and for saying one thing
one day and seemingly the opposite the next day! If you read here:

Bootsect Command-Line Options
http://technet2.microsoft.com/Windo...b66f-4b42-9563-04c218a1a6ac1033.mspx?mfr=true

You will read:

"Bootsect.exe updates the master boot code for hard disk partitions to
switch between BOOTMGR and NTLDR. You can use this tool to restore the
boot sector on your computer. This tool replaces FixFAT and FixNTFS."

The Master Boot Code refers to the MBR IPL and if you search the
Microsoft site you will see that Microsoft specifically refers the
"Master Boot Code" as the MBR IPL too:

http://search.microsoft.com/results.aspx?mkt=en-US&setlang=en-US&q="master boot code"

Yet we know, or we thought that we knew that the Boot Sector is/was the
first sector of a partition or volume! Again, if you search the
Microsoft site for "Boot Sector" you will get all kind of differing
results but as far as booting NT versions the Boot Sector has always
been used to refer to the location of the Partition Boot Code, as
described here:

http://www.microsoft.com/technet/pr...serv/reskit/prork/prcb_dis_stfl.mspx?mfr=true

In that article you can read:

"If the boot device is on a hard disk, the BIOS loads the MBR. The
master boot code in the MBR loads the boot sector of the active
partition, and transfers CPU execution to that memory address. On
computers that are running Windows 2000, the executable boot code in the
boot sector finds Ntldr, loads it into memory, and transfers execution
to that file." (Vista bootstraps in much that same manner, but, for
lack of a better term, there are new "layers" in the MBR.)

So go figure! With conflicting statements like the ones found in the
Bootsect.exe or other Vista articles and Microsoft continually changing
or interchanging the terms it is no small wonder that confusion reigns!
The plain facts are that sometimes you can't know for sure from one
day to the next what Microsoft means when they say something, it's like
going to see your mechanic and from one day to the next he changes the
meaning of the mechanical terms for your car! With that kind of
confusion there is no way of knowing for sure what exactly it is that
bootsect.exe does! The way I read it it appears quite evident that it
changes the (Partition) Boot Sector but it's not clear what exactly, if
anything, it does to the MBR. Maybe it changes both, but at this time I
don't know for sure if it actually changes the MBR. To add yet more
confusion you can read here:

How to use the Bootrec.exe tool in the Windows Recovery Environment to
troubleshoot and repair startup issues in Windows Vista
http://support.microsoft.com/kb/927392

there you will read that the "boot sector" clearly refers to the
Partition Boot Sector.


But it turns out that "bootsect.exe" just restores the boot sector
unless the option "/fixmbr" is added.

There is no /fixmbr switch for bootsect.exe. I think that some of the
conflicting information on the web is due to the fact that much of the
information may have been written when the Vista Release Candidates were
being experimented with.

Bootsect Command-Line Options
http://technet2.microsoft.com/Windo...b66f-4b42-9563-04c218a1a6ac1033.mspx?mfr=true


So at one time, the MBR of Vista differed from the pre-Vista MBRs,
but when Vista was finally released, it had the old MBR.

I'm not sure what you mean by "old MBR", what is the "old MBR"?

As for the new MBR "layers" you might find the information in the white
paper here interesting:

Custom Bootstrap Actions in Windows Vista
http://www.microsoft.com/whdc/system/platform/firmware/OEMBoot_Vista.mspx

In the Vista MBR and the boot process there is a bit more than the old
routine of the Master Boot Code simply passing the instructions to the
Partition Boot Code, there is a whole new element that isn't used at all
on older NT versions! The paper will explain in part why a previous
Microsoft MBR cannot (or might not?) boot Vista. One thing for sure,
with the exception of certain hardware constraints the NT boot process
has changed little from NT3.51 through to XP, the Vista boot process is
entirely different, it brings in some never seen before concepts, at
least never seen before on Microsoft operating systems. This is no
longer the same "old" NT boot process!

John
 
T

Timothy Daniels

John John said:
Confusing to say the least. I would have to do some tests to see what is
really going on with the bootsect.exe tool. Keep in mind that Microsoft is
famous for changing terminology and for saying one thing one day and seemingly
the opposite the next day!

I agree. I've always shied away from doing things that didn't have
to be done with a computer (or any complicated system), since I believe
in "If it ain't broke now, all your fiddlin' is LIKELY to break it." So,
I would really like to know if, say installing XP after Vista necessitates
restoring Vista's version of the MBR as well as the Vista system partition's
boot sector. If you have the means, John John, a byte-for-byte comparison
of XP's and Vista's MBRs would really be a help. Absent that, just
seeing if they are interchangeable would suffice, I think.

*TimDaniels*
 
B

Bill in Co.

Timothy said:
I agree. I've always shied away from doing things that didn't have
to be done with a computer (or any complicated system), since I believe
in "If it ain't broke now, all your fiddlin' is LIKELY to break it." So,
I would really like to know if, say installing XP after Vista necessitates
restoring Vista's version of the MBR as well as the Vista system
partition's
boot sector. If you have the means, John John, a byte-for-byte comparison
of XP's and Vista's MBRs would really be a help. Absent that, just
seeing if they are interchangeable would suffice, I think.

*TimDaniels*

With perhaps a short analysis and dissassembly of that - would be nice.
And perhaps, for completeness, the noteworthy differences in the boot
sectors between XP and Vista (again with some dissassembly).
 
J

Jawade

But Vista can startup from a XP MBR if the bootindicator is at
the right place. The MBR (IPL) sends him to the PBR and there
is loaded bootmgr.



jorgen said:
As said, the key point is: they all load the boot sector of
the active partition.

So when you install xp after vista, the key point is to
restore the boot sector. If you don't, you can write all
the MBRs you want, they won't fix your problem.

No one has said that only the MBR had to be changed
to "fix your problem". (Please note that it is not I who has
the problem of the inquiring poster.) The point of differing
opinion is whether the *MBRs* of various Windows/DOS
OSes are different. In that respect, you are mostly correct -
they are *usually* the same. I say "usually" because there
is some confusion in the online documentation about Vista's
MBR.

Here at APCmag, the author is clearly of the notion
that Vista's MBR differs from that of XP
(http://apcmag.com/5485/dualbooting_vista_and_xp):

"The Windows XP bootloader gets installed to the MBR
and Vista can no longer boot." [......]

And following the link to
http://apcmag.com/5485/dualbooting_vista_and_xp#restoring ,
we have:

"Restoring Vista and dual booting

"Because you can't use the Windows XP bootloader to boot
Vista, we have to reinstate Vista's bootloader to the MBR
and configure it to manage both operating systems."


This view is seemingly supported by Microsoft's own
online documentation
(http://support.microsoft.com/kb/919529/en-us):

"When you install an earlier version of the Windows operating
system on a Windows Vista-based computer, Setup overwrites
everything from the MBR, the boot sector, and the boot files.
Therefore, the earlier version the Windows operating system
loses forward compatibility with Windows Vista." [.......]

"RESOLUTION
"To resolve these issues, follow these steps.

"Note You can run the commands in the following procedure
by using the command prompt. If you run these commands in
Windows Vista, run them at a command prompt that has
elevated user rights. To do this, click Start, click Accessories,
right-click the command-prompt shortcut, and then click
Run as Administrator.
1. Use Bootsect.exe to restore the Windows Vista MBR and
the boot code that transfers control to the Windows Boot
Manager program. To do this, type the following command
at a command prompt: Drive:\boot\Bootsect.exe /NT60 All"


But it turns out that "bootsect.exe" just restores the boot sector
unless the option "/fixmbr" is added. Alone, "bootsect.exe"
defaults to "bootsect.exe /fixboot". (See the following webpage:
http://neosmart.net/blog/2007/bootsectexe-modifies-the-bootsector-not-the-mbr/ ).
The following reason is offered in the article for the disparity:

"The source of all this confusion is that during the Longhorn/Vista
beta program, quite a number of builds were shipped with a
version of bootsect.exe (originally dubbed `fixntfs.exe`) that
modified both the MBR and the bootsector."

So at one time, the MBR of Vista differed from the pre-Vista MBRs,
but when Vista was finally released, it had the old MBR. This site
offers a breakdown of the "bootsect.exe" command syntax if you're
interested:
http://thevistaforums.com/index.php?autocom=ineo&showarticle=32 .

The usual source of "bootsect.exe" is the recovery section of the
Vista installation DVD. But if you don't have the Vista installation
DVD, it turns out you can also get it from the free download of
VistaBootPro at http://www.vistabootpro.org/ (where the Download
link is at the bottom of the webpage).

*TimDaniels*
 
J

Jawade

There is without any doubt big difference in the boot sectors. XP's boot
sector loads ntldr, Vista's loads bootmgr

No, then MBR sends him to the PBR, and there it loads ntldr or
bootmgr.
 
J

jorgen

John said:
The paper will explain in part why a previous
Microsoft MBR cannot (or might not?) boot Vista.

It actually can, and will do.

To make a note. When bitlocker is activated, you have a problem if you
change anything in the MBR. But that is another issue
 
J

jorgen

Bill said:
And perhaps, for completeness, the noteworthy differences in the boot
sectors between XP and Vista (again with some dissassembly).

There is without any doubt big difference in the boot sectors. XP's boot
sector loads ntldr, Vista's loads bootmgr
 
J

John John

jorgen said:
It actually can, and will do.

Not entirely. Rewriting the MBR with the Windows 2000/XP RC's fixmbr
command will not bother Vista (unless BitLocker is enabled) but
rewriting the disk signature with the Windows 98 fdisk /mbr command will
cause a boot failure. In most cases Windows 2000/XP will hardly bat an
eye and boot as if nothing had happened when the signature is rewritten,
Vista on the other hand will not boot if the disk signature is changed.

John
 
J

John John

Timothy said:
I agree. I've always shied away from doing things that didn't have
to be done with a computer (or any complicated system), since I believe
in "If it ain't broke now, all your fiddlin' is LIKELY to break it." So,
I would really like to know if, say installing XP after Vista necessitates
restoring Vista's version of the MBR as well as the Vista system partition's
boot sector. If you have the means, John John, a byte-for-byte comparison
of XP's and Vista's MBRs would really be a help.

I could post the MBR's but it would have to be htlm, it wouldn't post
too well as plain text, the wrapping would make it nearly impossible to
read.

Absent that, just
seeing if they are interchangeable would suffice, I think.

As mentioned in the other post with jorgen, rewriting the MBR with
Windows 2000/XP's fixmbr doesn't cause any problems, unless BitLocker is
enabled. Rewritting the MBR with fdisk /mbr causes a boot failure,
Vista does not tolerate a change in the disk signature.

John
 
J

John John

Bill said:
With perhaps a short analysis and dissassembly of that - would be nice.
And perhaps, for completeness, the noteworthy differences in the boot
sectors between XP and Vista (again with some dissassembly).

I could post both the MBR and Boot Sector for both (W2K & Vista) but it
would have to be htlm, it wouldn't post too well as plain text, the
wrapping would make it nearly impossible to read. If you want to see
the code post again, but don't expect me to disassemble the code, that
is a bit beyond my expertise!

John
 
T

Timothy Daniels

John John said:
The MBR *is* different but the articles that you quote are incorrect, or at
least partially incorrect.

Here's something I found in Wikipedia on "Master Boot Record
(http://en.wikipedia.org/wiki/Master_boot_record#Structure_of_a_Master_Boot_Record):

"Differences in MBR Code

"Even different versions of the MS-DOS FDISK program,
not to mention the partitioning utilities for other types of
operating systems, may write variations of code to the MBR
sector. For example, the bytes of code written by FDISK
under MS-DOS 6.22, Windows 98 and the Recovery Console
of a Windows XP install CD are all different. Yet, no matter
how great a difference exists in the MBR code, such as that
written by an MS-DOS 3.30 install compared to the MBR
produced by Windows XP, they will all load the boot sector
of any OS residing in the "active" primary partition."

"The following table shows how the Standard Microsoft MBR
Code (created by MS-DOS 3.30 through Windows 95) would
appear in a disk editor:"

<------------- data ------------>

"A total of only 219 bytes (the zero-byte at 0DAh is necessary);
139 executable code bytes, plus 80 bytes comprising its English
set of error messages.

"In contrast, the MBR code created by a Windows 2000 or XP
install (seen in this next table) has a total of 383 bytes for its
English version:"

<------------- data ------------>

In short, the MBRs are different, but they do the same thing -
they load the Volume Boot Record (i.e. the "Boot Sector") of
the "active" primary partition. But the question remains about
whether, say WinXP's MBR would be suitable for Vista.

*TimDaniels*
 
C

CZ

rewriting the disk signature with the Windows 98 fdisk /mbr command will
John:

What does the disk signature have to do with the MBR?

IIRC, the MBR is a sector that contains executable code, the partition
table, and ends with 55 AA.
And, each partition has a "partition boot sector".


Have you tested booting into Vista via a Win 98 MBR?

From a post I made about a year ago:
David:

I did some testing to see if Vista does change the MBR.
On a Vista/Win XP dual boot computer, I ran fdisk /mbr from a Win98 SE
bootable floppy.

Results:
1) Vista's dual boot menu displayed in normal manner
2) Vista op system had a short prompt re: installing some drivers (could not
find what they they were about)
3) Vista's EventMgr did not have any relevant error messages
4) Vista ran in normal manner

5) When I selected "Other op systems" from the Vista dual boot menu, I
received an error message re: "ntldr" was missing, and the usual boot.ini
type of menu did not display

6) What I learned: The BCD store had been changed (note the "device
unknown" lines below)

Windows Boot Manager
--------------------
identifier {bootmgr}
device unknown
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
resumeobject {50c73d4d-e6b3-11da-bc73-d30cdb1ce216}
displayorder {ntldr}
{current}
toolsdisplayorder {memdiag}
timeout 30

Windows Legacy OS Loader
------------------------
identifier {ntldr}
device unknown
path \ntldr
description Earlier version of Windows

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {50c73d4d-e6b3-11da-bc73-d30cdb1ce216}
nx OptIn

7) What I did to correct the problem: ran the following two cmds via Vista
Safe Mode boot:
Bcdedit /set {bootmgr} device partition=D:
Bcdedit /set {ntldr} device partition=D:

8) Summary:
I now have a computer dual booting Vista and Win XP via a Win98 SE MBR



Also note posts from a thread that Jill of MS and I were in:
Jill wrote :in regard to the MBR changes made by Vista install:
Functional MBR changes included: [made by Vista]
- Trusted Computing Group (TCG) compliance [measured boot leveraged by
bitlocker].
- Default to using LBA addressing over CHS [CHS still supported].
- Obtain drive number from BIOS instead of from partition table.
- Enable the A20 gate [workaround for buggy TCG BIOSes]

Functional changes to NTFS [vol] bootcode: [made by Vista]
- TCG compliance [measured boot leveraged by bitlocker].
- Only support LBA addressing [no CHS].
- Detect sector size instead of assuming 512 bytes.
- Load BOOTMGR instead of NTLDR. Fallback to NTLDR if BOOTMGR is not
present.

I wrote:
x Thanks.
This agrees with my tests, that Vista can boot from disk00 with the previous
MS MBR (DOS thru XP) provided the active partition boot code calls bootmgr
(and not ntldr).
 
C

CZ

Re: disk signature and MBR:

From: http://en.wikipedia.org/wiki/Master_boot_record

"The MBR may be used for one or more of the following:
Holding a disk's primary partition table.[2]
Bootstrapping operating systems, after the computer's BIOS passes execution
to machine code instructions contained within the MBR.
Uniquely identifying individual disk media, with a 32-bit disk signature;
even though it may never be used by the machine the disk is running on"


Note that I disagree with the second comment in that IMO MBR queries the
partition table for the active partition, then passes control to the boot
loader of that active partition, which then loads the op system. The MBR is
generic, whereas a partition boot loader is op system specific; the MBR
cannot load an op system.
 
J

John John

CZ said:
John:

What does the disk signature have to do with the MBR?

It's stored in the MBR at offsets 1B8h through 1BBh.

IIRC, the MBR is a sector that contains executable code, the partition
table, and ends with 55 AA.
And, each partition has a "partition boot sector".


Have you tested booting into Vista via a Win 98 MBR?

Yes, I tried it with one of the Vista Release Candidates and Vista
failed to boot after the change. Maybe the final Vista release handles
disk signature changes differently?

John
 
J

John John

CZ said:
Re: disk signature and MBR:

From: http://en.wikipedia.org/wiki/Master_boot_record

"The MBR may be used for one or more of the following:
Holding a disk's primary partition table.[2]
Bootstrapping operating systems, after the computer's BIOS passes
execution to machine code instructions contained within the MBR.
Uniquely identifying individual disk media, with a 32-bit disk
signature; even though it may never be used by the machine the disk is
running on"


Note that I disagree with the second comment in that IMO MBR queries the
partition table for the active partition, then passes control to the
boot loader of that active partition, which then loads the op system.
The MBR is generic, whereas a partition boot loader is op system
specific; the MBR cannot load an op system.

It depends, CZ. In the case of GRUB or Lilo it can actually be
installed *in* the MBR, that is why we sometimes tell folks who want to
remove a Linux dual boot and return the boot functions to ntldr to use
fixmbr to "dislodge" GRUB from the MBR. In the case of removing a
Microsoft OS Loader from the boot sector we tell them to use fixboot,
bootsect or if you want to return the boot loader to Windows 9x use the
SYS commmand.

John
 
C

CZ

OT:

John:

You appear to be a non-zealous person.
May I ask your opinion re: Linux vs Vista vs Mac OS X?

TIA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top