NTFS-3G mount during boot

Mel fbsd.questions at rachie.is-a-geek.net
Sun Oct 7 12:15:02 PDT 2007


On Sunday 07 October 2007 20:07:00 Novembre wrote:
> On 10/7/07, Mel <fbsd.questions at rachie.is-a-geek.net> wrote:
> > On Sunday 07 October 2007 10:00:35 Novembre wrote:
> > > On 10/7/07, Doug Barton <dougb at freebsd.org> wrote:
> > > > On Sun, 7 Oct 2007, Novembre wrote:
> > > > > The first error above is because the fuse kernel module is not yet
> > > >
> > > > loaded.
> > > >
> > > > Well isn't it sort of pointless to proceed until you get the kernel
> > > > module loaded at boot time and then see what happens next?
> > >
> > > Oh, the kernel module IS loaded as shown in 'dmesg -a' and in
> > > /var/log/messages. However, it can't be loaded unless / and /usr file
> > > systems are mounted.
> >
> > Filesystems that need modules from anywhere else then the root partition
> > cannot be loaded from /etc/fstab.
> > Either make fusefs-kmod install in /boot/modules
> > (echo 'KMOD_DIR=/boot/modules'
> >
> > >/usr/ports/sysutils/fusefs-kmod/Makefile.local) or mount the filesystem
> >
> > using an rc(8) script in /usr/local/etc/rc.d/.
> > In the end you do not really care whether it's mounted 20 seconds or 1
> > second
> > before login prompt is available.
> >
> > --
> > Mel
>
> Well, I gave up using /etc/fstab to mount NTFS partitions at boot time a
> couple of months ago when I realized that it's not the correct way to do it
> (so I also wrote an rc.d script to do the job, but I'll talk about it
> later). However, I recently looked at fusefs-ntfs source files, and as you
> can see from
> http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/fusefs-ntfs/Makefile
> in revision 1.19, there are changes (installing a symlink) to allow using
> /etc/fstab to mount NTFS partitions at boot. So I thought that maybe now
> it's okay to use /etc/fstab. Anyway, if it's still not possible to use
> /etc/fstab, then what does that sentence mean in the revision 1.19 of
> fusefs-ntfs Makefile (again, see the URL above)?

The only way I can see that working is if /usr/local/modules in 
kern.modules_path /before/ mount -a is executed by /etc/rc.d/mount. Which 
means there should be a line:
kern.module_path=/boot/kernel;/boot/modules;/usr/local/modules

in /etc/sysctl.conf on your machine.
Also, mount_ntfs-3g should be able to load the module dynamically.

> Another question is why, even after loading the kernel module (see the
> 'dmesg -a' output below), it is not possible to mount the NTFS partition?
> ----------
> [user at pasargadae ~]$ dmesg -a
> ...
> Starting fusefs.
> fuse4bsd: version 0.3.9-pre1, FUSE ABI 7.8
> ...
> Mounting late file systems:
> fuse: failed to exec mount program: No such file or directory
> ----------

What does ls -l /sbin/mount_ntfs-3g say?

> This output from /var/log/messages is also interesting, showing that
> ntfs-3g has indeed been run and that it has mounted my Windows partition
> (but I don't see it mounted)!
> ----------
> [user at pasargadae ~]$ cat /var/log/messages
> ...
> Oct  6 14:22:40 pasargadae kernel: Trying to mount root from
> ufs:/dev/ad0s2a Oct  6 14:22:45 pasargadae kernel: fuse4bsd: version
> 0.3.9-pre1, FUSE ABI 7.8
> Oct  6 14:22:45 pasargadae ntfs-3g[811]: Version 1.913
> Oct  6 14:22:45 pasargadae ntfs-3g[811]: Mounted /dev/ad0s1 (Read-Write,
> label "", NTFS 3.0)
> Oct  6 14:22:45 pasargadae ntfs-3g[811]: Cmdline options: (null)
> Oct  6 14:22:45 pasargadae ntfs-3g[811]: Mount options:
> noatime,silent,allow_other ,fsname=/dev/ad0s1
> ...
> ----------
>
> And I didn't know about the /boot/modules way. Could you please ellaborate
> more? Is it a different way to load kernel modules than using
> /boot/loader.conf? When should one use that?
>
> And now, about coming back to using an rc.d script...After failing to use
> /etc/fstab, I wrote this script to mount the partition at boot time.
> However, this also does not work!
> ----------
> #!/bin/sh
> #
> # PROVIDE: ntfsmount
> # REQUIRE: fusefs
> #
>
> . /etc/rc.subr
>
> name="ntfsmount"
> rcvar=${name}_enable
> command="/usr/sbin/mount_ntfs-3g"
> command_args="/dev/ad0s1 /mnt/windows -o locale=en_US.UTF-8"

Does /mnt/windows exist?
Anything interesting with `sh -x /usr/local/etc/rc.d/ntfsmount' ?

If I find some more time, I'll play around with it.
-- 
Mel


More information about the freebsd-questions mailing list