On Sat Jan  7 13:30:33 EST 2012, tlaro...@polynum.com wrote:
> Hello,
> 
> Since I'm playing with the installation, I have been hit once again
> with disk/fdisk corrupting the MBR and rendering other systems
> unbootable.
> 
> The explanation is arithmetic truncation. disk/fdisk.c does this:
> 
> p->start = lba/sec2cyl;
> 
> and, if modifications are done (for example creating a Plan9 partition,
> of marking a primary partition active), when written back, the entries
> are "restored" by:
> 
> *endlba = (vlong)p->start*sec2cyl;
> 
> Of course, if the values were not integer multiples of sec2cyl, the
> entry point for the PBS is corrupt. (For example, on *BSD, the principle
> is the same as for Plan9: a "primary" partition is a sequence of
> adjacent bytes, furthermore subdivided; but one special subdivision
> [a] is at the same offset (at start) and holds the bootcode and a
> disklabel describing the subdivision; if the MBR is corrupt, neither
> boot nor disklabel so user can conclude: everything lost). And the first
> travel in the flying saucer will also be the last...

can you just set sec2cyl=1?

- erik

Reply via email to