Question about mount_fusefs

Igor Konev ikonev84 at mail.ru
Thu May 23 18:34:35 UTC 2019


В Tue, 21 May 2019 18:33:21 +0300 (MSK)
"Igor V. Ruzanov" <igorr at pochta-mx.canmos.ru> пишет:

> On Tue, 21 May 2019, Igor Konev wrote:
> 
> |В Tue, 21 May 2019 15:32:29 +0300 (MSK)
> |"Igor V. Ruzanov" <igorr at pochta-mx.canmos.ru> пишет:
> |
> |> On Tue, 21 May 2019, Igor Konev via freebsd-questions wrote:
> |> 
> |> |Hi, I use fusefs to mount ntfs fs. 
> |> |And I have a question about the command line options for
> |> mount_fusefs. |
> |> |What does key -s mean? What is he doing? I tried to use it but
> |> without |success.
> |> |
> |> From MOUNT_FUSEFS(8) :
> |> 
> |> Finally, if special is an integer it will be interpreted as the
> |> number of the file descriptor of an already open fuse device (used
> |> when the Fuse
> |>      library invokes mount_fusefs.  (See DAEMON MOUNTS).
> |> 
> |> 
> |> 
> |> I guess the key is ised in conjunction of another software doing
> any |> jobs over opened fuse device files.
> |> 
> |> |From MOUNT_FUSEFS(8) :
> |> |
> |> |MOUNT_FUSEFS(8)
> |> |
> |> |SYNOPSIS
> |> |     mount_fusefs [-A] [-S] [-v] [-D fuse_daemon] [-O daemon_opts]
> |> |                  [-s special] [-m node] [-h] [-V] [-o option ...]
> |> |                  special node [fuse_daemon ...]
> |> |
> |> |
> |> |     -s, --special special
> |> |             Use special as special
> |> |
> |> |So for my case, I can run the mount_fusefs command in two ways:
> |> |- mount_fusefs special node [fuse_daemon ...]
> |> |- mount_fusefs -s special node [fuse_daemon]
> |> |
> |> |1)
> |> |
> |> |$ mount_fusefs /dev/fuse ~/mnt0 ntfs-3g /dev/da0s1 ~/mnt0
> |> |$ echo $?
> |> |0
> |> |
> |> |$ mount
> |> |/dev/ada0p4 on / (ufs, local, soft-updates)
> |> |devfs on /dev (devfs, local, multilabel)
> |> |...
> |> |/dev/fuse on /usr/home/user1/mnt0 (fusefs, local, nosuid,
> |> synchronous, |mounted by user1)
> |> |
> |> |2)
> |> |
> |> |$ mount_fusefs -s /dev/fuse ~/mnt0 ntfs-3g /dev/da0s1 ~/mnt0
> |> |mount_fusefs: special specified inconsistently
> |> |$ echo $?
> |> |1
> |> |
> |> |Ivan Konev
> |> |_______________________________________________
> |> |freebsd-questions at freebsd.org mailing list
> |> |https://lists.freebsd.org/mailman/listinfo/freebsd-questions
> |> |To unsubscribe, send any mail to
> |> "freebsd-questions-unsubscribe at freebsd.org" |
> |> _______________________________________________
> |> freebsd-questions at freebsd.org mailing list
> |> https://lists.freebsd.org/mailman/listinfo/freebsd-questions
> |> To unsubscribe, send any mail to
> |> "freebsd-questions-unsubscribe at freebsd.org"  
> |
> |Igor, thank you for your reply. 
> |I also tried to use the file descriptor number as an argument for the
> |–s.
> |
> |$ ls -ali /dev/fuse
> |57 crw-rw-rw-  1 root  operator  0x39 21 мая   11:40 /dev/fuse
> |
> |$ mount_fusefs -s 57 ~/mnt0 ntfs-3g /dev/da0s1 ~/mnt0
> |mount_fusefs: special specified inconsistently
> |
> 57 here is not file descriptor number. Its i-node number (see man
> ls). FD (file descriptor) might be some number that we got as result
> of success call of some function, for ex. when we tried to open some
> fuse device for mounting purposes. And provide this FD to:
> mount_fusefs -s <FD> 
> 
> 
> |$ echo $?
> |1
> |$ 
> |
> |My question is why "mount_fusefs /dev/fuse ..." works and
> "mount_fusefs |-s /dev/fuse ..." and "mount_fusefs -s 57" do not work.
> |
> |Ivan Konev
> |

A bit of theory about mount_fusefs command line options:

From man:

mount_fusefs [-A] [-S] [-v] [-D fuse_daemon] [-O daemon_opts]
                  [-s special] [-m node] [-h] [-V] [-o option ...]
                  special node [fuse_daemon ...]

The special argument will normally be treated as the path of the
special file to mount.

Thus, you can define special using the -s option or the position in the
argument string.

But even if special is defined via a key, mount_fusefs will still try
to take its value from the first unnamed (without a key) command line
argument.

So 

mount_fusefs /dev/fuse /mnt ntfs-3g /dev/da0s1 /mnt - OK
mount_fusefs -s /dev/fuse -m /mnt -D ntfs-3g -O "/dev/da0s1 /mnt" - OK
mount_fusefs -s /dev/fuse -m /mnt -D ntfs-3g -O /dev/da0s1 /mnt - ERROR
( mount_fusefs thinks that /mnt is special )

Ivan Konev


More information about the freebsd-questions mailing list