Navigate / search

Server: unRaid

©Copyright 2012 by assassin @ assassinserver. All rights reserved. This guide and its contents are copyrighted by assassin @ assassinserver. This may be used for personal use by the purchaser only; users are forbidden to reproduce, republish, redistribute or resell and material from this guide without the permission of assassin @ assassinserver.

Table of Guides (with quicklinks):


Introduction to Unraid

Thanks to Duff99 for contributing to these guides

This guide will walk you through setting up an Unraid server.  Unraid was designed as a Media Server and is well suited for storing all of your movies and other assorted files. It is a software raid system with live (aka “realtime”) parity. This means that there is an extra drive dedicated to protecting you against a single drive failure, and it is updated as you write to the server. The write speed is limited since it is updating parity as you write to the server. I see 35 to 40MB’s a second on my transfers but your results will vary based on your hardware. Read speeds are governed by the speed of a single drive. Even a modern day 5400RPM green drive can feed 5 HD streams at once so this shouldn’t present any problems as a media server. I like Unraid since its Raid implementation doesn’t stripe across the drives and all your files remain readable in another system in the event of a drive or system failure. This would come in handy if you have 2 drive failures, for example. Unraid’s single parity system will protect you from a single drive failure. If 2 drives fail the worst scenario is that you would loose the data off of 2 drives. And if one of those drives is the Parity drive you would only lose the data from the one data drive. All your data on the other drives is still safe. Another difference with Unraid is that you don’t need a pre-installed operating system (like WHS) or operating system harddrive/ssd to use Unraid as it runs under Linux from a flash drive.

Please note that unlike some other options you cannot start with a drive that has data on it already. You need to start with drives that are empty.

On the free version of Unraid you’re allowed 3 drives (1 parity drive and 2 data drives). For $69 the Plus version steps up to 6 drives. The Pro version sells for $119 and allows for 20 data drives plus parity. The Plus and Pro also allow for a cache drive which is a way to speed up your transfers to the server. The cache drive is a special drive outside the array that lets you write to the server at the full speed of a single disk. It then moves the files to the protected array at a programmed time which is seamless to the user. The data on the cache drive is not protected until moved to the array so if your cache drive dies any data on it will be lost. There are some other advantages to the paid licensees so I’ll link you to the purchase page that lays out the specifics. I would recommend that you start out with the free version to make sure your hardware works with Unraid, especially your flash drive. Your license is tied to the GUID of your flash drive, so your flash drive must have a proper GUID. The best way to find this is to install the free version, and we can find it from a running system.

While on the subject of hardware, Unraid is based on Linux. It is therefore at the mercy of the Linux kernel. This means that sometimes the hardware you want to use does not work.  This is usually true for the bleeding edge of new releases (meaning that you may not want to use the absolute “latest and greatest” hardware which might not be necessary anyway). Where we usually run into problems are with NIC’s and HBA’s (host bus adapters for adding extra drives). With that in mind this guide will focus on the latest release at this time. This release candidate is quite stable.  This release supports the new Intel NIC that is on Assassin’s recommended hardware list as well as the newer Realtec NIC’s. It also allows for 3TB drives and some other modern hardware.

I chose this release to work with Assassin’s hardware list so that is where we can start. While I don’t have the budget to test out all of the hardware choices I think they should work without issues. The nice thing about Unraid is that it’s hardware requirements are quite low so most hardware should work. I started with a P4 system with no SATA ports and migrated though 2 more systems before settling on my current setup that’s been running stable for 5 years. The thing you’re looking for are as many onboard SATA ports as you can get and free PCI-e slots so you can expand with more drives. Unraid doesn’t need much horsepower so low power processors are good. Ram is cheap so get 4GB if you’re building however you can get away with 512MB if necessary.  If your board doesn’t have one or your NIC doesn’t work properly the most common upgrade is an Intel PCI-e NIC.  They’re fairly cheap and work very well with Unraid.  The best way to find out about your hardware compatibility is to install the free version of Unraid as it will either work or it won’t. It won’t cause unseen problems with your data so if it works your good to go. As I said before the biggest problem is with NIC’s so if yours doesn’t work using a add in card like the Intel listed in Assassin’s hardware guide can solve most problems. I like the Intel NIC but most from name brand companies should work. I’ll point out where to check if your NIC is going to work later in the guide.  With that out of the way I think it’s time to get building.

Preparing Your Flash Drive

The first step in getting a working Unraid server is preparing the flash drive. I like to use a 4GB flash drive since that gives you some extra space to play around with for extras and such. That said you could get away with something as small as 512mb, but as flash drives are cheap I’d still go with bigger. My current install is using just under 500mb and has a few extras on it, and I’ve been testing different things for a few years. Something to keep in mind is that if you buy a license it will be tied to you flash drive’s GUID. So you’ll want to choose a high quality unit since if it dies you’ll loose your license. Limetech the developer is pretty good about letting you move your license to a new drive. It would be better if you didn’t have to deal with the down time though.

