Another DOS Format issue with MMC/SD

Gene Smith gds at chartertn.net
Mon Jan 26 16:33:10 UTC 2009


After getting the format command to actually write to my MMC card I 
noticed another problem. I am not sure that it might not be a user error 
of some sort.

When I format with shell cmd
msdosfmt -t 16 /dev/sd-card-a
if I mount the card (or if it remained mounted during fmt), the files 
and data are still there but I think just in cache. So it appears the 
cache is not invalidated by fmt code.

If I restart RTEMS and mount, I can no longer mount /dev/sd-card-a1 but 
have to mount /dev/sd-card-a . Also, the sd-card-a1 partition no longer 
appears when I "ls /dev/", just sd-card-a.

When I put the card on linux, it automounts as device sdc and not sdc1 
as it would before. If I try to format it with gparted, it claims there 
are problems.

When I look at the device with dd in=dev/sdc out=t.txt I see that 
previous OEM formatting of the MBR (1st sector) and the FAT boot record 
(many sectors down) are gone. Instead the first block is not the MBR but 
the FAT boot record followed by the FAT tables and after that OK I 
think. So the disk looks like a "partition" (called sdc) w/o a MBR. I 
can mount it and copy files to it OK in linux.

When I put the card back on RTEMS I can see files and copy them OK but 
still can only mount /dev/sd-card-a.

Then back on linux with gparted, if I re-partition and then format I get 
a MBR back and can see and mount partition sdc1 and on RTEMS sd-card-a1 
again.

Looking at the RTEMS dos fmt code, it appears that it does not read in 
the current MBR and FAT boot record before reformatting but tries to 
determine the parameters based on other information it has. Also, it 
writes the FAT boot record in the first sector (in the code it calls it 
"MBR") which wipes out the valid MBR in the first sector.

I have noticed that other fmt tools (gparted, xp format) seem to keep 
the original MBR and FAT boot record (if valid) and only reinitializes 
the fat table and root dir area. They don't delete or change the 
MBR/partition table or move or change the FAT boot record, I think.

-gene






More information about the users mailing list