[GRASS-user] Cannot use grass on vfat partition

Glynn Clements glynn at gclements.plus.com
Wed Apr 30 13:44:38 EDT 2008


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.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-user mailing list