Skip to content

Installing rsync and Unison on the Buffalo TeraStation Live

July 24, 2008

TeraStation Live 2Tb

TeraStation Live 2Tb


just bought a 2TB Buffalo TeraStation NAS and I love the thing. It is silent, fast and highly configurable/hackable whichever you prefer.

There is a good reference community about hacking the TeraStation, and most of the information presented here is just a compilation of several different articles, and forum posts found around the site. So I wish to acknowledge all the people that have contributed to uncover the mysteries of the Buffalo NAS units.

Getting Telnet and SSH

The first step is to get the telnet daemon running. The factory firmware includes a telnet daemon so we do not need to change it. Just download the acp_commander tool and run

java -jar acp_commander -t <ip address> -o

In my case the IP address of my TeraStation is 192.168.1.20 so I ran:

java -jar acp_commander -t 192.168.1.20 -o

You should then see something like

ACP_commander out of the linkstationwiki.net project.
Used to send ACP-commands to Buffalo linkstation(R) LS-PRO.

WARNING: This is experimental software that might brick your linkstation!

Using random connID value = 07CAA8F945F3
Using target: raid/192.168.1.9
Authenticate: OK (ACP_STATE_FAILURE)
Installing addons.tar …
creating directory… OK
Didn’t find locally, looking at

http://downloads.linkstationwiki.net/Uploads/LSPro/Binaries/

