[GRASS-user] Cannot use grass on vfat partition

Agustin Lobo aloboaleu at gmail.com
Thu May 1 05:17:59 EDT 2008


Glynn,

Unfortunately, this is not the case. Directory
drwxrwxrwx /media/mifat32/test/PERMANENT
is in upper case, with its
DEFAULT_WIND  myname  wind files
all of them with -rwxrwxrwx permissions.

If I start
grass -text
on /media/mifat32
I enter a normal grass session (although g.mapset does not work!)

But if I do
grass -gui
I get the gui with
GIS data directory: /media/mifat32
Project Location: test
Mapset: testmapset

and when  I select Enter GRASS, I get an error:
Warning Invalid Mapset
Warning <0> is not a valid mapset.

Also, if within the grass text session I do:
  g.mapset /media/mifat32/test/testmapset
I get:
ERROR: The mapset does not exist.

even if I do it from within the
/media/mifat32/test/testmapset directory!

This is so confusing...

Agus


Glynn Clements wrote:
> Agustin Lobo wrote:
> 
>> I'm using grass 6.2.3 on ubuntu 7.1
>> I've set up a fat32 partition so that I can share data with windows.
>> The line in my fstab is:
>> /dev/sda4       /media/mifat32  vfat auto,rw,gid=1000,uid=1000,iocharset=utf8,umask=0000 0 0
>>
>> I mount with no problems, files belong to user alobo group alobo, I
>> can write,delete and make directories.
>>
>> When I try to create a LOCATION and a mapset, I get errors. For
>> example, cannot do it with
>> the graphic interface, if I select Create mapset, I get:
>>
>> couldn't change working directory to "##ERROR##": no such file or directory
>> couldn't change working directory to "##ERROR##": no such file or directory
>>     while executing
>> "cd $location"
>>     invoked from within
>> ".frame0.frameNMS.third.button invoke"
>>     ("uplevel" body line 1)
>>     invoked from within
>> "uplevel #0 [list $w invoke]"
>>     (procedure "tk::ButtonUp" line 22)
>>     invoked from within
>> "tk::ButtonUp .frame0.frameNMS.third.button"
>>     (command bound to event)
> 
> Just a guess, but is the PERMANENT directory in upper or lower case?
> 
> If Linux has decided to convert it to lower case, the CheckLocation
> procedure in gis_set.tcl won't find it.
> 
> FWIW (CC to grass-dev), checking for PERMANENT like this:
> 
>         foreach filename [lsort [glob -nocomplain *]] {
>             if {[string compare $filename "PERMANENT"] == 0} {
> 		...
>             }
>         }
> 
> is bogus. It should be:
> 
> 	if {[file isdirectory "PERMANENT"]} {
> 		...
> 	}
> 
> The latter will correctly handle a filesystem which isn't
> case-sensitive.
> 
> It should also handle the case where you don't have read permission on
> the location directory. Enumeration requires read permission, while
> lookup only requires execute permission. You shouldn't actually need
> read permission for anything other than "g.mapsets -l".
> 
>> I can do it with the console (Projection Values), but then, at the end,
>> the graphic interface quits and I get:
>>
>> GRASS 6.2.3 (delmedir):/media/mifat32 > ERROR: default region is not set
> 
> This might be related; if it's looking for PERMANENT/DEFAULT_WIND
> using enumeration and comparison (as above), it will fail if the case
> is wrong.
> 

-- 
Dr. Agustin Lobo
Institut de Ciencies de la Terra "Jaume Almera" (CSIC)
LLuis Sole Sabaris s/n
08028 Barcelona
Spain
Tel. 34 934095410
Fax. 34 934110012
email: Agustin.Lobo at ija.csic.es
http://www.ija.csic.es/gt/obster


More information about the grass-user mailing list