From: <pet...@ji...> - 2005-06-27 10:49:42
|
Hello I have a problem to find how mount sshfs this does work: # sshfs 'root@tux:/' '/mnt/ramecek' root@tux's password: [root@klima-pc mnt]# ls /mnt/ramecek base bin boot dev etc home initrd lib lost+found mnt opt proc = root sbin tftpboot tmp usr var but this does not [root@klima-pc mnt]# mount -t fuse 'root@tux:/' '/mnt/ramecek' mount: wrong fs type, bad option, bad superblock on root@tux:/, or too many mounted file systems [root@klima-pc mnt]# mount -t fuse 'sshfs#root@tux:/' '/mnt/ramecek' mount: wrong fs type, bad option, bad superblock on sshfs#root@tux:/, or too many mounted file systems I use strace and I find it is looking for /sbin/mount.fuse but it does=20 not exist ... I cant find it in fuse sources ... [root@klima-pc mnt]# strace mount -t fuse 'root@tux:/' '/mnt/ramecek' =2E............ getuid32() =3D 0 geteuid32() =3D 0 lstat64("/etc/mtab", {st_mode=3DS_IFREG|0644, st_size=3D489, ...}) =3D 0 stat64("/sbin/mount.fuse", 0xbfe92c60) =3D -1 ENOENT (No such file or=20 directory) rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) =3D 0 mount("root@tux:/", "/mnt/ramecek", "fuse", 0xc0ed0000, 0) =3D -1 EINVAL = (Invalid argument) =2E............ What is wrong ? Petr Kl=C3=ADma JIHOMILK a.s. Rudolfovsk=C3=A1 246/83 370 50 =C4=8Cesk=C3=A9 Bud=C4=9Bjovice Czech Rpublic phone: +420 389 136 209 e-mail: pet...@ji... |
From: Vincenzo C. <vin...@ya...> - 2005-06-27 11:00:17
|
Petr Klíma wrote: > Hello > > I have a problem to find how mount sshfs > > this does work: > # sshfs 'root@tux:/' '/mnt/ramecek' > root@tux's password: > [root@klima-pc mnt]# ls /mnt/ramecek > base bin boot dev etc home initrd lib lost+found mnt opt proc > root sbin tftpboot tmp usr var > > > but this does not > > [root@klima-pc mnt]# mount -t fuse 'root@tux:/' '/mnt/ramecek' > mount: wrong fs type, bad option, bad superblock on root@tux:/, > or too many mounted file systems The executable code for sshfs is compiled into the sshfs executable, while the fuse kernel module (and the corresponding "fuse" filesystem type) is only a wrapper which, alone, can't mount anything. So the correct usage of sshfs and other fuse filesystems is to use the filesystem executable. There are many fuse-based filesystems, each one with its own executable. In other words, if you look at your second attempt, you will see no way to tell the "fuse" module what protocol to use to mount "root@tux:/", and other information like the password for example. This is the task of the sshfs executable. V. -- Please note that I do not read the e-mail address used in the from field but I read vincenzo_ml at yahoo dot it Attenzione: non leggo l'indirizzo di posta usato nel campo from, ma leggo vincenzo_ml at yahoo dot it |
From: <pet...@ji...> - 2005-06-27 11:17:20
|
Vincenzo Ciancia napsal(a): > Petr Kl=C3=ADma wrote: >=20 >=20 >>Hello >> >>I have a problem to find how mount sshfs >> >>this does work: >># sshfs 'root@tux:/' '/mnt/ramecek' >>root@tux's password: >>[root@klima-pc mnt]# ls /mnt/ramecek >>base bin boot dev etc home initrd lib lost+found mnt opt pro= c >> root sbin tftpboot tmp usr var >> >> >>but this does not >> >>[root@klima-pc mnt]# mount -t fuse 'root@tux:/' '/mnt/ramecek' >>mount: wrong fs type, bad option, bad superblock on root@tux:/, >> or too many mounted file systems >=20 >=20 > The executable code for sshfs is compiled into the sshfs executable, wh= ile > the fuse kernel module (and the corresponding "fuse" filesystem type) i= s > only a wrapper which, alone, can't mount anything. So the correct usage= of > sshfs and other fuse filesystems is to use the filesystem executable. T= here > are many fuse-based filesystems, each one with its own executable. OK This confused me [root@klima-pc ~]# mount =2E... sshfs#root@tux:/ on /mnt/ramecek type fuse (rw) =2E... > In other words, if you look at your second attempt, you will see no way= to > tell the "fuse" module what protocol to use to mount "root@tux:/", and > other information like the password for example. This is the task of th= e > sshfs executable. >=20 but i prevents me from mounting an FUSE fs on boot time it would be nice if you can write something like: # mount(.fuse) -t fuse -o opt1=3D1,opt2=3D2 'root@tux:/' '/mnt/ramecek' it should make life really easier I know /sbin/mount.fuse should know what binary represents what=20 fusefilesystem but it shoul be easy to do. > V. >=20 --=20 Petr Kl=C3=ADma JIHOMILK a.s. Rudolfovsk=C3=A1 246/83 370 50 =C4=8Cesk=C3=A9 Bud=C4=9Bjovice Czech Rpublic phone: +420 389 136 209 e-mail: pet...@ji... |
From: Miklos S. <mi...@sz...> - 2005-06-27 11:30:36
|
> OK > > This confused me > [root@klima-pc ~]# mount > .... > sshfs#root@tux:/ on /mnt/ramecek type fuse (rw) > .... > > > In other words, if you look at your second attempt, you will see no way to > > tell the "fuse" module what protocol to use to mount "root@tux:/", and > > other information like the password for example. This is the task of the > > sshfs executable. > > > > but i prevents me from mounting an FUSE fs on boot time > > it would be nice if you can write something like: > > # mount(.fuse) -t fuse -o opt1=1,opt2=2 'root@tux:/' '/mnt/ramecek' > > it should make life really easier > > I know /sbin/mount.fuse should know what binary represents what > fusefilesystem but it shoul be easy to do. Yes, a generic /sbin/mount.fuse would be nice. It could make the assumption, that the name of the binary can be derived from the "device" parameter if it's the same as the filesystem type. For example: mount -t fuse "sshfs#root@tux:/" /mnt/ramecek The "device" parameter should be of the form "fstype[#location]". mount.fuse could cut out the part before '#' and try to execute it. Any volunteers for this? I'd prefer a bash script to perl/python, for less dependencies. Thanks, Miklos |
From: <pet...@ji...> - 2005-06-27 12:48:05
|
>=20 > Yes, a generic /sbin/mount.fuse would be nice. It could make the > assumption, that the name of the binary can be derived from the > "device" parameter if it's the same as the filesystem type. >=20 > For example: >=20 > mount -t fuse "sshfs#root@tux:/" /mnt/ramecek >=20 > The "device" parameter should be of the form "fstype[#location]". > mount.fuse could cut out the part before '#' and try to execute it. >=20 > Any volunteers for this? I'd prefer a bash script to perl/python, for > less dependencies. >=20 > Thanks, > Miklos >=20 >=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D #!/bin/bash # # FUSE mount helper # Petr Klima <qa...@se...> # Thanks to Miklos Szeredi <mi...@sz...> # to kick me to the right way # VERSION=3D"0.0.1" PRGNAME=3D`basename $0` USAGE=3D"${PRGNAME} version ${VERSION} usage: ${PRGNAME} fusefs_type#[mountpath] mountpoint [FUSE options] example: ${PRGNAME} sshfs#root@tux:/ /mnt/tuxssh -o rw " function die { echo -e "$PRGNAME# $1" >&2 [ -z "$2" ] && exit 128 exit "$2" } [ "$#" -ge 2 ] || die "${USAGE}" FSTYPE=3D${1%%\#*} # for now i have to be same as FUSE mount binary # should be configurable FSBIN=3D`which ${FSTYPE} 2>/dev/null` \ || die "Can not find FUSE mount binary for FS ${FSTYPE}" 1 MOUNTPATH=3D${1#*#} # was there an # in $1 [ "$1" =3D "$MOUNTPATH" ] && MOUNTPATH=3D"" MOUNTPOINT=3D"$2" [ -d "${MOUNTPOINT}" ] || die "Directory ${MOUNTPOINT} does not exist" shift shift OPTIONS=3D"$@" ${FSTYPE} ${MOUNTPATH} ${MOUNTPOINT} ${OPTIONS} =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Petr Kl=C3=ADma JIHOMILK a.s. Rudolfovsk=C3=A1 246/83 370 50 =C4=8Cesk=C3=A9 Bud=C4=9Bjovice Czech Rpublic phone: +420 389 136 209 e-mail: pet...@ji... |
From: Miklos S. <mi...@sz...> - 2005-06-27 13:08:51
|
> ==================================================================== > #!/bin/bash > # > # FUSE mount helper > # Petr Klima <qa...@se...> > # Thanks to Miklos Szeredi <mi...@sz...> > # to kick me to the right way > # Thanks, added to CVS. For me an "export PATH" is needed before starting the filesystem (otherwise it won't find /usr/local/bin/fusermount). I don't really see the reason why PATH is not passed to the mount script... Miklos |
From: Vincenzo C. <vin...@ya...> - 2005-06-27 13:28:37
|
Miklos Szeredi wrote: > > For me an "export PATH" is needed before starting the filesystem > (otherwise it won't find /usr/local/bin/fusermount). I don't really > see the reason why PATH is not passed to the mount script... > It is passed to the mount script, I tried with echo $PATH, but it's not passed to the fuse library, maybe because there is a fork? V. -- Please note that I do not read the e-mail address used in the from field but I read vincenzo_ml at yahoo dot it Attenzione: non leggo l'indirizzo di posta usato nel campo from, ma leggo vincenzo_ml at yahoo dot it |
From: Miklos S. <mi...@sz...> - 2005-06-27 13:38:39
|
> > For me an "export PATH" is needed before starting the filesystem > > (otherwise it won't find /usr/local/bin/fusermount). I don't really > > see the reason why PATH is not passed to the mount script... > > > > It is passed to the mount script, I tried with echo $PATH, but it's not > passed to the fuse library, maybe because there is a fork? That's because the PATH shell variable is automatically set by bash to a sane value on startup, if the PATH environment variable is not set. But it does not automatically export PATH to the environment, so any programs started from the shell will not inherit PATH. Miklos |
From: Vincenzo C. <vin...@ya...> - 2005-06-27 13:17:53
|
Ouch, you beat me, I implemented it too, but your is more professional so I will retire :) However, for this to work, at least on my system, fusermount or a symlink to it has to be in /usr/bin and not in /usr/local/bin, or else it says fuse: failed to exec fusermount: Invalid argument I think this is because forked processes get somewhat their PATH reset for security reasons but don't know. Perhaps this might be considered a bug in the fuse libraries that should know where the fusermount utility is located instead of looking for it in the path, but I am not sure. bye and thanks Vincenzo -- Please note that I do not read the e-mail address used in the from field but I read vincenzo_ml at yahoo dot it Attenzione: non leggo l'indirizzo di posta usato nel campo from, ma leggo vincenzo_ml at yahoo dot it |
From: Miklos S. <mi...@sz...> - 2005-06-27 13:26:28
|
> Ouch, you beat me, I implemented it too, but your is more professional so I > will retire :) > > However, for this to work, at least on my system, fusermount or a symlink to > it has to be in /usr/bin and not in /usr/local/bin, or else it says > > fuse: failed to exec fusermount: Invalid argument > > I think this is because forked processes get somewhat their PATH reset for > security reasons but don't know. > > Perhaps this might be considered a bug in the fuse libraries that should > know where the fusermount utility is located instead of looking for it in > the path, but I am not sure. Hmm, yes, the library ought to know. Maybe it should try to find it in the path, and if that fails, fall back on the install directory determined at configure time. I'll fix that. Thanks, Miklos |
From: Valient G. <vg...@po...> - 2005-06-27 11:41:46
|
On Monday 27 June 2005 13:17, Petr Kl=C3=ADma wrote: > but i prevents me from mounting an FUSE fs on boot time > > it would be nice if you can write something like: > > # mount(.fuse) -t fuse -o opt1=3D1,opt2=3D2 'root@tux:/' '/mnt/ramecek' > =46use used to include a mount.fuse python script in the util directory whi= ch=20 could be used this say. Although I never used it, here are the script=20 comments: [comments from fuse-2.1/util/mount.fuse]: > This utility allows FUSE filesystems to be mounted with the regular *nix > 'mount' command, or even be listed in /etc/fstab >=20 > To enable this, you need to: > 1. set execute-permission on this script > 2. symlink this script into /sbin/mount.fuse >=20 > Usage: >=20 > You can use this in 3 ways: > 1. mount -t fuse /path/to/script/or/program /path/of/mount/point=20 [options] > 2. mount -t fuse none /path/of/mount/point -o=20 fs=3D/path/to/script/or/prog[, > opt=3Dval...] > 3. in /etc/fstab, add: > /path/to/script/or/prog /path/of/mount/point fuse noauto[,...] >=20 I don't know what happened to it in later versions of Fuse. Valient |
From: <pet...@ji...> - 2005-06-27 12:50:43
|
>>it would be nice if you can write something like: >> >># mount(.fuse) -t fuse -o opt1=3D1,opt2=3D2 'root@tux:/' '/mnt/ramecek'= >> >=20 >=20 > Fuse used to include a mount.fuse python script in the util directory w= hich=20 > could be used this say. Although I never used it, here are the script = > comments: >=20 > [comments from fuse-2.1/util/mount.fuse]: sorry but in 2.3.0 it disapears ... $ ls fuse-2.3.0/util/ fusermount.c Makefile.am Makefile.in Petr Kl=C3=ADma JIHOMILK a.s. Rudolfovsk=C3=A1 246/83 370 50 =C4=8Cesk=C3=A9 Bud=C4=9Bjovice Czech Rpublic phone: +420 389 136 209 e-mail: pet...@ji... |
From: Miklos S. <mi...@sz...> - 2005-06-27 13:04:41
|
> > Fuse used to include a mount.fuse python script in the util directory which > could be used this say. Although I never used it, here are the script > comments: > > [comments from fuse-2.1/util/mount.fuse]: > [...] > > I don't know what happened to it in later versions of Fuse. I removed it. It was unmaintained, and I didn't really like that it was a python script (not because I don't like python, but because not everybody has it installed). Miklos |