From: Prasad J. <pra...@gm...> - 2008-10-26 17:59:18
|
Hi All, I am new in the fuse file system development. I went through the standard fuse examples to understand the working of the fuse developed file system. But when I run fusexmp it always mounts the root on to mount point. Is not there any way to mount a non-root file system. Here is the main() function defination from the code. fuse_main only seems to be mounting / to a mountpoint int main(int argc, char *argv[]) { umask(0); return fuse_main(argc, argv, &xmp_oper, NULL); } after reading the library code of fuse, it seems like the source of the mount point is either fsname, subtype, or device i.e. /dev/fuse. /* code which does mounting */ source = malloc((mo->fsname ? strlen(mo->fsname) : 0) + (mo->subtype ? strlen(mo->subtype) : 0) + strlen(devname) + 32); strcpy(source, mo->fsname ? mo->fsname : (mo->subtype ? mo->subtype : devname)); res = mount(source, mnt, type, mo->flags, mo->kernel_opts); /* code */ prasad@prasad-laptop:/tmp/examples$ mount | grep fusexmp fusexmp on /tmp/examples/mnt type fuse.fusexmp (rw,nosuid,nodev,user=prasad) So just wanted to know can not I mount a non / FS on a mmount point using fuse? Thanks and Regards, Prasad |
From: Matthew F. <mat...@ga...> - 2008-10-26 18:27:25
|
Prasad Joshi wrote: > Hi All, > > I am new in the fuse file system development. I went through the standard > fuse examples to understand the working of the fuse developed file system. > > But when I run fusexmp it always mounts the root on to mount point. Is not > there any way to mount a non-root file system. fusexmp is just a demo. It is not meant to be useful code. You can clearly see from xmp_getattr that fuse will always just provide the info for the root filesystem. It's hard-coded, by design. That's what: res = lstat(path, stbuf); does. > So just wanted to know can not I mount a non / FS on a mmount point using > fuse? That's not what FUSE is for. You can do that with just: sudo mount --bind /realdir /mnt_point This doesn't even use FUSE. Telling us your objective (if any) will let us point you in the right direction. Matt Flaschen |
From: Prasad J. <pra...@gm...> - 2008-10-26 18:56:24
|
On Sun, Oct 26, 2008 at 11:57 PM, Matthew Flaschen < mat...@ga...> wrote: > Prasad Joshi wrote: > > Hi All, > > > > I am new in the fuse file system development. I went through the standard > > fuse examples to understand the working of the fuse developed file > system. > > > > But when I run fusexmp it always mounts the root on to mount point. Is > not > > there any way to mount a non-root file system. > > fusexmp is just a demo. It is not meant to be useful code. You can > clearly see from xmp_getattr that fuse will always just provide the info > for the root filesystem. It's hard-coded, by design. That's what: > > res = lstat(path, stbuf); > > does. > > > So just wanted to know can not I mount a non / FS on a mmount point using > > fuse? > > That's not what FUSE is for. You can do that with just: > > sudo mount --bind /realdir /mnt_point > > This doesn't even use FUSE. Telling us your objective (if any) will let > us point you in the right direction. > Thanks a lot for a quick reply. I want to develop a simple FUSE based file system HideFS. Using this I should be able to mount my home directory somewhere and there will be a utility which will allow me to hide the files which I want. So if a file is marked hidden then it won't be displayed in when I do ls on the <fuse mnt point> So the first task that I want to do is to mount the home directory on to a mnt_point. Thanks and Regards, Prasad Joshi. > > Matt Flaschen > |
From: mahonema <mah...@fo...> - 2008-10-27 01:17:34
|
hi Maybe this info is useful for u... FROM ../ fuse/fuse-2.7.4/FAQ 393 If a filesystem is mounted over a directory, how can I access the old 394 --------------------------------------------------------------------- 395 contents? 396 --------- 397 398 There are two possibilities: 399 400 The first is to use 'mount --bind DIR TMPDIR' to create a copy of the 401 namespace under DIR. After mounting the FUSE filesystem over DIR, 402 files can still be accessed through TMDIR. This needs root privileges. 403 404 The second is to set the working directory to DIR after mounting the FUSE 405 filesystem. For example before fuse_main() do 406 407 save_dir = open(DIR, O_RDONLY); 408 409 And from the init() method do 410 411 fchdir(save_dir); 412 close(save_dir); 413 414 Then access the files with relative paths (with newer LIBC versions 415 the *at() functions may also be used instead of changing the CWD). 416 417 This method doesn't need root privileges, but only works on Linux 418 (FreeBSD does path resolving in a different way), and it's not even 419 guaranteed to work on future Linux versions. mahonema 2008-10-27 发件人: Prasad Joshi 发送时间: 2008-10-27 02:57:05 收件人: Matthew Flaschen 抄送: fus...@li... 主题: Re: [fuse-devel] Mounting a non-root file system using fuse. On Sun, Oct 26, 2008 at 11:57 PM, Matthew Flaschen < mat...@ga... > wrote: > Prasad Joshi wrote: > > Hi All, > > > > I am new in the fuse file system development. I went through the standard > > fuse examples to understand the working of the fuse developed file > system. > > > > But when I run fusexmp it always mounts the root on to mount point. Is > not > > there any way to mount a non-root file system. > > fusexmp is just a demo. It is not meant to be useful code. You can > clearly see from xmp_getattr that fuse will always just provide the info > for the root filesystem. It's hard-coded, by design. That's what: > > res = lstat(path, stbuf); > > does. > > > So just wanted to know can not I mount a non / FS on a mmount point using > > fuse? > > That's not what FUSE is for. You can do that with just: > > sudo mount --bind /realdir /mnt_point > > This doesn't even use FUSE. Telling us your objective (if any) will let > us point you in the right direction. > Thanks a lot for a quick reply. I want to develop a simple FUSE based file system HideFS. Using this I should be able to mount my home directory somewhere and there will be a utility which will allow me to hide the files which I want. So if a file is marked hidden then it won't be displayed in when I do ls on the <fuse mnt point > So the first task that I want to do is to mount the home directory on to a mnt_point. Thanks and Regards, Prasad Joshi. > > Matt Flaschen > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ fuse-devel mailing list fus...@li... __________ NOD32 3554 (20081025) 信息 __________ 这封邮件已通过 NOD32 反病毒系统检测。 |
From: Miklos S. <mi...@sz...> - 2008-10-27 13:19:22
|
On Mon, 27 Oct 2008, Prasad Joshi wrote: > I want to develop a simple FUSE based file system HideFS. Using this I > should be able to mount my home directory somewhere and there will be a > utility which will allow me to hide the files which I want. So if a file is > marked hidden then it won't be displayed in when I do ls on the <fuse mnt > point> > > So the first task that I want to do is to mount the home directory on to a > mnt_point. Try 'fusexmp -omodules=subdir,subdir=/home/directory /mnt/point' Thanks, Miklos |