[Tfug] yasq - how to mount a usb stick - vfat
jblais
joe.blais at pti-instruments.com
Wed Dec 5 11:29:16 MST 2007
Hello
more stoopid questions today..
generally when I stick a usb memory stick into the Fedora 5 Linux box, it
automagically gets done. I looked into fstab, it doesn't mention anything
about it. Apparently FC5, or gnome, or whatever, does it's magic in a
Winderseque way.
So now I made an application that does the mount, because I used udev to
always put special device in a known place. When I look at dev, the stick
may show us as sda, or sdb, or... depending on if it was unmounted
correctly (who knows what a user may do), or which plug it was pushed into,
or the phase of the moon (more windersesque). I disabled autobrowse,
because I want my app to look like an instrument, not a desktop. Anyway,
without auto browse, I needed a udev rule to put whatever new sd*1 into a
known place depending on the actual usb port. But doing so, only mounts the
special device, and my app now needs ot mount the file system.
So, without a good example from fstab, or from seeing what the automagic
mount is really doing (which seems OK), I now need to know what parameters
are best. I do not want is the automagic renaming of files - that is names
like HELLO.TXT should not be changed to hello.txt and
ThisIsAStoopidlyLargeNameThatSomePeopleInsistOn.abc being changed to
THIS~024.TXT or some other stuff that causes me a headache when I try to
re-locate a file once written to a stick.
Anyway, I'm currently using something like:
--snip--
uid_t tUserID = getuid() ;
gid_t tGroupID = getgid() ;
char szUserInfo[128] ;
sprintf( szUserInfo, "uid=%d,gid=%d,umask=0000,shortname=winnt",
(int)tUserID, (int)tGroupID ) ;
if ( mount( "/dev/myPort1, //udev rules do this for me
"/home/user500/Stick1", //I expect file system here
"vfat",
MS_MGC_VAL|MS_NODEV|MS_SYNCHRONOUS,
szUserInfo ) )
--unsnip--
this should be the same as:
$ mount -t vfat -o uid=500,gid=500,umaks=0000,shortname=winnt
/dev/myPort1 /home/user500/Stick1
It seems to work. the /dev/myPort1 symlink set by udev rules seems to be
reliable enough. My program always knows to check /home/user500/Stick1 --
and it seems to work
BUT, I've had enough problems getting all this figured out an working, so I
just thought to ask y'all if anyone knows of or uses some better mount
params.
Thanks
Joe
More information about the tfug
mailing list