java.io.FileNotFoundException: /192.168.1.9/share/acp_commander/addons.tar (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.(FileOutputStream.java:179)
at java.io.FileOutputStream.(FileOutputStream.java:70)
at acpcommander.FileSystem.copyFile(FileSystem.java:44)
at acpcommander.acp_commander.main(acp_commander.java:862)
start telnetd… OK (ACP_STATE_OK)
Reset root pwd… Password changed.

after which you can telnet to your box with user root and no password by doing

telnet 192.168.1.20

Once you’re please run passwd to set the root password. Now you should enable SSH so you can safely connect to the TeraStation. To do so follow the complete instructions on enabling SSH. Although my firmware is verson 2.14 I used the “1.11-1a Firmware” scripts and they worked perfectly.

Even though it is not an absolute necessity you should add the SSH daemon to the Daemonwatch as shown towards the end of the instruction document.

At this point you should have a running SSH daemon in your TeraStation so it is time to start the heavier lifting.

Enable  Key Based SSH  Authentication

On the computer you which to initiate your SSH connections to the TeraStation run

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.20

This will enable key based authentication for user root in your TeraStation. If you want to enable the same type of authentication for other TeraStation users you need to repeat the ssh-copy-id command for each one. Then you must disable StrictMode on the TeraStation’s SSH daemon (StrictMode no in /etc/sshd_conf) due to the permissions on the TeraStation’s  /home directory. Then restart your TeraStation SSH daemon with

/etc/init.d/sshd.sh restart

If you generate your RSA keys with no password you will not need to type a password to login to your TeraStation via SSH from the authorized users/host.

Accessing your file Shares from SSH

All you configured shares are accessible from command line in the /mnt/array1/<sharename>, you can use them to copy any needed files during the hacking process.

RSYNC

The stock firmware also includes rsync so all you really need to do is enable it.

One thing to keep in mind is that the TeraStation recreates some of its files after booting so you need to change one script to make changes permanent, one option is listed in the FAQ, but I ended up not using it.

I ended up changing the file /usr/local/bin/mkrsconf.pl in order for it to create the proper /etc/rsync.conf as well as the /etc/hosts.allow. So download my version of the mkrscon.pl script and copy it to one of your TeraStation shares, then via ssh run the following

cp /usr/local/bin/mkrsconf.pl /usr/local/bin/mkrsconf.pl.bak
cp /mnt/array1/<share>/mkrsconf.pl /usr/local/bin
/usr/local/bin/mkrsconf.pl

to make sure it worked check if the file /etc/hosts.allow exists.

Now you should be able to use rsync to your TeraStation.

Some great rsync backup scripts can be found here and here.

Unison

Rsync is a great backup utility but it is a one way tool, it will not do bi-directional sync so I opted to install Unisson, which is a fast and stable sync tool.

I have several computers that I use daily and I need to have them synced all the time. To make things a bit harder they all have different OSes. I use an iMac with Leopard, a PC with Windows XP and a laptop with Ubuntu. All my documents are synced up to the TeraStation and down to each machine flawlessly using unison and some scripts.

The challenge in getting Unison on the TeraStation is that you’ll need to compile it, and that was not as easy as it seemed at first.

Follow the instructions on to install PKGSRC Arm tools so you can compile natively in the TeraStation Live.

Now Download Unison source and the OCAML compiler’s source.

At the time of this writing the OCAML stable version was 3.10.2, but I ran into compilation problems that I could not resolve so I tried version 3.09.3 and it compiled just fine after creating the opnames.ml file as explained bellow.

Compiling OCAML

cd /mnt/array1/<share>
tar zxf ocaml-3.09.3.tar.gz
cd ocaml-3.09.3
./configure
gmake world
gmake install
gmake clean

While compiling the ocamtools I got an error while compiling, specifically: Unbound Value “name_of_insrtuctions” : Error 2

This has to do with an error in the make file in the tools directory to generate the opnames.ml ocaml-3.09.3. A sed command in the TeraStation is giving an error so the file is not generated appropriately and stays empty.

For simplicity you can download the correct version of the opnames.ml, and place it in you ocaml-3.09.3/tools directory, then rerun “gmake world”.

Compiling Unison

Now all you need to do is to compile your unison sources by doing

cd /mnt/array1/<share>
tar zxf unison-2.27.57.tar.gz
cd unison-2.27.57
gmake UISTYLE=text NATIVE=false

Even if you get an error about etags not being found during compilation your unision bunary should have been generated. To check run

./unison -version

which should produce

unison version 2.27.57

Or whatever version you compiled. Now all you need to do is to copy unison to /usr/local/bin and you are set.
cp unison /usr/local/bin
Now test if you can reach your unison remotely via SSH by running the following on your PC
ssh root@192.168.1.20 unison -version
You should see the same message as above “unison version 2.27.57″ after you type your root’s password.
Before you can use unison to sync up all your computers you need to of course install it in every machine, but please pay attention that all of them need to be on the same version.

You can find some great tutorials on Unison here, and you can also check out the full manual so have fun.

Pre built unison binary for version 2.27.57 compiled on my TeraStation Live by following the out lined procedure. If you want to save yourself some of the pain just download it…

I hope this document helps you out and that by writing it I am giving a little bit back to the community.

About these ads

From → TeraStation

23 Comments
  1. Lyn permalink

    Hi,

    I wanted to try your unison binary on my Maxtor MSII but when I try to unpack the file I get an error from WinRAR. I copied the .gz file over to the MSII and gunzip says “bad magic.” Maybe you can give me some guidance here? I only show one file, named unison, in the archive but I believe I need the ocaml interpretor as well as the unison binary.

    The MSII and the Terastation both use the Marvell Orion chipset. The MSII runs:

    2.6.12.6-arm1 #1 Tue Aug 22 15:55:07 PDT 2006
    I don’t know if this is the exact version your box runs but it may be close enough.

    The MSII optware library provides the following:
    ocaml – 3.10.2-3 – Objective Caml system

    I don’t know if this ocaml release is compatible with your unison binary. I have installed it and it runs in interpretor mode.

  2. AlberTUX permalink

    do you happen to have the unison binary hosted somewhere else? the link seems to be broken.

    thanks!

  3. AlberTUX permalink

    nevermind! i downloaded it but the tar package seems to be broken:

    tar: Unexpected EOF in archive
    tar: Unexpected EOF in archive
    tar: Error is not recoverable: exiting now

  4. Fixed the URL to the Unison Binary it should work now. Try the download again.

  5. Hey – great document. So helpful – I’ve got just the same sort of mixed set up as you – and unison was what I needed :)

    Maybe you got some suggestions on another issue… I want to make some video files available t users of our little TV Station – and as they are in an archive of OSX bundles – and I didn;t want to duplicate them I tried symlinks to another share – but nada. I think I need to add “follow symlinks = yes to the /etc/samba/smb.conf file – but it’s read only – and I don’t know enough to mess with it in a way in which the web admin will still work?

  6. David have you tried hard links?
    Hard links would not break the web interface and all the other issues would work as well

  7. niebie permalink

    Awesome! Thanks for providing the unison binary.
    I bought a Linkstation today and had to find out that it was a heavily stripped down version of the LS Pro with only 16MB of RAM (model LS-LGL). So compiling on it is not really an option and I spent the whole day trying to get rsync or unison to work. :(
    Now I’m so glad that I finally found this article. Your binary for the TS Live works great on this one too. Brings the device to it’s limit though (memory-wise)…

  8. This takes up a lot of space in the rootfs. Unfortunately, I have some other apps installed that I also need. I rad out of space because the rootfs partition is too small. Any suggestions?

  9. chc permalink

    Could you please fix the link to the pre-built unison binary again? I tried to download it but seems link is broken again. Thanks a lot.

  10. Drock permalink

    Pls fix the unison binary link, thanks.

  11. Till permalink

    Hey! Could you fix the link to the binary! Would save me some pain!

    • They keep deleting the binary version from there file upload sites. Do you know of a free site where I they wont delete it? Unfortunately I cannot upload it to wordpress.com

      • I might have the versions from above. If so, am willing to put on my server. Will check later. You might have to remind me.

      • I can send them to you, if you give me your email.

  12. Kris permalink

    I’m trying to get this working on the TeraStations here at the office, but I’m running into the out of space problem on the root partition when trying to install ocaml.

    Would appreciate it very much if someone can send me the binary version of unison.

    My mail address: kris dot gaethofs at westcanadahomes dot com

    Thx!

  13. Hi Bigdiver

    Your tutorial is really awesome and it worked perfectly upto enabling rsync and ssh.

    I want to do rsync from one TS to another TS.
    When I do it with DeltaCopy, it works fine.
    TS1==>”XP Machine with DeltaCopy”==>TS2, it works great.

    But when I try TS1==>TS2 or TS2==>TS1, it does not work, it just hangs and is disconnected automatically after about 15 min. This happens even for a single file.

    rsync on TS1 and TS2 is 2.6.7
    I tried 2.6.8, but I get error:
    sh: /usr/bin/rsync: cannot execute binary file
    and rsync on XP Machine is 3.something.

    Could you please help me what to do.

  14. Hi Bigdiver

    Incidentally I was looking for NFS option for backups along with rsync when I came across Jumbo Frames discussions. Someone had suggested to use MTU 1492 bytes. We were using Jumbo frames, so MTU was of size 7404 Bytes. Just changed it to 1500 Bytes and all was set instantly. Now the problem is solved.

    Thanks.

  15. a4refillpad permalink

    Hi Bigdiver,
    i know this article was started some time ago but has anyone had any success compiling a later version of unison. So far i’ve not had any success and errors part way through compilation.

  16. Joe permalink

    After failing to get it to compile correctly, I am trying to locate an arm binary of the unison version 2.27.57 that you have listed, but all download links I come across are dead. Do you still have that file? Could you fix the upload link again or send it to me?
    Thanks!

  17. I used to be recommended this website by means of my cousin.
    I’m not positive whether this submit is written by him as no one else understand such designated approximately my trouble.

    You’re amazing! Thanks!

Trackbacks & Pingbacks

  1. Recover from PCast Disaster in my TeraStation Live « BigDiver
  2. Installing the Debian Package Management in the Buffalo TeraStation « BigDiver
  3. Mit acp_commander root Zugriff auf Buffalo TeraStation Pro | repats blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: