From: Guillaume P. <gpo...@gm...> - 2004-09-21 17:38:30
|
Hi, I'm trying to use fusesmb, which is a fuse fs that permits to browse an smb network. I would like it to be mounted at boot. I thought of two solutions: 1. Add an entry to fstab. When the fs is mounted, mtab reports this entry: /proc/fs/fuse/dev on /mnt/smb type fuse (rw,nosuid,nodev) So I thought that I could mount the fs as any other fs, but it fails: localhost root # mount -t fuse /proc/fs/fuse/dev /mnt/smb mount: wrong fs type, bad option, bad superblock on /proc/fs/fuse/dev, or too many mounted file systems Is this supposed to work anyway? 2. As the previous solution fails, I thought I could write a simple initscript that would implemente a fusesmb service. First of all, here are the commands I use to manually mount/unmount the fs: fusermount -x /mnt/smb fusesmb fusermount -u /mnt/smb These commands work allright apart from a minor glitch that I will explain in another post. So I created a simple script in /etc/init.d: -------------------------- localhost root # cat /etc/init.d/fusesmb #!/sbin/runscript # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 depend() { need localmount need net } checkconfig() { if [ ! -e /proc/fs/fuse/dev ] ; then eerror "Fuse module not loaded" return 1 fi } start() { checkconfig || return 1 USER=`whoami` ebegin "Starting fusesmb as "$USER /usr/local/bin/fusermount -x /mnt/smb /usr/local/bin/fusesmb & eend $? } stop() { ebegin "Stopping fusesmb" /usr/local/bin/fusermount -u /mnt/smb eend $? } ---------------------------- If i'm logged in as root and start the service manually, it works all right: ---------------------------- localhost root # ls /mnt/smb localhost root # /etc/init.d/fusesmb start * Starting fusesmb as root... [ ok ] localhost root # ls /mnt/smb MDKGROUP localhost root # ---------------------------- In this snippet, the service is initially stopped, so ls gives no result. Then I start the service, and now ls shows me the only workgroup I have in my network. But if I setup the rc scripts to start the service at boot, the service seems to start allright, mtab reports the fuse fs, there are 3 fusesmb processes running, but ls produces an error: -------------------------- localhost root # ls /mnt/smb ls: /mnt/smb: No such file or directory -------------------------- If I manually restart the service, it works normally. At boot the service starts after /proc is mounted and after the network is started. Does fuse use any environment variable that might not be set before I get the shell? Does anybody have an idea as to why I experience this problem? I'm using fuse 1.3, with kernel 2.6.7, gentoo Guillaume |