2003-06-07 02:47:25

by Robert White

[permalink] [raw]
Subject: VFAT Defragmentation under Linux

Greetings,

I understand that the current file system drivers for the primary file
system types have anti-fragmentation logic built into them already. (e.g.
ext2/3 moves things around and such while the file system is mounted.)

Do the VFAT drivers likewise defragment the VFAT partitions?

If not, is there a Linux-hosted defragment program for defragmenting an
unmounted VFAT partition?

If such exists I have been unable to find it via normal network searches
because the dos/windows tools raise the noise floor on "VFAT defragment" so
high that no other refinements seem to hit.

So far the only Linux-level defragment operation that I seem to have
available for a VFAT partition is to mount the drive, cpio everything off of
it, delete its contents, and then copy everything back. That's a little
drastic and has obvious issues if you want to then boot that partition
separately/later.

Rob.


2003-06-07 06:52:54

by Stewart Smith

[permalink] [raw]
Subject: Re: VFAT Defragmentation under Linux

On Fri, Jun 06, 2003 at 08:00:57PM -0700, Robert White wrote:
> Do the VFAT drivers likewise defragment the VFAT partitions?

Not that I'm aware of, and I'd argue that it's probably not
a good idea to try and do it inside the FS.

> If not, is there a Linux-hosted defragment program for defragmenting an
> unmounted VFAT partition?

The closest would probably be how programs such as GNU parted resize
partitions.

There are many optimizations that you could do to the average FAT/VFAT
filesystem. From making files contiguous, grouping files that are in
the same directory, ordering the directory lists etc.

Although one would have to question the usefulness of this kind of software these days. The number of new VFAT filesystems is getting smaller by the month (except on CF cards in cameras and the like - and they'd be re mkfs'd pretty often so wouldn't suffer too much from the performance degredation of continuous use).

I'd argue that testing/bug fixing ntfsresize would be of more use - especially in converting eXtra Poo users. :)

> So far the only Linux-level defragment operation that I seem to have
> available for a VFAT partition is to mount the drive, cpio everything off of
> it, delete its contents, and then copy everything back. That's a little
> drastic and has obvious issues if you want to then boot that partition
> separately/later.

This would not do a 'complete' optimization... but probably would help.