In this thread,  http://www.opensolaris.org/jive/thread.jspa?messageID=96829
OpenSolaris user Stuart Biggar was complaining about a 
fat filesystem that isn't mounted automatically any more by Tamarack / hald.
Mounting the media was automatic when vold was used in previous Solaris
releases.

A manual pcfs mount on snv_57 is working just fine.  But fstyp / libfstyp
is unable to identify the filesystem as "pcfs".

Stuart has sent me the first few blocks from that fat media, and I found out
that the problem is that the fat filesystem doesn't have a valid "Extended
boot signature" BS_BootSig field; so there is no BS_VolID "Volume serial
number", no BS_VolLab "Volume Label" and no BS_FilSysType field.
(BS_FilSysType is present, actually, and filled with "FAT16", as
recommended by Microsofts fat32 spec)

Apparently this is OK for a fat filesystem, and is documented by Microsoft's
FAT32 spec. And Solaris' pcfs filesystem module accepts it.
But Solaris' /usr/lib/fs/pcfs/fstyp.so.1 insists on seeing a
valid BS_BootSig field, without it a fat filesystem is not recognized:

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/fs.d/pcfs/fstyp/fstyp.c#259

    263         if (h->bs16.f_bootsig == 0x29) {

...

   270  } else if (h->bs32.f_bootsig == 0x29) {



% adb  /tmp/pcfs.img
0t38?Bna4Cna11Cna8C
0x26:           0
0x27:           ^...@^@^...@^@
0x2b:           ^...@^@^...@^@^...@^@^...@^@^...@^@^@
0x36:           FAT16   

% fstyp /tmp/pcfs.img
unknown_fstyp (no matches)



After setting the expected BS_BootSig value to 0x29, 
fstyp works just fine:

% echo 0t38/w 0x29 | adb -w /tmp/pcfs.img
0x26:           0       =       0x29

% fstyp -v /tmp/pcfs.img
pcfs
Bytes Per Sector  512           Sectors Per Cluster    16
Reserved Sectors  1             Number of FATs         2
Root Dir Entries  512           Number of Sectors      0
Sectors Per FAT   245           Sectors Per Track      63
Number of Heads   16            Number Hidden Sectors  63
Volume ID: 0x0
Volume Label: SD_512_U   
Drive Number: 0x0
Media Type: 0xf8   "Fixed" Disk


I think this needs to be fixed in usr/src/cmd/fs.d/pcfs/fstyp/fstyp.c

I this issue already addressed by the pcfs rewrite?
 
 
This message posted from opensolaris.org

Reply via email to