Can NTFS partitions be defragged within Linux? Does fsck work for this?
(Here and there I've seen a recommendation to use
fsck -t ntfs --kerneldefrag /dev/XXX. Would this work?)
There is a universal tool that can do defragmentation on linux called shake. You can download the source, or for Ubuntu users there's a PPA (the
shake package in the official repository is unrelated).
I've just tested it on an NTFS filesystem mounted using ntfs-3g and it seemed to work without problems (no errors, the verbose output looks typical). So probably is filesystem-independent... Almost, since it can make use of extended attributes. To work without making use of those, you should use the
-X option. Try using
shake --old=0 -v -X /some/directory/
From my experience, it has to be run as root.