Supermount is a pseudo-filesystem which manages filesystems on removable media like floppy disks and CD-ROMs. It frees you from need to manually mount and unmount media.
With supermount, you can change the disk in the drive whenever you want (with the obvious exception that you shouldn't do it when the filesystem is actively in use). You don't need to "cd" out of the directory first, and you don't need to tell the kernel what you're doing --- supermount will detect the media change automatically.
Supermount will automatically detect whether the media you are mounting is read-write or readonly, and if you mount a write-protected disk, then the subfs will be mounted as a readonly filesystem.
Supermount detects when you have finished activity on the subfs, and will flush all buffers to the disk before completing the operation. So, if you copy a file onto a supermounted floppy disk, the data will all be written to disk before the "cp" command finishes. When the command does complete, it will be safe to remove the disk.
To my knowledge supermount was originally created for kernel 2.0 by Stephen Tweedie (http://www.linuxhq.com/patch/20-p0807.html) and later ported to kernel 2.2 and 2.4 by Alexis Mikhailov (http://www.geocities.com/SiliconValley/Lab/8144/supermount.html). Supermount has been included as standard filesystem for removable media in Mandrake Linux that is my favorite Linux distribution.
This work started as a set of patches that fixed several bugs in supermount included in Mandrake Linux. Working on them I realized that supermount in its current form could not support all features I wanted - most importantly, it was not safe to remove media (contrary to the above summary :) Fixing it resulted in almost complete redesign and rewrite of original implementation, that is why this project is named supermount-ng to avoid confusion with Mandrake version.
Supermount for kernel 2.4 is believed to be stable now. Hmm ... I just (2004-01-13) realized that it may have problems with properly invalidating NFS handles. If you have any experience - please, let me know.
Supermount for kernel 2.6 is likely to not support NFS export at the moment. I do not need it nor can test it so it will remain unless somebody requests this functionality or provides patch.
Current version for kernel 2.4  is 1.2.11a. Patches are available for the following kernel versions (not all of them have been tested by me):
kernel 2.4.20 gzipped and md5sum
kernel 2.4.21 gzipped and md5sum
kernel 2.4.22 gzipped and md5sum
kernel 2.4.23 gzipped and md5sum
kernel 2.4.24 gzipped and md5sum
Current version for kernel 2.6 is 2.0.4. Patches are available for the following kernel versions:
kernel 2.6.1 gzipped and md5sum
kernel 2.6.2 gzipped and md5sum
Additionally, supermount-ng is now included in some third-party kernels, patch sets and distributions. Some projects are listed below (in order they became known to me)
Juan Quintela from MandrakeSoft for invaluable discussion about supermount design
Danny Tholen for testing it and constantly suggesting new usability improvements. He is responsible for most user-visible (at least, user-friendly :) features supermount-ng has now
© 2003, 2004 Andrey Borzenkov
Last changed 2004-02-05