8.0-BETA1 bsdlabel broken?
Paul B. Mahol
onemda at gmail.com
Fri Jul 10 11:33:12 UTC 2009
On 7/10/09, John Marshall <john.marshall at riverwillow.com.au> wrote:
> On Fri, 10 Jul 2009, 17:10 +1000, John Marshall wrote:
>> On Fri, 10 Jul 2009, 10:14 +0400, Eygene Ryabinkin wrote:
>> > Fri, Jul 10, 2009 at 02:21:06PM +1000, John Marshall wrote:
>> > > This system was source-upgrade from 7.2-RELEASE to 8.0-BETA1 a couple
>> > > of
>> > > days ago.
>> > >
>> > > 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.
>> > >
>> > > Here's what I see from 8.0-BETA1. Scary stuff!
>> > >
>> > > rwsrv05# bsdlabel da0s1
>> > > # /dev/da0s1:
>> > > 8 partitions:
>> > > # size offset fstype [fsize bsize bps/cpg]
>> > > a: 1048576 16065 4.2BSD 2048 16384 8
>> > > b: 8388608 1064641 swap
>> > > c: 33543720 16065 unused 0 0 # "raw" part,
>> > > don't edit
>> > > e: 4194304 9453249 4.2BSD 2048 16384 28552
>> > > f: 19912232 13647553 4.2BSD 2048 16384 28552
>> > > 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
>> > > partition f: partition extends past end of unit
>> >
>> > And if you'll invoke 'bsdlabel -A da0s1' then it will whine only about
>> > 'c' that doesn't start at 0, but no stuff will be marked as 'extends
>> > past
>> > end of unit' ;))
>> >
>> > The problem is that your 8.x kernel is likely misses GEOM_BSD, so
>> > gctl_issue() inside readlabel() of bsdlabel.c will choke on it.
>> > Mine problems on one of the hosts were solved by adding GEOM_BSD and
>> > recompiling the kernel, though it has the only slice that started at
>> > 63 (MBR offset).
>> >
>> > > rwsrv05# bsdlabel da0s2
>> > > # /dev/da0s2:
>> > > 8 partitions:
>> > > # size offset fstype [fsize bsize bps/cpg]
>> > > c: 67103505 33559785 unused 0 0 # "raw" part,
>> > > don't edit
>> > > d: 33554432 33559785 4.2BSD 2048 16384 28552
>> > > e: 33549073 67114217 4.2BSD 2048 16384 28552
>> > > 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
>> > > partition d: partition extends past end of unit
>> > > partition e: offset past end of unit
>> > > partition e: partition extends past end of unit
>> >
>> > This part gets trickier, because partition 'c' reports strange offset.
>> > I had reproduced this problem at my notebook, so I'll try to debug it
>> > further.
>>
>> Thank you Eygene,
>>
>> Rebuilding the kernel with the GEOM_BSD option configured didn't make
>> any difference for me. I notice that the offset for the start of the
>> slice 2 c partition seems to include the size of the entire s1 slice.
>
> I don't think it's just bsdlabel. I just noticed this in DMESG...
>
> WARNING: da0s1 expected rawoffset 0, found 16065
> WARNING: da0s2 expected rawoffset 0, found 33559785
> WARNING: da0s4 expected rawoffset 0, found 100663290
> WARNING: da1s1 expected rawoffset 0, found 16065
> WARNING: da1s2 expected rawoffset 0, found 33559785
> WARNING: da1s4 expected rawoffset 0, found 67103505
> WARNING: da0s1a expected rawoffset 0, found 16065
> WARNING: da0s2d expected rawoffset 0, found 33559785
> WARNING: da0s4d expected rawoffset 0, found 100663290
> WARNING: ufsid/44cab1426f1a14df expected rawoffset 0, found 100663290
> WARNING: da1s1d expected rawoffset 0, found 16065
> WARNING: ufsid/44c73ece4c594eee expected rawoffset 0, found 16065
> WARNING: da1s2d expected rawoffset 0, found 33559785
> WARNING: ufsid/44ca989c1c946f80 expected rawoffset 0, found 33559785
> WARNING: da1s4d expected rawoffset 0, found 67103505
> WARNING: ufsid/44caacedfa48b1aa expected rawoffset 0, found 67103505
> WARNING: ufsid/454bbd55fb8748ad expected rawoffset 0, found 16065
> WARNING: ufsid/44cab13667346452 expected rawoffset 0, found 33559785
> WARNING: ufsid/44cab1426f1a14dfd expected rawoffset 0, found 100663290
> WARNING: ufsid/44c73ece4c594eeed expected rawoffset 0, found 16065
> WARNING: ufsid/44ca989c1c946f80d expected rawoffset 0, found 33559785
> WARNING: ufsid/44caacedfa48b1aad expected rawoffset 0, found 67103505
> Trying to mount root from ufs:/dev/da0s1a
> WARNING: da0s1a expected rawoffset 0, found 16065
> WARNING: ufsid/454bbd55fb8748ad expected rawoffset 0, found 16065
> WARNING: ad0s1 expected rawoffset 0, found 63
> WARNING: da1s1 expected rawoffset 0, found 16065
> WARNING: da1s1d expected rawoffset 0, found 16065
> WARNING: ufsid/44c73ece4c594eee expected rawoffset 0, found 16065
> WARNING: ufsid/44c73ece4c594eeed expected rawoffset 0, found 16065
> WARNING: da1s2 expected rawoffset 0, found 33559785
> WARNING: da1s2d expected rawoffset 0, found 33559785
> WARNING: ufsid/44ca989c1c946f80 expected rawoffset 0, found 33559785
> WARNING: ufsid/44ca989c1c946f80d expected rawoffset 0, found 33559785
> WARNING: da1s4 expected rawoffset 0, found 67103505
> WARNING: da1s4d expected rawoffset 0, found 67103505
> WARNING: da0s2 expected rawoffset 0, found 33559785
> WARNING: da0s2d expected rawoffset 0, found 33559785
> WARNING: ufsid/44caacedfa48b1aa expected rawoffset 0, found 67103505
> WARNING: ufsid/44cab13667346452 expected rawoffset 0, found 33559785
> WARNING: ufsid/44caacedfa48b1aad expected rawoffset 0, found 67103505
> WARNING: da0s2 expected rawoffset 0, found 33559785
> WARNING: da0s4 expected rawoffset 0, found 100663290
> WARNING: da0s4d expected rawoffset 0, found 100663290
> WARNING: ufsid/44cab1426f1a14df expected rawoffset 0, found 100663290
> WARNING: ufsid/44cab1426f1a14dfd expected rawoffset 0, found 100663290
>
> --
> John Marshall
>
There is one not so trivial solution. Recreating labels with gpart(8)
--
Paul
More information about the freebsd-current
mailing list