Successfully mounting Drobo shares from a Chromebook with Crouton/Ubuntu 14.04 installed

By: ; Date: 2015-02-16 13:10

Tags: Chromebook » Ubuntu » Drobo

The last couple weeks I've switched my working environment from a MacBook Pro to a Chromebook that has Ubuntu installed under Crouton. A lot of my work is developing Node.js software, and writing website content, and my habits are to live at the command line typing commands. But it also means accessing the large amount of content I have stashed on the MacBook Pro, and a Drobo 5N. MacOSX can easily mount shares on the Drobo, letting me access those files as if they were on the local machine. By default Chromebooks cannot do this, meaning the Chrome browser side of my Chromebook cannot (at this time) access anything stored on the Drobo. Because Ubuntu is installed (via Crouton), that side of the Chromebook theoretically can mount shares on the Drobo, but I ran into problems trying to directly mount the SMB share using Ubuntu 14.04 tools. Fortunately I've developed an alternate method that's nearly as good and quite easy to implement.

Technical background -- Drobo uses SMB and AFS -- but didn't work w/ Ubuntu 14.04 on Crouton/Chromebook

The Drobo exports itself using the SMB protocol, and also supports Apple's AFP protocol. In theory a Linux machine can easily mount a Drobo using SMB or CIFS client tools. Indeed, the Drobo support library suggests using those tools:

On Ubuntu one can open a file manager window, and enter SMB://###.###.###.###/VolumeName to connect by the IP address, and sure enough a window opens letting you browse the Drobo file system. Unfortunately that method doesn't make the Drobo filesystem visible to command-line tools - I think that's a Gnome Virtual File System instead.

Another was to use smbclient to explore the available shares, then to use specifically crafted mount commands to use the smbfs or cifs file system protocols. You'll find instructions at the above link.

Unfortunately in this case the suggestions linked above didn't work too well.

Assigning fixed IP address & name to Drobo

First issue is they recommended using the "name" of the Drobo in the commands. That didn't work using the Ubuntu/Crouton setup on my Chromebook. But when I used the IP address instead of the "name" then the commands worked a little better.

That would develop problem down the line, the next time the Drobo reboots it's likely to get a different IP address. Hence, it's best to assign a fixed IP address, and then to assign a name to that fixed IP address.

Assigning a fixed IP address is accomplished by going to your WiFi router, and in the admin screens finding the DHCP configuration area. It's going to be different for each WiFi router. But there's going to be a screen showing MAC Addresses of known devices, and the IP address assigned by the DHCP server built into the router. There will also be a method for pre-assigning an IP address to certain MAC addresses. I assigned a fixed IP address to my Drobo, and also to the MacBook Pro.

Next step is to assign a name to the Drobo so you don't have to remember the IP address. The only tool available to me was the /etc/hosts file on the Ubuntu/Crouton side of the Chromebook. Adding entries like this takes care of assigning a name to the IP addresses of these devices:   drobo.local   tippy.local

First success - smbclient works - but mount command fails

With this set up, the smbclient command was able to return information about the Drobo shares

$ smbclient -L drobo.local
Enter david's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.7]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	David           Disk      
	DroboApps       Disk      

But, trying to mount one of those using the smbfs mount commands failed. It turned out that smbfs has been deprecated, and is simply not available for Ubuntu 14.04. I was unable to get the cifs support to work, and I gave up on trying to access the Drobo using this method.

sshfs to the rescue

I gave up for a week or so after that, and then took a different tactic by using sshfs.

First I set up sshfs mounts between the Chromebook and my MacBookPro and then with accounts on the VPS's I rent from my web hosting provider, Dreamhost. Those work fine, they're easy to set up, easy to shut down, and perform reasonably well.

$ cat ~/sshfs.txt
sshfs -o idmap=user ~/userID
sshfs -o idmap=user ~/userID1
sshfs -o idmap=user ~/userID2

fusermount -u ~/userID
fusermount -u ~/userID1
fusermount -u ~/userID2

I keep this file on my Chromebook, and any time I need to set up an sshfs mount I look in the file then copy/paste the command and it's good to go. It also should work to add an entry to /etc/fstab, but I haven't made the time to work that out.

