2

I'm trying to create a virtual drive pool using osxFuse and mhddfs.

I'm on OSX 10.9.5. I've tried osxFuse v2.7.3 installed via the package installer. I've also tried the homebrew cask install method. I've had the same experiences regardless of install method.

  1. This command works for me:

    $ sudo mhddfs /Volumes/D01,/Volumes/D12,/Volumes/D103,/Volumes/D110 /mnt/DrivePoolA -o allow_other,volname=DrivePoolA
    
  2. However, I believe I should also be able to accomplish the same using the 'mount' command, but I've had no luck. I've tried a variety of things similar to the line below. Any suggestions? What am I missing.

    sudo mount -t mhddfs -o allow_other,volname=DrivePoolA /Volumes/D01,/Volumes/D12,/Volumes/D103,/Volumes/D110
    
  3. Finally, and most importantly, I'm trying to mount the drivePool with fstab. My fstab looks like this:

    # <file system>  <mount point> <type>  <options>       <dump>  <pass>
    mhddfs#/Volumes/D01,/Volumes/D12/,/Volumes/D103/,/Volumes/D110        /mnt/DrivePoolA    osxfusefs    allow_other,volname=DrivePoolA 0 0
    

    However, when I run sudo mount -a on that fstab, I get an error message which states:

    This program is not meant to be called directly. The OSXFUSE library calls it. Available mount options: [followed by the list of mount options]`

Now, I'm assuming that that error is coming from osxfuse_mounter, because I found the txt of the error in the source code of the 'support' project on github. I assume that the error is being passed through back to the 'mount' program, which is spitting it back out the the command line.

I've also tried the following fstab, omitting the options, dump, and pass:

# <file system>  <mount point> <type>  <options>       <dump>  <pass>
mhddfs#/Volumes/D01,/Volumes/D12/,/Volumes/D103/,/Volumes/D110    /mnt/DrivePoolA    osxfusefs

After running sudo mount -a with this configuration I get no errors, but nothing seems to happen.

Any suggestions?

  • please add your current OS. Do you use the stand-alone OSXFuse or brew? – klanomath Jan 2 '15 at 7:50
  • Thank your for your edits and your interest @klanomath. I'm on OSX 10.9.5. I've tried the package installer from osxfuse.github.io (version 2.7.3). I've also uninstalled that and tried the homebrew cask install, which seems to be identical. I've updated the question to reflect this information. – johntrandall Jan 2 '15 at 14:39
  • How did you install mhddfs? I can't find it with brew... – klanomath Jan 2 '15 at 16:24
  • I installed mhddfs with macports, which seems to be the only viable port available. This is the only package I have installed via macports. If there is another way to get it, I'd be eager to learn of it. I don't like mixing macports on my brew-based system. – johntrandall Jan 2 '15 at 19:53
1

Here is a way to mount osxfuse / mhddfs via LaunchDaemon

Prerequisites:
– existing /mnt/DrivePoolA
– some Volumes (in the example below Test01-Test03 mounted at /Volumes)
OSXFuse 2.7.3
mhddfs via macports

  1. Create a file com.oxsfuse.mhddfs.plist in /Library/LaunchDaemons/

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.oxsfuse.mhddfs</string>
        <key>ProgramArguments</key>
        <array>
            <string>sh</string>
            <string>/usr/local/mhddfs-start.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
    
  2. Enter in Terminal:

     sudo chown root:wheel /Library/LaunchDaemons/com.oxsfuse.mhddfs.plist 
     sudo chmod 644 /Library/LaunchDaemons/com.oxsfuse.mhddfs.plist 
    
  3. Create a file mhddfs-start.sh in /usr/local/

    #!/bin/bash
    
    kextload /Library/Filesystems/osxfusefs.fs/Support/osxfusefs.kext
    sysctl -w osxfuse.tunables.allow_other=1
    /opt/local/bin/mhddfs /Volumes/Test01,/Volumes/Test02,/Volumes/Test03 /mnt/DrivePoolA -o allow_other,loglevel=0,logfile=/tmp/mhddfs1.log,volname=DrivePoolA
    sleep 5
    /opt/local/bin/mhddfs /Volumes/Test01,/Volumes/Test02,/Volumes/Test03 /mnt/DrivePoolA -o allow_other,loglevel=0,logfile=/tmp/mhddfs2.log,volname=DrivePoolA
    
  4. Enter in Terminal:

     sudo chown root:wheel /usr/local/mhddfs-start.sh  
    

You may store the shell script somewhere else but be sure to adapt <string>/usr/local/mhddfs-start.sh</string> in the file com.oxsfuse.mhddfs.plist.

After some extended testing in a Parallels VM (Mavericks with OSXFuse 2.7.3 and macport's mhddfs) i got it mounted reliably. And yes, executing mhddfs two times is intended!

You may omit the loglevel=0,logfile=/tmp/mhddfs1/2.log,-part in the shell script - it was just for testing purposes.

Please do some tests with the volumes before using it in a productive environment.

  • @johntrandall it doesn't work reliable but i'm still working on it - in fact just now ;-) – klanomath Jan 3 '15 at 21:14
  • @johntrandall now it should work reliably. it survived 15 restarts... – klanomath Jan 3 '15 at 21:55
  • Thanks again for this. Can you explain to me your thinking for the second execution? – johntrandall Jan 19 '15 at 2:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .