newfs and mount vs. half-baked disks

Bruce Evans bde at zeta.org.au
Sat Nov 8 00:35:35 PST 2003


On Fri, 7 Nov 2003, Kirk McKusick wrote:

> > From: Bruce Evans <bde at zeta.org.au>
> > ...
> > Some cases can be discerned anyway, depending on how much erasing of
> > metadata newfs does when it starts.  E.g., if there was an ffs file
> > system on the disk, then this will be recorded in the disk label unless
> > that feature has been axed).  newfs doesn't rewrite the label until
> > just before it finishes, so the old label can be looked at to determine
> > what was there.  Writing the label last may be a bug though.  Perhaps
> > newfs should erase all the primary metadata for the old filesystem
> > when it starts so as to minimise the window where there may be
> > conflicting metadata.
>
> You cannot depend on the disk label as the disklabel is going away
> or at least being wholly overhauled with GEOM. In particular, the
> existing disk label only has a 2^32 block count which is insufficient
> for filesystems larger than 2Tb.

I don't use GEOM, so the label won't be going away for me.  Anyway, there
is no dependency (the label is just one of the things that one might
examine to recover a crashed disk), and any overaul by GEOM would have
to duplicate the functionality of storing metadata about the superblocks
somewhere outside the superblocks.  (I actually store metadata about file
systems in (backups of) disk files in /var/backups.  Normal backups
provide inadequate backups of metadata.)

The block count is in units of sector size, so disks much larger than
2TB can be supported by disklabel using (fake if necessary) sector sizes
larger than 512.  File systems need to use similarly large block (fragment
for ffs) sizes, and some patches are needed for reading superblocks if
the sector size is larger than 8K.  Since ffs uses a block size of 16K
by default, a sector size of 16K are not unreasonable and this is sufficent
for disks smaller then 64TB.

Bruce


More information about the freebsd-arch mailing list