Project: Automated offsite backups for an NSLU2 -- part 7
I've discovered that in order to get automated offsite backups from my NSLU2 to Amazon S3, I have to get it to run Ruby so that it can run s3sync. I've installed the latter on a Ubuntu machine as a dry run, and it all looks good -- so now I need to get Ruby onto the slug, and the first step in that direction is to install Unslung.
I won't detail what you have to do to install Unslung, as that's likely to change, and the last thing I want is for someone to land here in a few months time, follow my out-of-date instructions, and destroy their hardware. So, suffice it to say -- I followed the instructions at the Unslung New User's Guide and in the README file that came with the download -- and I followed them exactly. I've supported enough software to know that most problems encountered by experienced users come from overconfidence and not following instructions... so I don't want to be one of the people I've cursed in the past.
All that said, I did encounter one problem that required a quick detour; once I had done the initial checks, and tried to upload the Unslung firmware from the NSLU2's web admin pages, I got an error dialog saying "upgrade: no enough free space" (sic). A quick poke around with Google made it clear that some people had fixed similar-sounding problems using a tool called "EraseAll" to clear out the slug's flash RAM prior to doing an upgrade -- but a quick check at the NSLU2-Linux site made it clear that they thought that using this tool was a terrible idea! Further investigation showed that there was a FAQ on the NSLU2-Linux site regarding similar (but different) messages, saying that out of memory errors when flashing
may be due to a SLUG using an older Linksys FW. My 2nd SLUG had the .24 version and faced this issue even after a factory reset and going straight to the download page. Linksys has a help page that will walk you through upgrading to the .63 FW. Once I did this, upgrading to the Unslung FW was per the install guide.
My slug is very old -- its firmware was also the antediluvian V2.3R24 -- so I kind of suspected that was the problem... I decided to upgrade to the latest Linksys firmware, and went to the page linked from the FAQ. Worryingly, that page said that you should use EraseAll, which I was feeling quite nervous of -- so before trying to follow its instructions, I decided to see what would happen if I used the regular web-based interface on the NSLU2 to upgrade to the new V2.3R63 firmware (which is linked at the bottom of the page). To my delight, that seemed to work -- at least the admin pages said that it was now version 2.3R63 -- so I powered the unit down, plugged my drive back in, powered up again, and checked that the disk was still accessible. It was, so I started the Unslung install procedure from the README once more, from the top. This time, it seemed to work -- the process completed without errors, the unit rebooted, and when (after a nail-biting few minutes) it came up, I checked the web interface, and it reported that its firmware version was V2.3R63-uNSLUng-6.8-beta.
Trying to avoid becoming cocky, I completed the instructions in the README, and updated the NSLU2-Linux Wiki to reflect my experiences). Once all of this was done, I had "unslung" my NSLU2 to the USB drive attached to it -- or, in less jargonny terms, I had changed the unit's settings so that no longer did it boot entirely from the build-in flash memory, afterwards mounting the USB drive separately for sharing, but instead it used the built-in memory as some kind of low-level bootstrap system to mount the USB disk as the root filesystem, and then booted from that. That probably sounds more complicated than it is -- all I really needed to do was robotically follow the instructions in the README.
So, now that's all installed, the next step is to install Ruby.