Re: FAT32: Invalid FSINFO signature on mount?

Max Cohan (mcohan@adnc.net)
Thu, 18 Mar 1999 16:29:31 -0800


Ok, here's a few things I've come up with.

First of all, it looks like either the info_sector or logical_sector_size
are getting set incorrectly.
Thus leaving an offset of 0x1e0 (obviously kinda messed up).
Secondly, where did '0x1e0' come from? Seems like it's a magic number linux
is using that I can't find reference anywhere else.

I originally thought the problem was a different FSINFO structure (Thus
the different SIGNATURE) this exact signature was seen by others and thus
seemed to indicate an unsupported new 'feature' rather than a bug.
It SEEMS like the problem is an invalid offset.
There are some standard sanity checks that MS recommends (in MSDN online)
which are not being done and would be easy to add.
/*
(MC) TODO: Add sanity checking according to MS Docs.
This field is set to 0FFFFh if there is no FSINFO sector. Otherwise, this
value must be non-zero and less than the reserved sector count.
(fsinfo_offset)
*/

I'll probably get around to adding/testing some checking code soon, but
I don't have Linux installed now on the problematic system. (I just need
to create a boot floppy to test the problem, just dunno if I'll have
time t'nite) if anyone reads this and wants to play. I think the BEST
place to start is to check (print out) the values of b->info_sector or
logical_sector_size (inode.c line 371) I'll _BET_ one of them is being
set to 0.

Anyone that wants to try to get a few heads together and fix this
feel free to contact me. Gordon has told me he's too busy right now.
Be clear I am not, do not want to be and do not feel qualified to
be the maintainer. Gordon Chaffee IS still the maintainer of this code.

Max
mcohan@adnc.net
619-278-2629

On Fri, Mar 19, 1999 at 12:16:28AM +0100, Guest section DW wrote:
> > It does not appear to be in 2.2.3.
>
> Yes, I misremembered. Now that I look, my patch is just two
> lines higher, for `bad fsinfo_offset'.
>
> Probably I'll not have time to look at this,
> but in case you have a different kind of FAT,
> could you tell me where/how you got it,
> and send the first few sectors uuencoded?
>
> (Say
> dd if=/dev/hdx7 of=fathead bs=512 count=128
> gzip fathead
> uuencode fathead.gz < fathead.gz > fathead.gz.uu
> cat fathead.gz.uu | mail -s fathead.gz.uu aeb@cwi.nl
> or so.)
>
> Andries

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/