FAT32 not working with recent ROMs

I just updated to the latest ROM only to get the “has it been formatted?” message when I tried to use a FAT32 flash drive. I see that DOSFS has changed recently, and indeed rolling back to 1.11 fixed the issue.

How big is the FAT partition? As you’ll see from this thread I fixed DOSFS so that it will take into account the 4GB limit imposed by the way image filing systems are implemented in RISC OS. Which means that (without Fat32fs) FAT drives will only work if the FAT filesystem is fully located within the first 4GB of the drive. DOSFS should now also check for if the filesystem claims to be larger than its partition table entry, and whether it claims to be larger than the disc.

Previously, large FAT drives would work, up until the point where you needed to access something beyond the 4GB limit, at which point read operations would return garbage and write operations would corrupt the filesystem.

I assumed that DOSFS could only handle FAT12/16; can it actually handle small FAT32 volumes too? What’s the easiest way to tell which FS I’m actually using? When I click the drive in Filer the title bar says “SCSI”; I’m sure it said “Fat32FS” at some point in the past but my memory may be faulty there!

When I made my first post, I assumed that the newer DOSFS wasn’t “handing off” to Fat32FS correctly, but it sounds like I could be mistaken.

Edit: Argh! Crisis averted; Fat32FS wasn’t loaded for some reason. I haven’t touched Boot in some time so this has probably been the case for months! Sorry about that… in fact, thanks for making the change in the first place. It alerted me to a problem with my system that I didn’t even know was there.

I assumed that DOSFS could only handle FAT12/16; can it actually handle small FAT32 volumes too?

It can, it was extended quite a while back from the original up-to-RISC OS 4.x-use-Win95FS-instead state to a more useful state (FAT12/16/32 and VFAT (aka long filenames) support). However, I have that nagging feeling that there was/is a known problem with the position of the central directory which may bite you if you use different systems to access the medium…one system then writes to one directory tree, and the other to a completely different one, leading reliably to disaster.