@anon_anon Uh, that article, while no doubt a good one, is a bit old. It's from 2006 and discusses GRUB Legacy. I think things have change a bit with GRUB 2. (If nothing else, they use different names for the boot "stages" in GRUB 2 :). I tried to locate a DeveloperWorks update of the article you linked for GRUB 2, but did not. Closest I could come was this: Migrate to GRUB 2.
–
irrational JohnMay 14 '12 at 23:53

Though it was down voted ... possibly because someone thought it was not answering the question ... I think @Rony's answer is a good start at explaining what the boot flag is about. (I was actually planning to begin my answer with an example similar to the one he provided.)

I was all set to ramble off an answer about how the boot flag is, at this point in time, an often ignored (as @Rony's example shows) historical remnant from a period when hard drives were smaller and bootloaders were much less sophisticated.

When I cleared the flag from both partitions, I got the error message FATAL: INT18: BOOT FAILURE when I attempted to boot. (I am not sure if that is from the Windows MBR bootloader or the VM's equivalent of a BIOS.)

Just to see what would happen, I also set the boot flag on the "wrong" partition, /dev/sda2 instead of /dev/sda1. Doing that resulted in the window shown in the image below.

<sigh/>

This experience makes me wonder if Microsoft is still using the same MBR boot sector loader which they used for MS-DOS and Windows 3.0/3.1?

When using the traditional Microsoft MBR, code in the MBR identifies how to do disk I/O and goes through the partitions to see which one is marked with the bootable flag. Only one partition should be so marked. It then checks the first sector of that partition, and if it is marked appropriately, it reads that sector and transfers control to it. If I remember correctly, that check is that the sector ends with 0x55 0xaa.

The rest of the responsibility for booting falls to the code in that sector and the code that it, in turn, loads.