Hi,
FreeBSD creates logical partitions within what is actually a single 'dos' partition. In Solaris terminology these are 'slices' but FreeBSD calls them partitions and the 'dos' partitions are called slices which can get confusing.
The output from your mount command on BSD shows a suffix letter (a, e, f, g, h) . The 's4' means slice 4 or physical partition 4 , i.e. refers to /dev/hda4 . Its roughly similar to an extended 'DOS' partition where you can have logical partitions inside that.
For Solaris and FreeBSD you can mount the individual slices (sub-partitions) by reference to a pseudo device number as long as you have the custom partition table support compiled in for that flesystem For Solaris its called 'solaris (x86) partition label support' and for FreeBSD there is a similar option - ' BSD disklabel (FreeBSD partition tables) support' .
I don't know whether people like redhat activate those options in their standard kernel builds - you can probably tell by looking at the dmesg output, i.e. where it prints out the partition tables of your disk(s). If you have something roughly like this :
[s0] hda9 [s1] hda10 [s2] hda11 [s3] hda12 [s6] hda13 [s7] hda14
... then it recognises the individual slices/sub-partitions . (thats a Solaris example incidentally) You can then mount the pseudo device for the slice using the device numbers shown.
Check dmesg with either :
$ dmesg
or
$ cat /var/log/dmesg
(Look for the lines after "Partition check: "
If you don't have that support you can't mount the FreeBSD sub-partitions as shown by your mount output. In that case, your only option is to download the kernel source and configure / compile / install a custom kernel . Thats not actually as difficult as it may sound.
Regards