Why is 'disklabel'ng a new drive so difficult?

Jerry McAllister jerrymc at msu.edu
Thu Mar 29 23:23:16 UTC 2007


On Fri, Mar 30, 2007 at 08:07:23AM +1000, Antony Mawer wrote:

> On 29/03/2007 6:41 AM, Kris Kennaway wrote:
> >On Wed, Mar 28, 2007 at 05:26:49PM -0300, Marc G. Fournier wrote:
> >>Just bought a new WD SATA drive: WDC WD5000YS-01MPB1 09.02E09
> >>
> >>Tried to disklabel it, and it gives me all kinds of warnings when I look 
> >>at it after running the disklabel:
> >>
> >>
> >>ganymede# bsdlabel -w ad4s1 auto
> >>ganymede# bsdlabel ad4s1c
> >># /dev/ad4s1c:
> >>8 partitions:
> >>#        size   offset    fstype   [fsize bsize bps/cpg]
> >>  a: 976767986       79    unused        0     0
> >>  c: 976768002       63    unused        0     0         # "raw" part, 
> >>  don't edit
> >>partition a: partition extends past end of unit
> >>partition c: partition extends past end of unit
> >>bsdlabel: partition c doesn't start at 0!
> >>bsdlabel: An incorrect partition c may cause problems for standard system 
> >>utilities
> >>
> >>Even if I try to use /stand/sysinstall to do the fdisk, the end result 
> >>has 'issues' ...
> >>
> >>So, what is the generally accepted method of label'ng a new drive? :(
> >
> >I learned a useful trick the other day: you can use abbreviations like
> >"1g", also '*' to mean "automatically calculate".  See the manpage.
> 
> This timely thread came as I was experimenting with disklabel, and I 
> noticed in the man page it says this:
> 
> >    offset  The offset of the start of the partition from the beginning of
> >            the drive in sectors, or * to have bsdlabel calculate the 
> >            correct
> >            offset to use (the end of the previous partition plus one, 
> >            ignor-
> >            ing partition `c'.  For partition `c', * will be interpreted as
> >            an offset of 0.  The first partition should start at offset 16,
> >            because the first 16 sectors are reserved for metadata.
> 
> When I tried using "16" as the offset for my 'a' partition, I could no 
> longer user "*" on my last partition to make it auto-size... disklabel 
> then sized the partition so it went past the end of the disk. Presumably 
> it's not taking into account the starting offset when it does this (gm0 
> is a 3gb gmirror device, with a single slice created on it using fdisk):
> 
>     $ bsdlabel -R /dev/mirror/gm0s1 /dev/stdin
>     8 partitions:
>       a:  2097152       16    4.2BSD
>       b:   102400        *      swap
>       c:        *        0    unused
>       d:   102400        *    4.2BSD
>       e:        *        *    4.2BSD
>     partition e: partition extends past end of unit
> 
> However if I change the 'a' partition offset to 'e', it works:
> 
>     $ bsdlabel -R /dev/mirror/gm0s1 /dev/stdin
>     8 partitions:
>       a:  2097152        0    4.2BSD
>       b:   102400        *      swap
>       c:        *        0    unused
>       d:   102400        *    4.2BSD
>       e:        *        *    4.2BSD
>     $ disklabel /dev/mirror/gm0s1
>     # /dev/mirror/gm0s1:
>     8 partitions:
>     #        size   offset    fstype   [fsize bsize bps/cpg]
>       a:  2097152        0    4.2BSD        0     0     0
>       b:   102400  2097152      swap
>       c:  6281352        0    unused        0     0         # "raw"
>       d:   102400  2199552    4.2BSD        0     0     0
>       e:  3979400  2301952    4.2BSD        0     0     0
> 
> Is it important to use 16 as the offset still, or is this a historical 
> piece of information that is no longer relevant? Or is this is a bug in 
> disklabel that should be fixed?

As I indicated in another post in this thread, it appears to
be vestigial.    I have never used it for a bsdlabel(disklabel)
being done on a slice - since 1998.    

There seems to be a lot of left over stuff in the documentation and 
man pages for fdisk and bsdlabel (and disk formatting, partitioning
and booting in general).   Someone made a pass at cleaning them up 
about 6 years ago and that helped, but it could stand to be done some 
more.  If I felt knowledgeable enough, I would take a whack at it.  
But there are too many holes (not wholes) in my knowledge.   I would
guess from posts in the list that a lot of people are in that position - 
knowing a bunch of it, but not quite enough to be authoratative about it.

I have written several long replies to questions on this list that
could be the basis for FAQs or HowTo-s, but they still leave a lot
of things out and generalize or slide over lots of other things for
the sake of convenience, avoiding confusing a newbie and/or not being 
sure about all the details.

////jerry

> 
> --Antony
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"


More information about the freebsd-questions mailing list