Re: kernel patch support large fat partitions

From: CJ (cj@cjcj.com)
Date: Thu Jan 03 2002 - 21:48:31 EST


FAT32 stores 28 bit cluster numbers. You need to increase cluster size
instead of the 28 bits to stay FAT32. The spec is fatgen102.pdf:, I'll
mail it to you.

Hardware White Paper Hardware White Paper
FAT: General Overview of On-Disk Format
Version 1.02, May 5, 1999
Microsoft Corporation

Vijay Kumar wrote:

> Alan,
>
> This is regarding a change I had to make to the kernel 2.2.17-14 to
> support really large drives. In our project we deal with huge drives,
> sometimes drives larger than 128GB. The file system is FAT32 and only
> one partition is create on any drive. During our testing we realized
> that linux fat implementation doesn't support partitions larger than
> 128GB(actually 64GB because of a bug in fat implementation).
>
> This limitation is imposed by the data structures used by the linux
> fat implementation to read/write directory entries. A 'long' data type
> is used to access directory entries on the disk, of which only 28 bits
> are used to identify the sector that contains the directory entry and
> the rest 4 bits are used to specify offset of the directory entry
> inside the sector. Using 28 bits to identify a sector means we cannot
> access sectors beyond 128GB (2^28*512), thus limiting us from creating
> partitions larger than 128GB on large disk drives.
>
> I have made changes to fat, vfat and msdos file system implementations
> in the kernel to use larger data types, thus allowing us to create
> larger partitions. As per the GPL I would like to make the patch
> available to everyone and also in case somebody has run into the same
> problem(who cares about fat in the linux world). The patch has been
> fairly well tested only on our systems(p3, 700MHz with FC). I truly
> appreciate if you & anybody in the kernel mailing list have any
> feedback about the changes.
>
> The patch is applicable to only 2.2.17-14 kernel and may require
> changes to use with other kernel versions. As far as I know none of
> the kernel versions provide any fix for this problem.
>
> Thanks,
> - Vijay

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 07 2002 - 21:00:23 EST