documentation of GEOM data structures needed

Erich Dollansky erichsfreebsdlist at alogt.com
Wed Nov 13 04:55:50 UTC 2013


Hi,

On Tue, 12 Nov 2013 09:40:50 +0000
symbolics at gmx.com wrote:

> On Tue, Nov 12, 2013 at 11:16:58AM +0800, Erich Dollansky wrote:
> > > 
> > > In which case run `gpart backup da1' (assuming da1 is the name of
> > > one of the intact discs). You can store the output text to a file
> > > and then edit it to fit. Then use `gpart restore da0' to apply it
> > > to the new disc.
> > > 
> > > First of all, take backups of your existing MBRs, just in case:
> > > 
> > I copied already the identified data structures into files.
> > 
> > > # gpart backup da1 > ~/da1.gpart
> > 
> > This is what I would like to avoid. I would like to understand how
> > it works and do it manually.
> 
> The code is in sys/geom and sbin/geom. The structure definitions can
> be found in the header files in sys/geom. The backup command itself

I missed the header files in sys/geom. The rest I have had found.

> can be found in sbin/geom/class/part/geom_part.c.
> 
> > > 
> > > If you like you can try to fit the first five partitions first and
> > > then worry about the last one later. If da1 is an intact disc then
> > > running the following piped command should reset all but the last
> > > partiton on da0:
> > > 
> > > # gpart backup da1 | sed \$d | gpart restore da0
> > > 
> > > Try fscking and mounting the first five partitions and see how
> > > you get on.  Hopefully they'll just work.
> > > 
> > The hopefully is the point why I would like to do it by hand. I do
> > not think that there is a huge secret behind. It is just that I did
> > not find the documentation. Or doesn't it exist?
> 
> It depends on what you mean by documentation I suppose. Quite a lot of
> the GEOM API is documented to varying levels (something I intend to
> improve as my time allows). You can look at the sys/sys/diskmbr.h
> header file for some useful information though. The MBR format is
> documented on Wikipedia. 
> 
I noticed that in FreeBSD data structures are hardly documented. When I
was still programming, the first step during development was the
documentation of the data structures. I kept this documentation in the
header files.

I must also say that I was massively influenced by Modula-2 and its
creators.

> > > > > > > disc, you could reconstruct things that way. What does
> > > > > > > `gpart show' look like at the moment?
> > > > > > 
> > > > > > It does not come that far
> > > > > > 
> > > > > > gpart list da0
> > > > > > gpart: No such geom: da0.
> > > > > > 
> > > > > > is all I get.
> > > > > > 
> > > > > > My luck is that I have three disks which are the type but
> > > > > > manufactured with some months between. But their sizes
> > > > > > differ a bit. I think that I should be able to recover much
> > > > > > by just comparing the entries.
> > > > > > 
> > > > > 
> > > > > You can try looking at diskinfo -v da0 to see the numbers.
> > > > >
> > > >          512             # sectorsize
> > > >         500107860480    # mediasize in bytes (466G)
> > > >         976773165       # mediasize in sectors
> > > >         0               # stripesize
> > > >         0               # stripeoffset
> > > >         60801           # Cylinders according to firmware.
> > > >         255             # Heads according to firmware.
> > > >         63              # Sectors according to firmware.
> > > >         0000000000006121        # Disk ident.
> > > > 
> > > > One other disk shows the same data while the third one shows
> > > > this:
> > > > 
> > > >         512             # sectorsize
> > > >         500107862016    # mediasize in bytes (466G)
> > > >         976773168       # mediasize in sectors
> > > >         4096            # stripesize
> > > >         0               # stripeoffset
> > > >         15504336        # Cylinders according to firmware.
> > > >         1               # Heads according to firmware.
> > > >         63              # Sectors according to firmware.
> > > >         TF0504YS02ZPBP  # Disk ident.
> > > > 
> > > 
> > > These look really different. Are you using other GEOM classes?
> > > What else is different about these discs?
> > 
> > The media size is already different. The drives are all Hitachi's
> > with 4k sectors. They should be all from the same factory but
> > obviously there is a difference.
> > 
> 
> Ok, good luck.

Thank you.

Erich


More information about the freebsd-geom mailing list