First get the most recent Unraid files from here

Now open up “Computer” and select your flash drive

Now right click and select “Format”

We are going to use the Fat32 file system, and we have to name the drive UNRAID, all in caps.  If you don’t name it UNRAID it won’t work.  Now press “Start”

You will receive a warning. Press “OK” and it will format

Now unzip the downloaded Unraid files and copy them to your newly prepared flash drive. Locate the file “make_bootable” as we will use this next

On windows XP click on the file “make_bootable”. On Windows 7 right click “make_bootable” and select Run as Administrator. This will run a utility called syslinux from the flash drive and make it bootable

Click okay on the UAC dialog box that pops up and a window will open and run the utility on the flash drive. Once it’s finished press any key to dismiss the window.

You should now have a flash drive ready to run Unraid. Just eject it properly and we will be ready to move on to booting up our server.

Verifying and Accessing Unraid From a PC

Insert the drive into a USB port on your server and boot into the BIOS. You must make sure that the flash drive you just set up is set as the boot drive otherwise it won’t boot. While in the BIOS you should set your drives to ACHI mode (see the bios guide for more information about AHCI in bios). This isn’t strictly necessary but will allow your drives to run faster, and expose some advanced drive functions.

If all goes well it will boot up and you’ll see this screen. It will then start to load Unraid. A bunch of text will scroll down the screen and shortly we’ll get to this

This means that Unraid has finished loading and should be ready to go

Next we need to login as “root”. No password

Now we need to obtain the IP address so when can mange the server through a web browser on another PC. Type “ifconfig”. On the second line of the output you will see inet addr: and it will list your IP address (here underlined). If you don’t get an address or it’s saying you’ve got a problem with your NIC. It’s time for an add-in card or some troubleshooting on your network setup. This has to work or you won’t be to do anything with your server

Once we’ve got an IP address enter it into a browser window from another PC on your network and this is what you’ll be greeted with. For this guide we’re running a release candidate so we’ve got some additional info. Just click on the main tab and we’ll get started

We have the screen showing three disk slots and our flash drive. Since we’re running the free version we only have slots for the parity and 2 data drives (3 total). They are showing unassigned since we haven’t set up our drives yet. First step is to click on flash (for the flash drive). We need to determine if our flash drive has a usable GUID since this is how we purchase a license

If the area I have crudely obscured section isn’t zeros then your good to go. Let’s return to “Main”


Assigning Disks in Unraid

We’re going to assign our disks now. We’ll start with parity which needs to be your biggest disk. It can be as big as your other disks, just not smaller since any other disks will be limited to that size. Just click on the arrow next to parity and select your disk

This should give you some additional info on your drive in case you’ve got multiple drives of various sizes but have reserved the largest size drive (a 3TB or 4TB drive, for example) as the parity drive. The size is also displayed at the end of the drive name

Now we’re going to assign our data drives and for this step any drive can go in any slot as the size doesn’t matter. For this guide I grabbed some spare drives for this demo. They haven’t made Maxtor drives in a while and these are IDE so that’s also why they have (hd_) in the title (SATA drives will like the parity drive will have  (sd_) in the title). These are the drive identifiers that Unraid uses to keep track of the drives. The blue ball next to the disks mean that the drives are not formatted. At this point we’re ready to start the array

Since our disks are unformatted we must cancel the parity sync (see arrow)

After canceling the parity sync we are given the opportunity to format our disks. This will erase all data on the disks so make sure you really want to do this. Unraid needs to write zeros to every sector of the drives so it knows exactly what’s on them and that way it can keep track of the parity information. So it will need to do this for even new drives and it will take a while (and even longer for large disks). Click on the “Yes I want to do this” button under the format button. Then click on the format button and it will proceed to format your disks. Again remember it is erasing your disks, so make sure there is nothing on there you want to keep


Building the Parity in Unraid

Once the drives are formatted we must build the parity. So click on the sync button and go find something to do as this will take some time. Since it must now read every sector of every data drive and use it to calculate and write the parity to the parity drive this will take a long time. Again, the bigger the drive the longer the time it will take

Here we see the beginning of the parity sync. On this test system it is going to take a long time as these drives are old and slow. On modern hardware with modern drives you should see between 60MB to 80MB a second. Also, if your parity is larger than your other drives it will speed up once it’s past the end of your other drives. If you click the refresh button or reload your browser page it will update your position


Checking the Parity Drive