Once the mount is set up the remote file system shows up as a regular file system mount, that's recognized by every last tool on the Ubuntu/Crouton side of the Chromebook. The ChromeOS side doesn't know about the file system mount, and sshfs is not available in the ChromeOS image.

I was even able to mount the Drobo file system using the MacBook Pro as an intermediary:

sshfs -o idmap=user userOnMacBook@tippy.local:/Volumes/Drobo5N ~/drobo

That worked, but I wanted a direct connection to the Drobo.

Jailbreaking the Drobo w/ DroboPorts

Fortunately the Drobo5N allows you to install "applications" that run inside the Drobo. The capabilities are limited, but it's fairly straightforward. They have some file sharing related applications which appear on the Drobo dashboard, and it's fairly easy to add additional apps.

The DroboPorts team make additional apps available, one of which gives you command line access to the Drobo innards. It is, after all, just a Linux box with discs ...

First step is, on the MacBook Pro, to mount the Drobo with a user ID that has access to the DroboApps share. By default that's the Admin user.

Go to the DroboPorts website, and find the OpenSSH application. Download that, and then drop the tarball into the DroboApps share. Then reboot the Drobo. Automagically when the Drobo reboots, the openssh tarball will have been replaced with an openssh directory. The openssh package will have been installed for you.

At that point it's possible to:

$ ssh -l Admin drobo.local

And after entering your Admin password, you have a command line prompt inside the Drobo.

It's useful to also install the bash, coreutils, sudo and wget tools off the DroboPorts website. That gives you some of the typical command line tools you might be familiar with from other systems.

Make sure and look at the recommended setup for each package.

For instance, I edited /etc/password so the login shell on all accounts is /bin/bash.

In any case, back to the issue of mounting the Drobo. Turns out that sshfs works great to mount a Drobo, once you've installed the OpenSSH package. It did not work under the Dropbear package that is recommended on the Drobo website.

sshfs -o idmap=user Admin@drobo.local:/mnt/DroboFS/Shares/David ~/drobo

It's also necessary to set up SSH keys so this works w/o password.

In the Admin home directory on the Drobo, create a .ssh directory, in which you create a file named authorized_keys. This is just like any other Unix/Linux box. Then, just like any other Unix/Linux box, copy the text of an SSH key from your client key (the Chromebook in my case) into the authorized_keys file on the Drobo.

« 46 Terabytes of data storage (for backups) sitting on a desktop Steve Wozniak Debunks One of Apple's Biggest Myths »
2016 Election Acer C720 Android Apple Hardware History Apple iPhone Hardware April 1st ARM Compilation Authoritarianism Big Brother Botnets Cassette Tapes Cellphones Christopher Eccleston Chrome Apps Chromebook Chromebooks ChromeOS CIA CitiCards Civil Liberties Clinton Cluster Computing Computer Hardware Computer Repair Cross Compilation Crouton Cybermen Daleks Darth Vader Data backup Data Storage David Tenant DIY Repair Docker Doctor Who Drobo DVD Emdebian ESP8266 Eurovision Facebook Fake News FireFly Fraud Freedom of Speech Gallifrey git Google Google Chrome Google Gnome Great Britain Home Automation HTTPS Internet Internet of Things Internet Privacy iPad iPhone iPhone hacking Iron Man Iternet of Things John Simms Lets Encrypt Linux Single Board Computers Mac OS MEADS Anti-Missile Mercurial Michele Gomez Military Hardware Missy Mobile Applications Mondas Monty Python MQTT Music Player Music Streaming MySQL NanoPi Node Web Development Online Fraud Open Media Vault Open Source Software OpenVPN Personal Flight Peter Capaldi Plex Media Server Political Protest Power Control Privacy Public Violence Raspberry Pi Raspberry Pi 3 Raspberry Pi Zero Recycling Retro-Technology Right to Repair Rocket Ships Russia Season 1 Season 10 Season 11 Security Security Cameras Silence Simsimi Skype Social Media Warfare Software Development Space Flight Space Ship Reuse Space Ships SpaceX SQLite3 SSD Drives SSD upgrade SSL Terrorism The Cybermen The Daleks The Master Trump Trump Administration Ubuntu Virtual Private Networks VOIP Web Developer Resources Weeping Angels WhatsApp