| Firstly, let me say that UMSDOS is going through some major code changes, |
| and has some KNOWN BUGS (and quite a few unknown :-). Please read |
| fs/umsdos/README-WIP.txt for more information on current status. Thanks. |
| |
| ---------------------------------------------------------------------------- |
| Very short explanation for the impatient! |
| |
| Umsdos is a file system driver that run on top the MSDOS fs driver. |
| It is written by Jacques Gelinas (jacques@solucorp.qc.ca) |
| and is currently maintained by Matija Nalis (mnalis@jagor.srce.hr) |
| |
| Umsdos is not a file system per se, but a twist to make a boring |
| one into a useful one. |
| |
| It gives you: |
| |
| long file names |
| Permissions and owners |
| Links |
| Special files (devices, pipes...) |
| All that is needed to be a linux root fs. |
| |
| There is plenty of documentation on it in the source. A formatted document |
| made from those comments is available from |
| sunsite.unc.edu:/pub/Linux/system/Filesystems/umsdos. |
| |
| You mount a DOS partition like this: |
| |
| mount -t umsdos /dev/hda3 /mnt |
| ^ |
| ---------| |
| |
| All options are passed to the msdos drivers. Option like uid,gid etc are |
| given to msdos. |
| |
| The default behavior of Umsdos is to do the same thing as the msdos driver |
| mostly passing commands to it without much processing. Again, this is |
| the default. After doing the mount on a DOS partition, nothing special |
| happens. This is why all mount options are passed to the msdos fs driver. |
| |
| Umsdos uses a special DOS file --linux-.--- to store the information |
| which can't be handled by the normal MS-DOS filesystem. This is the trick. |
| |
| --linux-.--- is optional. There is one per directory. |
| |
| **** If --linux-.--- is missing, then Umsdos process the directory the |
| same way the msdos driver does. Short file names, no goodies, default |
| owner and permissions. So each directory may have or not this |
| --linux-.--- |
| |
| Now, how to get those --linux-.---. |
| |
| \begin joke_section |
| |
| Well send me a directory content |
| and I will send you one customised for you. |
| $5 per directory. Add any applicable taxes. |
| \end joke_section |
| |
| A utility umssync creates those. The kernel maintains them. It is available |
| from the same directory above (sunsite) in the file umsdos_progs-0.7.tar.gz. |
| A compiled version is available in umsdos_progs-0.7.bin.tar.gz. |
| |
| So in our example, after mounting mnt, we do |
| |
| umssync . |
| |
| This will promote this directory (a recursive option is available) to full |
| umsdos capabilities (long name, etc.). However, an "ls -l" before and after |
| won't show much difference. The files which were there are still there, but |
| now you can do all this: |
| |
| chmod 644 * |
| chown you.your_group * |
| ls >THIS_IS.A.VERY.LONG.NAME |
| ln -s toto tata |
| ls -l |
| |
| Once a directory is promoted, all subdirectories created will inherit that |
| promotion. |
| |
| What happens if you boot DOS and create files in those promoted directories ? |
| Umsdos won't notice new files, but will signal removed files (it won't crash). |
| Using umssync in /etc/rc will make sure the DOS directory is in sync with |
| the --linux-.---. |
| |
| It is a good idea to put the following command in your RC file just |
| after the "mount -a": |
| |
| mount -a |
| /sbin/umssync -i+ -c+ -r99 /umsdos_mount_point |
| |
| (You put one for each umsdos mount point in the fstab) |
| |
| This will ensure nice operation. A umsdos.fsck is in the making, |
| so you will be allowed to manage umsdos partitions in the same way |
| other filesystems are, using the generic fsck front end. |
| |
| Hope this helps! |
| |