On May 22, 2011, at 11:29 PM, Andrey V. Elsukov wrote:

> On 23.05.2011 6:29, Warner Losh wrote:
>> Looking at one of my flash drives that shows the problem:
>> 
>> da0: 15423MB (31588351 512 byte sectors: 255H 63S/T 1966C) GEOM_PART: 
>> partition 1 has end offset
>> beyond last LBA: 31588350 > 31588325
>> 
>> So why does gpart think the last LBA is 25 less than it really is.  Well, 
>> let's do some sanity
>> checks first.  fdisk -s da0 tells us:
> 
>> I'm pretty sure this problem is due to a bug in g_part_mbr.c:
>> 
>> basetable->gpt_last = msize - (msize % basetable->gpt_sectors) - 1;
>> 
>> This is wrong, or at least it is a widely disregarded part of what makes up 
>> an MBR.  When I
>> correct the size, the geom code is fine.  There's no requirement in MBR that 
>> a partition end of
>> any particular boundary, although sometimes you'll find mistaken 
>> documentation that suggests this
>> is the case.  Reading between the lines at 
>> http://www.boot-us.com/gloss03.htm suggests that this
>> restriction was only for disks < 8GB in size (from the fact it said that all 
>> the partitions can
>> be described with the CHS fields).  This is one of the things I learned when 
>> I tried to make
>> fdisk enforce that: this isn't a requirement of MBR as it is implemented in 
>> the wild today.
> 
> There is another opinion:
> http://www.boot-us.com/gloss02.htm
> 
> "There is the convention that partitions should always start and end on 
> *cylinder boundaries*."

The current code doesn't do that.  The current code just ends on a track 
boundary...

> but
> 
> "Linux and Windows NT/2000/XP/2003/Vista/2008/7 seem to have no problems when 
> partitions do not
> start or end on cylinder boundaries. However other operating systems (e.g. 
> DOS) expect that this
> convention is obeyed."
> 
> What way will we choose?

We choose the way that works and not bother with alignment.  It is an artifact 
of the < 8GB disks and hasn't really been necessary for about 15 years now.

> I prefer to: leave the choice to the user how partition should be aligned, 
> and remove automatic
> alignment to track boundaries from MBR (and probably from all other schemes).

I think we agree.  Allow, but do not force, alignment.

Warner

> -- 
> WBR, Andrey V. Elsukov
> 
> -- 
> WBR, Andrey V. Elsukov
> 

_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to