On Thu, Jun 07, 2007 at 09:06:32AM +0200, Otto Moerbeek wrote:
> 
> On Wed, 6 Jun 2007, Otto Moerbeek wrote:
> 
> > On Wed, 6 Jun 2007, Markus Lude wrote:
> > 
> > > On Tue, Jun 05, 2007 at 07:51:48AM +0200, Otto Moerbeek wrote:
> > > > 
> > > > There were some validations checkc added to partitions. If a bad
> > > > partition is found, it will be marked "unused". The checks were a
> > > > little to strict for some cases. A fix for that went in yesterday, so
> > > > try a new snap. 
> > > 
> > > Thanks for your info.
> > > 
> > > After rebuilding kernel and userland the problem still exists, but now
> > > the affected partitions are /var, /home and /data. Hmm. Unmounting /data
> > > and doing a manual fsck -f runs without problems.
> > > 
> > > > If the problem persists, please report with full disklabel output.
> > > 
> > > $ cat /etc/fstab
> > > /dev/wd0a / ffs rw 1 1
> > > /dev/wd0d /tmp ffs rw,nodev,nosuid 1 2
> > > /dev/wd0e /usr ffs rw,nodev 1 2
> > > /dev/wd0f /var ffs rw,nodev,nosuid 1 2
> > > /dev/wd0g /home ffs rw,nodev,nosuid 1 2
> > > /dev/wd0h /data ffs rw,nodev,nosuid 1 2
> > > /dev/wd1d /backup ffs rw,nodev,nosuid 1 2
> > > 
> > > with an actual kernel:
> > > 
> > > $ sudo disklabel wd0
> > > # /dev/rwd0c:
> > > type: ESDI
> > > disk: ESDI/IDE disk
> > > label: ST3120213A      
> > > flags:
> > > bytes/sector: 512
> > > sectors/track: 63
> > > tracks/cylinder: 16
> > > sectors/cylinder: 1008
> > > cylinders: 16383
> > > total sectors: 16514064
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > 
> > 1008 * 16383 = 16514064
> > 
> > > rpm: 3600
> > > interleave: 1
> > > trackskew: 0
> > > cylinderskew: 0
> > > headswitch: 0           # microseconds
> > > track-to-track seek: 0  # microseconds
> > > drivedata: 0 
> > > 
> > > 16 partitions:
> > > #             size        offset  fstype [fsize bsize  cpg]
> > >   a:       1024128             0  4.2BSD   2048 16384   16 # Cyl     0 -  
> > > 1015 
> > >   b:       3072384       1024128    swap                   # Cyl  1016 -  
> > > 4063 
> > >   c:     234441648             0  unused      0     0      # Cyl     0 
> > > -232580 
> > ^^^^^^^^^^^^^^^^^^^^^
> > 
> > Your disk size and c partition size do not match. Can you send a
> > dmesg, to see what the actual size of your disk is? This is really
> > needed to see what is going on.
> > 
> > Did you at any time edit the disk size by hand?

No, at least I can't remember it.

> > >   d:       2048256       4096512  4.2BSD   2048 16384   16 # Cyl  4064 -  
> > > 6095 
> > >   e:      20479536       6144768  4.2BSD   2048 16384   16 # Cyl  6096 - 
> > > 26412 
> > > disklabel: partition c: partition extends past end of unit
> > > disklabel: partition e: partition extends past end of unit
> > > 
> > > older kernel:
> > > $ sudo disklabel wd0
> > > [...]
> > > 16 partitions:
> > > #             size        offset  fstype [fsize bsize  cpg]
> > >   a:       1024128             0  4.2BSD      0     0   16 # Cyl     0 -  
> > > 1015 
> > >   b:       3072384       1024128    swap                   # Cyl  1016 -  
> > > 4063 
> > >   c:     234441648             0  unused      0     0      # Cyl     0 
> > > -232580 
> > >   d:       2048256       4096512  4.2BSD      0     0   16 # Cyl  4064 -  
> > > 6095 
> > >   e:      20479536       6144768  4.2BSD      0     0   16 # Cyl  6096 - 
> > > 26412 
> > >   f:       4095504      26624304  4.2BSD      0     0   16 # Cyl 26413 - 
> > > 30475 
> > >   g:      20479536      30719808  4.2BSD      0     0   16 # Cyl 30476 - 
> > > 50792 
> > >   h:     183242304      51199344  4.2BSD      0     0   16 # Cyl 50793 
> > > -232580 
> > > disklabel: partition c: partition extends past end of unit
> > > disklabel: partition e: partition extends past end of unit
> > > disklabel: partition f: offset past end of unit
> > > disklabel: partition f: partition extends past end of unit
> > > disklabel: partition g: offset past end of unit
> > > disklabel: partition g: partition extends past end of unit
> > > disklabel: partition h: offset past end of unit
> > > disklabel: partition h: partition extends past end of unit
> > > 
> > > Any hints how to fix this beside repartition and reinstall?
> > 
> > If possible, please leave the disk as is, until we've done further
> > diagnosis.  If that is not possible, you can use the 'e' command in
> > disklabel, to set the actual size of the disk to the size (in sectors)
> > reported in the dmesg.  You might need to adjust the 'c' partition as
> > well. 
> 
> After having sen your dmesg, I see that your disk size is really
> 234441648 sectors. The disklabel says 16514064 though.  The new
> consistency checks did not like that. The consistency checks have been
> disabled in two steps (rev 1.44. and rev 1.66 of
> sys/kern/subr_disk.c). So a current kernel should not trip on this
> anymore. 
> 
> There remain two questions: how did the size end up being wrong in the
> disklabel, and how to repair.
> 
> To the first question I can only guess; it could be you dd'ed an image
> >from another disk, you edited the size by hand or we are seeing the
> results of a (old?) bug in disklabel handling that now surfaced
> because of the concistency checks. 
> 
> The second question I already answered: using the 'e' command in
> disklabel lets you set the size of the disk in the label. After that,
> things should be back to normal.
> 
> Let us know how it goes.

After updating kernel sources and a patch from Theo now all looks normal
to me. Using the 'e' command in disklabel wasn't neccessary.                    
                                                                                
Many thanks to you guys for the great help!                                     
                                                                                
Regards,                                                                        
Markus                                                                          

PS: sorry for the late reply. I had same mail problems recently.

Reply via email to