Building the Zyxel NAS326

Building the Zyxel NAS326

Editors note: Changing the featured pic on this post took the best part of an hour, thanks to the 2MB limit I had to get around. Done it before but this time it was harder. Seems on the web server I’m using (h2o) you specifically need to restart the php7.0-fpm service for the php.ini file to be reloaded

If you’ve been keeping up then you’ll know I’ve got a few projects to work on. That’s a good thing.

First cab off the rank is the build of my new Zyxel NAS 326

Unboxing and assembly

The assembly itself didn’t take long at all – 30 minutes including ripping the Seagate drives out of my old PC.

Pretty straightforward


I was unable to locate the box using Web page loads but pressing the copy button on the box did bugger all! (I got a beep after a few seconds)

Had to log into my router to discover the IP address assigned via DHCP, after which I added an entry to my /etc/hosts file before pointing my browser to the NAS.

I was then able to log in using the default admin/1234. Always change the default admin password!

Volume configuration – RAID1 beats JBOD

Decided to configure a RAID1 partition, as these drives are old and they are backing up a NAS which has been subject to constant use over the past 5 years. Unfortunately, this is how I get my luck in life.

Mounting the drive in Ubuntu

Turns out the bottleneck, time-wise, was finding out the share name for the CIFS mount. PEBKAC, I was thinking it was the volume name and chased my tail for a good hour here.

The breakthrough came when I stumbled upon an SO post showing the smbclient -L command:

That helped me see where the problem was, and I located the section in the Zyxel web config screen to modify users and shares.

I was then able to mount the drive in ubuntu

Don’t forget to update /etc/fstab so the share will automount on system reboot.

fstab requires a slightly different syntax

I’d suggest the following:

1. Create a new user for the CIFS connection. Make this user an admin so you have a backdoor into the box if required.
2. Create a new share. I’m using Public. Note the box comes with a few pre-configured shares i.e. Music, Photos, Video and admin.

BTW, there’s a good support forum here.

Up and running

With the drive mounted, I started copying files and my throughput from my WD Mybook Live to the Zyxel is 27 MB/sec

Arch Linux ARM – Lay of the land

1. Firstly, enable SSH then log into box using an admin account

Notice that BusyBox is being used as the shell.

As per this notice:

BusyBox combines tiny versions of many common UNIX utilities into a single
small executable. It provides minimalist replacements for most of the
utilities you usually find in bzip2, coreutils, dhcp, diffutils, e2fsprogs,
file, findutils, gawk, grep, inetutils, less, modutils, net-tools, procps,
sed, shadow, sysklogd, sysvinit, tar, util-linux, and vim. The utilities
in BusyBox often have fewer options than their full-featured cousins;
however, the options that are included provide the expected functionality
and behave very much like their larger counterparts.

2. Getting Linux version info

The Zyxel is using Arch Linux ARM, a port aimed at ARM architecture.

if you’re new to Arch Linux (as I am!) then this page is useful. It contains the core utilities

We can get some info on the chip via: cat /proc/cpuinfo

Running processes

ps is not very useful as it doesn’t seem to support any flags. Instead, use top

Taking a look at some of the running processes;

• smbd is the SMB (Server Message Block) daemon providing CIFS support
• httpd – Apache HTTP daemon. Config file is /etc/service_conf/httpd.conf
twonky media server
pure-ftp server
• sshd – SSH daemon
• nsuagent – Zyxel NAS Starter Utility agent (helps find NAS on network?)

Let’s take a look at the filesystem on the NAS 326:

We can see our RAID array is mounted at /dev/md2

As the NAS 326 has 512MB DDR III memory it uses a ramdisk to load the Linux kernel (I’m guessing!)

Networking Woes

I can’t see the outside world from the NAS326. A networking/routing issue no doubt.

A ping confirms we can’t see shit:

Let’s address that issue in a separate post, eh

Leave a Reply

Be the First to Comment!

Notify of