Click to See Complete Forum and Search --> : Mounting large(!) fat32 drives under freebsd


dboyer
04-08-2004, 04:16 AM
this forum doesn't seem so active, but its worth a shot :)
--------------------------------------------------------------
As far as i can tell, this is a limitation in freebsd's mount program...

I am trying to mount a huge partition onto my freebsd box...

[root@DaemonLove - /home/dboyer]$ fdisk /dev/ad4
******* Working on device /dev/ad4 *******
parameters extracted from in-core disklabel are:
cylinders=310101 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=310101 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 11 (0x0b),(DOS or Windows 95 with 32 bit FAT)
start 63, size 11759517 (5741 Meg), flag 0
beg: cyl 0/ head 1/ sector 1;
end: cyl 731/ head 254/ sector 63
The data for partition 2 is:
sysid 12 (0x0c),(DOS or Windows 95 with 32 bit FAT (LBA))
start 11759580, size 300817125 (146883 Meg), flag 0
beg: cyl 732/ head 0/ sector 1;
end: cyl 1023/ head 254/ sector 63
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

i am able to easily mount the smaller partition easily using the command:
mount_msdosfs /dev/ad4s1 /mnt

however,
mount_msdosfs /dev/ad4s2 /mnt
returns "mount_msdosfs: /dev/ad4s2: Invalid argument"
which is very very strange... grepped output from /dev/ gives me:

ad4
ad4s1
ad4s2

so there is a device... I've read in a couple spots (only 2 or 3 useful hits from google) that fat32 should have a addressable range of ~138gigs, and that is freebsd's limitation... however, linux and windows can manipulate this drive successfully...

Is there any possible work around? i have linux compatiblity, so is there any possiblity of using linux binaries (aka, mount_msdos) to mount it? (seems like a stretch to use a system utility through a compatibility layer...

mrBen
04-08-2004, 07:31 AM
I'm not sure if this applies to *BSD, but under Linux you would need to use the vfat filesystem, rather than msdos. MSDOS is for FAT16 (and, IIRC, FAT12) but doesn't handle FAT32.

dboyer
04-08-2004, 04:37 PM
Here are the formats freebsd seems to support for mounting:

mount_cd9660
mount_devfs
mount_ext2fs
mount_fdescfs
mount_linprocfs
mount_mfs
mount_msdosfs
mount_nfs
mount_nfs4
mount_ntfs
mount_nullfs
mount_procfs
mount_std
mount_udf
mount_umapfs
mount_unionfs

dboyer
04-08-2004, 06:33 PM
this shows up in /var/log/messeges every time i try and mount it:

Apr 8 14:22:30 DaemonLove kernel: mountmsdosfs(): disk too big, sorry

Alex Cavnar, aka alc6379
04-08-2004, 11:27 PM
Originally posted by dboyer
this shows up in /var/log/messeges every time i try and mount it:

Apr 8 14:22:30 DaemonLove kernel: mountmsdosfs(): disk too big, sorry

...I'd say that settles it right there. The way msdosfs is written, it can't handle that big a FAT filesystem. What version of FBSD are you running? Sometimes there can be differences between the -STABLE and the -CURRENT branches of the releases.

Have you tried a Google for BSD (http://www.google.com/bsd) search using that log message? You may find a workaround posted, perhaps a kernel hack or a suggestion to handle it.