Once the parity has been built this is what we get. As we see on the left our parity is valid. The check button will start a parity check, which will make sure that the parity information matches the data on the drives. The check box underneath it will tell Unraid to correct the parity drive based on the data from the drives if there is an error. If it’s unchecked it will not change the parity drive just tell you that there is an error. This can be useful if you suspect a problem with one of your data drives. At this point we’ve got a fully working server. We’re going to change a few settings to make it more like what we want.


Setting Up the Network

We are going to click on the “Settings” tab and start setting things up. At the top are the network settings. “AFP” is for Apple computer, and “NFS” is for Linux systems. These are off by default. We will leave them off since Windows uses SMB. If you need them just click on the icons and turn them on. SMB is on by default but we’ll make some minor adjustments. Click on “SMB”.

These are the basic Windows networking settings. SMB is already enabled and set to Workgroup mode which is what we will use. The other option is active directory. For a basic home network Workgroup is the default method. The workgroup name is Mshome at default but you can see that I’ve changed it to “Workgroup”. This is what Windows 7 defaults to so unless you’ve changed it on your HTPC you should make this Workgroup. Local master refers to network discovery. If your networked computers are showing up properly in the Network section of my computer I’d leave this set as “No”. If they aren’t you can try changing it to yes and see if it helps. Once we’re done click on settings again to change a few more things

We are going to work our way across the bottom row Starting with Date and time.

First select your time zone (mine is set for central time in this shot). I also choose Yes for Use NTP which sets your clock automatically from a Network Time Protocol Server. Just click apply to save your settings. Clicking done brings you back to the main settings page.  Click done and we’ll move on to disk settings

Under disk settings we want to change a few things. First we want to enable auto start which is set at “no” by default. I’ve changed it to “yes” so the array will start when you boot up the computer. Otherwise you have to start it manually through the web interface. I’ve left the default spin down delay at 1 hour. This determines when your drives will spin down to save power. Once they haven’t been accessed for an hour they’ll spin down. These next settings should be left alone unless you know what your doing. Force NCQ disabled will increase your drives write speed so leave it at “yes”. Enable spinup groups will place your drives into groups that all spin up at once which is useful in certain situations, but we’ll leave it off for now. Default partition format is for advanced format drives. They need to be aligned to start at the proper sector or they will perform very poorly. This setting doesn’t matter to non-advanced format drives so just leave it as is. This way your covered if you have any advanced format drives. Just leave the rest of the settings alone. Click apply, then click done, and we’ll move on to “Identification” under the “Settings” tab.

This is the name you’ll see on the network. This is the same as computer name, and computer description in Windows. You can set this to whatever you want.  Click apply, click done, and move on to Network settings.

Under Network settings it’s default is to use DHCP to set your IP address automatically. Unless you want to assign a static IP address just leave this alone. If you do, enter your information. We’re going to take a little detour before we get to the share settings.

Here we have a network browser window. I’ve named my server VirtualTower for the purposes of this demonstration. We’re going to open it up and see what we get.

Enabling Disk Shares

This is the Unraid default. These are what are called disk shares. Each disk is exported and you can read and write directly to each disk. We are going to enable what is called “User shares” next. This will allow us to write to a virtual disk that will span all the drives (aka “pooled” or “pooling” of drives). This way when you run out of space you just add another drive and will make it easy to present all your media in a single folder. So click on share settings and we’ll set it up.

This is the default.  We want to change enable user shares to “Yes” under the “Settings” tab.  Click apply and done.

You can see we’ve got a new menu item “Shares”.  This is where we will set up our new disk spanning shares. Click the “Shares” tab now.

We’ve just enabled User shares so it’s empty. We’ll add one now. Click on “add share”.


Share Settings

By Default these boxes are empty. I’ve decided to create a share called “Movies”. I didn’t comment on it since it’s self-explanatory. For allocation method I’ve chosen high water.

There are 3 options.

1. High-water, with this method Unraid tries to fill up the disks as equally as it can. It will write some data to disk 1. Then it will write to disk 2. Moving back and forth based on its algorithm. Most-free will just write to the drive with the most free space. Fill-up will start with the lowest number disk and write until it’s full then move on to the next. This option is a good choice for most users.

2. Min free space will determine when Unraid thinks a drive is full. Unraid doesn’t know how big the file your transferring is until it’s done. So it will pick a disk that’s not marked full and start writing. If there isn’t enough space on the drive for the file it will error out and abort the transfer when the drive is actually full. So the rule of thumb is to set your Minimum free space to twice the largest file you think you’ll transfer to the share. I’ve set mine to 50GB (You have to enter it in KB). That’s not quite twice a big blu-ray rip, but it’s close enough. Keep in mind that this setting needs to be based on the size of your disks. I’m assuming that you’re using larger drives 1TB and up. In my case I’ve just set my min space larger than my actual data drives (Don’t do this for real as this was used as an example for this guide only)

