The default sectors per cluster calculated by mkdosfs are outdated,
see http://technet.microsoft.com/en-us/library/cc938438.aspx.

The deviations may cause some 3rd party devices (e.g. TechniSat DVB
receivers) to hang when reading mkdosfs generated file systems.
---
 src/mkdosfs.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/mkdosfs.c b/src/mkdosfs.c
index af1e0d1..a3505b4 100644
--- a/src/mkdosfs.c
+++ b/src/mkdosfs.c
@@ -713,18 +713,18 @@ def_hd_params:
        }
        if (size_fat == 32) {
            /* For FAT32, try to do the same as M$'s format command
-            * (see http://www.win.tue.nl/~aeb/linux/fs/fat/fatgen103.pdf p. 
20):
-            * fs size <= 260M: 0.5k clusters
-            * fs size <=   8G: 4k clusters
-            * fs size <=  16G: 8k clusters
-            * fs size >   16G: 16k clusters
+            * (http://technet.microsoft.com/en-us/library/cc938438.aspx):
+            * fs size <   8G:  4k clusters
+            * fs size <  16G:  8k clusters
+            * fs size <  32G: 16k clusters
+            * fs size >= 32G: 32k clusters
             */
            unsigned long sz_mb =
                (blocks + (1 << (20 - BLOCK_SIZE_BITS)) - 1) >> (20 -
                                                                 
BLOCK_SIZE_BITS);
            bs.cluster_size =
-               sz_mb > 16 * 1024 ? 32 : sz_mb > 8 * 1024 ? 16 : sz_mb >
-               260 ? 8 : 1;
+               sz_mb >= 32 * 1024 ? 64 : sz_mb >= 16 * 1024 ? 32 : sz_mb >=
+               8 * 1024 ? 16 : 8;
        } else {
            /* FAT12 and FAT16: start at 4 sectors per cluster */
            bs.cluster_size = (char)4;
-- 
1.7.3.4


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to