8.0-BETA1 bsdlabel broken?

Eygene Ryabinkin rea-fbsd at codelabs.ru
Fri Jul 10 16:18:41 UTC 2009


Marcel, good day.

Fri, Jul 10, 2009 at 08:42:48AM -0700, Marcel Moolenaar wrote:
> On Jul 10, 2009, at 4:33 AM, Paul B. Mahol wrote:
> 
> >>>>> Today I had a nasty surprise when I fired up bsdlabel to  
> >>>>> increase the
> >>>>> size of a swap partition.  I booted the system off the 7.2-RELEASE
> >>>>> live
> >>>>> filesystem CD and its bsdlabel displayed "normal" labels.  I  
> >>>>> used the
> >>>>> bsdlabel off the 7.2 livefs CD to edit the label.
> 
> *snip*
> 
> > There is one not so trivial solution. Recreating labels with gpart(8)
> 
> Well, as stated, a bsdlabel from 7.2-RELEASE does not complain.
> Let's not yet assume the disk label is broken and instead look
> at the tool.
> 
> John:
> Can you send me the output of "gpart show da0" and "gpart show da0s1".
> Could you also send me (or make available for download) a binary dump
> of sectors 0 (the MBR), 63 and 64 (the disklabel in slice 1).
> 
> If it's the tool, I'll see about fixing it...

For me, it seem to be the kernel who messes up the stuff.  What I
see in the "BSD" geom class are two entities, ad4s2a (!) and
ufsid/47cc[...] (?!), as seen by the 'sysctl -b kern.geom.confxml'.

Everything starts fine -- ad4s2 and ad4s3 are attached and create 6
providers each inside g_bsd_taste.  But then ad4s2a creates another 6
providers inside g_bsd_taste and they are named ad4s2a{a,b,c,d,e,f} and
I also have devices ufsid/47cc[...]{a,b,c,d,e,f}.  Normal devices
(ad4s2{a-f}) are here too, so mount works.  But since ad4s2 isn't in a
BSD class, bsdlabel is unable to determine the mbroffset and produces
offsets from the beginning of a disk, without MBR offset fixup.

Seems like the main devices are disappearing from the BSD class, thus
allowing their children who sit on the offset 0 from the parent to
attach as BSD disklabel parts.

Need to add some more debugging printfs to the kernel and to glance over
the code for some more time to get the idea on what's going on ;))

By the way, John, the output from the 'sysctl -b kern.geom.confxml'
will be helpful too.
-- 
Eygene
 _                ___       _.--.   #
 \`.|\..----...-'`   `-._.-'_.-'`   #  Remember that it is hard
 /  ' `         ,       __.--'      #  to read the on-line manual
 )/' _/     \   `-_,   /            #  while single-stepping the kernel.
 `-'" `"\_  ,_.-;_.-\_ ',  fsc/as   #
     _.-'_./   {_.'   ; /           #    -- FreeBSD Developers handbook
    {_.-``-'         {_/            #


More information about the freebsd-current mailing list