newfs and mount vs. half-baked disks

Peter Jeremy PeterJeremy at optushome.com.au
Wed Nov 5 00:15:31 PST 2003


On Tue, Nov 04, 2003 at 07:57:10PM -0600, Dan Nelson wrote:
>In the last episode (Nov 04), Wes Peters said:
>> I emailed Kirk about this state of affairs and he confirmed that
>> newfs was developed with operator intervention in mind.  He suggested
>> employing one of the unused flags in the filesystem header as a
>> 'consistent' flag, setting it to 'not consistent' at the beginning of
>> newfs, and then updating to 'is consistent' at the end.  The
>> performance hit in updating all superblock copies at the end is small
>> but noticable (< 1s on a rather slow 6GB filesystem).
>
>Would writing a block of zeros to the first (or first n) superblock,
>newfs'ing, then rewriting the correct data do the same thing without
>affecting the filesystem itself?  I'm thinking about 4.x and cross-OS
>portability here.

My suggestion would be to write a non-standard magic number to
fs_magic in the primary and first backup superblock (block 32) - I
believe these are the only ones fsck will automatically search.  The
"invalid" magic number means that neither mount nor fsck will
recognize the partition.  Those two blocks can be re-written at the
end - the additional time should be unnoticable.  The remaining
superblocks would appear valid but if someone is silly enough to
manually specify a alternate superblock in an incompletely newfs'd
filesystem, they get a neat hole in their foot.  (A known non-standard
magic number would also allow fsck to warn that the filesystem was
incompletely newfs'd).

I'm surprised that this bug hasn't been noticed previously.

Peter


More information about the freebsd-arch mailing list