can not mount a large FAT32 filesystem

Bruce Evans bde at zeta.org.au
Wed Sep 28 05:00:34 PDT 2005


On Tue, 27 Sep 2005, Mikhail Teterin wrote:

> On Tuesday 27 September 2005 07:54 am, Bruce Evans wrote:
> %% >    da0: reading primary partition table: error reading fsbn 0
>
> =I think this error message is only printed by 4.x.
>
> Yes, it was. I tried the same card on 4.x (i386) and 6.0 (amd64).

I verified that this error "can't happen" in combination with the other
errors, at least in my version of 5.2-CURRENT (which does disk open in
essentially the same way as 4.x).  When I forced it to happen, open
failed as expected for all devices on the disk, so the disk was not
readable by msdosfs, fdisk or disklabel.

> = Try reading slice s1 using dd.  I would expect this to fail
>
> Both
>
> 	dd bs=512 count=1024 if=/dev/da2s1 of=~mi/public_html/s1.beginning.dd
> and
> 	dd bs=512 count=1024 if=/dev/da2 of=~mi/public_html/card.beginning.dd
>
> worked fine. You can take a look at the results at
>
> 	http://aldan.algebra.com:8015/~mi/card.beginning.dd.bz2
> 	http://aldan.algebra.com:8015/~mi/s1.beginning.dd.bz2
>
> I'll try Peter's patch today...

That patch seems reasonable (except it is missing removal of dead/wrong
code in bootsect.h).  We got the excessive signature checking from
NetBSD, and NetBSD still has it in at least the 2005/01/09 version.

Signature checking or initialization is also broken for sector sizes of
other than 512.  newfs_msdosfs^H^H writes signatures at the end of the
sector, but msdosfs and fsck_msdosfs want them at the end of a 512-block.
The important signatures are the primary signature and the fsinfo signature.

Bruce


More information about the freebsd-fs mailing list