3. Now we come to split level. This is where things can get really tricky as this determines how Unraid will spread your files out amongst your disks. Here is a little example.

Movies  >>>>  Blu-Ray >>>> Movie Folder >>>>

Level 1            Level 2            Level 3                       Level 4

Your user share is Level 1. It can be created across all the disks. Any folders inside it most stay on the same disk though. So if you set your split level to 1 on your server with 10 2TB drives all your files would be written to the first disk and you’d run out of space after your first drive is full. It would not write to the other drives. This is obviously too low. With a split level of 2 Blu-Ray and any other folders created under in the Movies folder can expand to any disks. The folders inside Blu-Ray would have to stay on the same disk though. So in this case the movie file and any meta-data in the same folder would stay on the same disk. This is useful since you would only need to spin up one disk to access the entire movie folder. Split level 3 would mean that the folders inside the movie folder would only be on one disk (I said this can be confusing). In this case the correct split level would be 2. It would keep all the data for the individual movie folders contained on a single disk, but allow different movies to be spread amongst your disks. If you like to classify your Blu-Rays by type, like I do, you’d need to move to a split level of 3. I have set it to 10 in this example so that I have effectively disabled the split level. This way you’d never need to worry about filling up a single disk when there is still space on your array. If you think you understand what to setting to use feel free to change it.

The last setting are disks in the share, or excluded from the share.  If you just wanted to keep things on certain disks, or keep it off others set it up here.  It needs to be enter as ”disk1,disk2”.  The disk name separated by a comma.  Unraid will check these setting when determining which disk to write to.  In this case we want all disks to be available so we will leave it blank.  Now click add share and we’ll configure the final settings.

We now get access to the SMB security settings. The first box is the export settings. This determines if it is visible on your network. We’ve got the default setting of yes, so we will see it in the network browser. If we choose Yes (hidden) you’ll still be available to access the share. You’ll just have to type in the network name to get to it since it won’t show up in the network browser. If you choose No you won’t be able to access it over the network. I like to choose export but hidden for my disk shares. This way I can still access them but they don’t clog up the browser window when I don’t need them. I show you how to do this later.

We won’t be doing any thing with security.  I’m assuming that this server is on a home network and you want all the computers to be able to access it with the minimum of fuss.  So we’ll leave this at the default of public.  Click apply, then done.

We now have a share spanning all disks named “Movies”.  If you click on the title it will let you edit the setting that we just changed.  Clicking on the folder icon will give you a rudimentary file browser to access files through your web browser.


Export Settings

At this point we’re going to change the export settings for the individual disk shares. Just click on the disk name to bring up the settings window. On a side note you can see that the ball next to disk2 is a different color. In real life it’s actually flashing between grey and green. This means that the drive is healthy, but it’s been spun down. The asterix in the temp section is another indicator of this (although in this case that drive is to old to actually give a temp reading so it will always be an asterix).

Here we have some basic drive info at the top.  We also have the option to set a individual spin down time for this disk, and set it’s Spinup group which we aren’t using.

Under SMB Security Settings I have changed have changed the Export setting to Yes (hidden).  As I mentioned earlier this way I can still access the drive by typing \\ServerName\DiskName in a file browser window.  It’s just not visible when I browse the server.  We’re keeping the security public again.  Click apply, and done.

Let’s do this with the other data drives now.  The flash drive has the GUID info at the top instead of spin down settings.  We can also change it’s export settings.  I’ve changed to hidden also.  The parity only has spin down settings since it’s not exported.

This is what we should see when we’re done. A user share that has access to all the drives in the server, and will be available to all the computers on your network.

Note: I’ve skipped over a few things in this guide. The users tab will allow you to set up different users and their permissions for security purposes. I said I wanted to make this easy to access so that’s the reason it was skipped. If you wanted to restrict the access of certain files you could create users with different permissions and then adjust the security settings on your shares. The Utilities tab has a few utilities that will provide you with some more information about your system and help you upgrade from earlier versions; however there is nothing there that is essential to running or using your Unraid server. Also I should mention that you must stop the array to expose the reboot and power down buttons.

At this point you should be all set to start adding media to your server and should be able to disconnect the monitor and keyboard. Short of adding drives you should be able to do everything through a web browser. Now that mine is set up I forget about it and it just runs. Every once in a while I check on it to make sure I’m not running out of disk space, but that’s it.  So good luck and enjoy!

©Copyright 2012 by assassin @ assassinserver. All rights reserved. This guide and its contents are copyrighted by assassin @ assassinserver. This may be used for personal use by the purchaser only; users are forbidden to reproduce, republish, redistribute or resell and material from this guide without the permission of assassin @ assassinserver.