I recently purchased a used, Arm based, Buffalo TeraStation from ebay. The purchasing experience went well and the device arrive five days earlier than ebay predicted. This post covers my initial impressions and some early configuration modifications. TS-RHTGL/R5

Specifications

The TeraStation Pro is a 2U rack mountable NAS TS-RHTGL/R5 NAS system offered by Buffalo Technology. These units come configured as 2TB, 4TB, 6TB, or 8TB storage solutions capable of RAID-0, 1, 5, 1+0, and JBOD architectures. This product was pretty much phased out of use by 2010.

As Per Manufacturer

Specs    
General Total Storage Capacity 1 TB
  Manufacturer Buffalo Technology
Storage Total Storage Capacity 1 TB
  Network Storage Type NAS server
Storage Controller Supported Devices disk array (RAID), hard drive
  Data Transfer Rate 150 MBps
  RAID Level JBOD, RAID 0, RAID 1, RAID 5
  Interface Type Serial ATA-150
Networking Type Network adapter - internal
  Network / Transport Protocol FTP, SMB, TCP/IP
  Features Jumbo Frames support
  Data Link Protocol Ethernet, Fast Ethernet, Gigabit Ethernet
  Compliant Standards IEEE 802.3, IEEE 802.3ab, IEEE 802.3u
  Host Connectivity (for SD) Gigabit Ethernet
  Network Services Compatibility FTP, Microsoft Active Directory (AD), Server Message Block (SMB)
Interface Provided Qty 1, 2
  Interface Ethernet 1000Base-T, USB 2.0
  Connector Type RJ-45, Type A
Chassis Installed Devices / Modules Qty 4
  Supported Devices / Modules Qty 4
  Built-in Devices status LCD
Video Video Output none
Hard Drive Interface Type Serial ATA-150
  Installed Qty 4
  Data Transfer Rate 150 MBps
  Spindle Speed 7200 rpm
  Type removable
Environmental Parameters Min Operating Temperature 32 °F
  Max Operating Temperature 95 °F
  Compatibility PC, Unix
Expansion Bays Total Qty 4
  Free Qty 0
  Type external

The View From Within

# cat /proc/version
Linux version 2.6.16.16-arm1 (root@build.dd-hot24.nas.buffalo.local) (gcc version 3.4.4 (releas
e) (CodeSourcery ARM 2005q3-2)) #1 Wed Aug 25 22:13:35 JST 2010

# cat /proc/cpuinfo |more                                                    Processor       : ARM926EJ-Sid(wb) rev 0 (v5l)                                                 BogoMIPS        : 498.07                                                                       Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 0
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 1
I line length   : 32
I sets          : 1024
D size          : 32768
D assoc         : 4
D line length   : 32
D sets          : 256

Hardware        : MV-88fxx81
Revision        : 0000
Serial          : 0000000000000000

# more /proc/meminfo                                                         
MemTotal:       126280 kB
MemFree:         44632 kB
Buffers:           532 kB
Cached:          58444 kB
SwapCached:          0 kB
Active:          21740 kB
Inactive:        45556 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       126280 kB
LowFree:         44632 kB
SwapTotal:      677112 kB
SwapFree:       677112 kB
Dirty:               0 kB
Writeback:           0 kB
Mapped:          14244 kB
Slab:             6860 kB
CommitLimit:    740252 kB
Committed_AS:    40632 kB
PageTables:        624 kB
VmallocTotal:   385024 kB
VmallocUsed:      5768 kB
VmallocChunk:   379128 kB

# dmesg|grep -A5 RAID5                                                       
RAID5 conf printout:
 --- rd:4 wd:4 fd:0  
 disk 0, o:1, dev:sda6
 disk 1, o:1, dev:sdb6
 disk 2, o:1, dev:sdc6
 disk 3, o:1, dev:sdd6

# mount                                                                      
rootfs on / type rootfs (rw)
/dev/root on / type xfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
/proc/bus/usb/ on /proc/bus/usb type usbfs (rw)
/dev/loop1 on /mnt type ext2 (ro,nogrpid)
/dev/ram1 on /mnt/ram type tmpfs (rw)
/dev/md0 on /boot type ext3 (rw,data=ordered)
/dev/md2 on /mnt/array1 type xfs (rw,noatime,sunit=128,swidth=384)

# smbtree                                                                    
Password:
WORKGROUP
        \\TS-RHTGL493                   TeraStation
                \\TS-RHTGL493\IPC$              IPC Service ("TeraStation")
                \\TS-RHTGL493\Data              Misc Data
                \\TS-RHTGL493\info              TeraStation Utilities

What, No Command Line Access?

Whilst over all I am happy with my purchase, I was both surprised and annoyed to discover that there seemed no way to access the machine via the command line. I am as much a fan of lame web interfaces as the next person, but sometimes I need to get work done, and for that there is the command line.

It did not take long searching the web to discover that I am not alone wanting command line access. Seems that this device is perfectly capable of running both telnetd and better yet, sshd.

Fortunately a Java based tool ACP Commander was created to solve this issue and many others. Unfortunately given the age of the device there are many sets of instructions out there with links to versions of ACP Commander that depend on older versions of Java, and while appearing to work, seem to do nothing to progress the enable met of sshd.

What Worked for Me

  • Install latest version of Java JRE from Oracle. You may already have Java installed, but I try to live an Oracle free lifestyle, so I had to install it.
  • Get this version of acp_commander.jar
  • From a shell/terminal window run the command below. It will temporarily enable telnetd and set the device root password to be blank.
$ java -jar acp_commander.jar -t <ip address of TeraStation> -pw <admin password> -o
  • Use a telnet telnet <ip address of TeraStation> to connect to the NAS. User: root, empty password, and you should now be connected to the NAS device as root.
  • Set a password for root using passwd, then type exit and press ENTER key to close telnet session.
  • I had to create the following entry in my .ssh/config file to enable the TeraStation’s deprecated key exchange algorithms to work with my up to date SSH client, and otherwise make my connection to the device easier.
Host terastation
    User root
	Hostname ts-rhtgl493
	Compression yes
	KexAlgorithms  +diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
  • I then made an ssh connection to the device, providing the root password I had set earlier while in with telnet. Connection was a success, yay!
  • I exited the ssh session then I used ssh-copy-id to move my public key onto the NAS.
  • I established another ssh connection just using keys and was also successful.
  • I disabled the ability of root to logon with a password to ssh by editing /etc/sshd_config.
  • I disconnected, then reconnected with ssh to make sure everything was still fine, and it was.
  • Finally I rebooted the TeraStation. When it came back up I could no longer connect using Telnet, but SSH worked like a charm. This is exactly the outcome I was looking for, so can again uninstall Java.

Useful Remote Commands

Reboot TeraStation Via SSH

This is useful for testing the persistence of changes made outside of the vendor provided web interface. I use this to restart the TeraStation.

$ ssh terastation reboot

Power Off TeraStation Via SSH

This command to shut down the TeraStation will be useful for reacting to extended power events which necessitate an orderly shutdown before UPS battery is drained.

$ ssh terastation poweroff

Conclusion

An old NAS is what I expected, and is what I got. Now with SSH access, it fully meets my needs and I am satisfied for now, though I am already starting to feel the need to install a modern Linux OS on the device.