Mailinglist Archive: opensuse (1306 mails)

< Previous Next >
Re: [opensuse] Reboot Fails After 12.1 64Bit Installation?
On Saturday, February 04, 2012 10:16 PM James Knott wrote:
Dennis Gallien wrote:
When you tried using the /boot PBR sector, what did you do with the code
in the MBR?

????

All I did was change the configuration in Yast.

Whatever code that gets installed to the MBR stays there until it is over-
written with different code. The BIOS always calls the code in the MBR in the
designated boot disk. If there is no code in the MBR the disk cannot boot
unless a PBR is called from some other boot loader.

The boot sequence works in one of 2 ways: There is grub stage1 code in the
MBR which has a pointer to that partition on which to find its grub stage2; it
hands off to that partition's stage2 code. Or, there is generic (actually DOS)
code in the MBR which reads down the partition table for the active flag, the
first it finds it then calls the grub stage1 in that PBR (this is also how
Windows works) which will again have a pointer to locate stage2 which is
usually on that same partition but can also be on another partition (so e.g.,
grub stage1 in the extended primary PBR can point to stage2 in one of the
logicals within the extended).

AFAIK if YaST installs grub to the MBR and later is instructed to install grub
to a PBR but the generic code is not installed to the MBR at that step, the
original grub in the MBR will remain there. There can be a legitimate reason
to have grub in both the MBR and the PBR, e.g., where there are more than one
Linux instances on the disk and the MBR boots the primary instance which on
its grub menu has a chainloader stanza to boot the second instance from its
PBR.

To see what is in the MBR, I do:

dd if=/dev/sd<x> of=mbr bs=440 count=1
xxd mbr

That gives a hex dump of the code. You see if code is installed and from the
literal displayed, which boot loader code it is.
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >