Raspberry Pi Storage Server (NAS) : Compact, Powerful & Portable

by sanjula nipun in Circuits > Raspberry Pi

7695 Views, 120 Favorites, 0 Comments

Raspberry Pi Storage Server (NAS) : Compact, Powerful & Portable

20260427_140249.jpg
20260427_140200.jpg
large.png
large (1).png

🌐 Building My Own Raspberry Pi Home NAS Server

Hello everyone! 😊

I had this idea to build a reliable storage server using a Raspberry Pi, and I thought it would be great to share the journey with you all.

I’ve always been interested in small servers and dreamed of having my own home server rack someday. But honestly, many of you probably already know that building a full setup like that can be quite expensive πŸ’Έ

So I started thinking... what’s the best and simplest way to begin? πŸ€”

That’s when I realized that creating a NAS storage system using a Raspberry Pi is a smart and practical starting point πŸš€

While working on this project, I ran into a few challenges along the way. So in this guide, we’ll talk about those issues, explore possible solutions, and figure out the best ways to overcome them πŸ› οΈ

I truly believe this will be very useful for anyone planning to build a home NAS server πŸ πŸ’Ύ

Alright, no more talking… Let’s jump straight into building it! πŸ”₯

Supplies

20260425_110258 (1).jpg
20260425_110818.jpg
  1. Raspberry pi 5
  2. SD Card (for install Raspberry pi OS)
  3. Radxa Penta SATA HAT
  4. Acrylic HDD holder Board
  5. FPC Cable
  6. M2.5*5 Copper Post
  7. M2.5*18+6 Copper Post
  8. M2.5*5+5 Copper Post
  9. M2.5 Screw
  10. Radxa Penta SATA Top Board
  11. Data Cable
  12. M.2.5*40+6 Copper Pillar
  13. 4x 2.5 SDD Hard Drive or Normal Hard Disk
  14. RJ45 Cable
  15. 2.5Gbps USB Ethernet Adapter (read step 9 & 16)

Tools and Others

  1. Screw Driver
  2. USB typeC Power Adapter
  3. DC 12V 5A (5525) adapter to power the SATA HAT
  4. 3D Printer for Print Casing

Mounting the Raspberry Pi Board Properly

20260425_112510.jpg
20260425_112537.jpg
20260425_112658.jpg

First, I take the Raspberry Pi board and the screw set that came with the SATA HAT. From that kit, I use the M2.5Γ—5 screws along with the M2.5Γ—18+6 copper standoffs. πŸ”§

Then, I carefully insert the screws through the four mounting holes on the Raspberry Pi and fix the copper standoffs in place. These four standoffs will act as the main support structure for building the rest of the setup on top of the board.

Make sure to tighten the copper standoffs firmly πŸ”© so they don’t become loose later when we continue assembling the rest of the hardware.

Connecting the SATA HAT and FPC Cable

20260425_112845.jpg
20260425_113028.jpg
20260425_113112.jpg
20260425_113155.jpg

Next, take the SATA HAT and locate the FPC connector on the back side. Then, carefully insert the IPEX (FPC) cable into that connector. πŸ”Œ

⚠️ This step is very delicate, so make sure to do it with patience and care. The cable and connector can easily get damaged if handled roughly. Take your time, check the correct orientation, and gently slide the cable into place.

If you look closely at the second photo (zooming in helps πŸ”), you’ll see the correct direction I used to install the cable. Once the cable is properly seated, lock the connector to secure it.

After that, take the other end of the FPC cable and carefully connect it to the Raspberry Pi board.

Now you can slowly position the SATA HAT on top of the Raspberry Pi. You’ll notice that it aligns perfectly with the copper standoffs we installed earlier, making it easy to mount everything securely together πŸ”©

Assembling the Hard Drives

20260425_113403.jpg
20260425_113542.jpg
20260425_113919.jpg

Now, let’s move on to assembling the HDDs πŸ› οΈ

First, take one hard disk drive (HDD) and place it onto the acrylic holder board. Then, use screws to fix the drive into the first two mounting holes, making sure it is securely attached.

You can repeat the same process for the remaining drives. Don’t forget to tighten screws on both sides so each drive stays firmly in place πŸ”©

This step is simple but important, as proper mounting keeps your drives safe and stable.

In my setup, I used 3 HDDs, but you can go with 4 drives if you prefer. Even using just 1 or 2 drives is perfectly fine depending on your needs πŸ‘

Connecting the HDD Cluster to the SATA HAT

20260425_114053.jpg
20260425_114108.jpg
20260425_114130.jpg
20260425_114056.jpg

Now it’s time to connect the HDD cluster to the SATA HAT πŸ”Œ

Carefully bring the assembled drives closer to the SATA HAT and check the orientation of the SATA connectors. This is important because SATA connectors only fit one way, so take a moment to align them correctly before pushing anything in.

Once aligned, gently connect each drive to the SATA ports on the HAT. You can refer to the photos to get a clear idea of how everything should sit together.

⚠️ Be careful not to force the connectors or damage any ports. Always connect them slowly and smoothly to avoid breaking pins or loosening the ports.

With everything properly connected, your HDD cluster should now sit neatly on the SATA HAT, completing this step of the build βœ…

Assembling the Top Board

20260425_114222.jpg
20260425_114309.jpg
20260425_114405.jpg

Next, we move on to assembling the top board πŸ”

First, take the M2.5Γ—40+6 copper pillar set and connect three pillars together to form four long standoffs.

After preparing the standoffs, look at the underside of the top board. You’ll find a white double row pin connector there. Carefully connect the data cable to this header.

⚠️ Make sure to check the correct orientation before connecting. Just like before, don’t force it in the wrong direction.

Installing the Long Copper Standoffs

20260425_114525.jpg
20260425_114600.jpg
20260425_114711.jpg

Next, we need to install the four long copper standoffs we prepared earlier. πŸ”©

Take those extended standoffs and fix them into the four mounting holes on the SATA HAT. These will act as the support pillars for the top board.

This step is not difficult at all, just make sure to align them properly and tighten them carefully so they stay firm. Do it gently and with control no need to apply too much force. βœ…

Installing the Top Board

20260425_114827.jpg
20260425_114849(0).jpg
20260425_115129.jpg

Next, take the top board and carefully place it on top of the four copper standoffs we installed earlier πŸ”©

Align the board so that all four holes match perfectly with the standoffs. Once everything lines up, gently lower it into position.

Then use the M2.5Γ—5 Copper post to fix the top board onto the standoffs. Tighten each one slowly and evenly so the board sits firm and balanced.

At this stage, your structure should now look clean, solid, and fully stacked, just like in your photos πŸ‘

Connecting the Top Board Data Cable

20260425_115228.jpg
20260425_115537.jpg

Now we reach the final assembly step 🎯

Take the data cable from the top board and carefully connect it to the SATA HAT connector. This cable is very important because it controls:

πŸŒ€ Fan speed control

πŸ“Ÿ Top display data communication

Raspberry Pi setup depends on this connection for proper monitoring and cooling control.πŸš€

Ethernet Connection & Network Upgrade Decision

20260425_115715.jpg
20260425_115927.jpg
20260425_120110.jpg
20260425_120215.jpg

Now we move to the network connection step πŸ”Œ

In this setup, I connected the Ethernet using a 2.5Gbps USB adapter, instead of using the built in port on the Raspberry Pi. 🌐

The main reason for this decision is simple πŸ‘‡

The built in Ethernet port is limited to 1Gbps, and when transferring large files on a NAS system, I felt that 1Gbps might become a bottleneck.

So I decided to use a 2.5Gbps USB Ethernet adapter through the USB 3.0 interface. This allows:

⚑ Faster file transfers

πŸ“ Better NAS performance

πŸš€ Nearly 2x network speed improvement compared to 1Gbps


Also, when buying an Ethernet cable, it’s better to choose a good quality one like CAT6 or CAT7 πŸ”Œ

You can easily find more detailed information about these online if you search Google. People who work with networking already know this well.

Simply put, the cable you choose also affects the speed ⚑

Installing Raspberry Pi OS (Important Setup Note)

Capture.PNG

πŸ’½ Installing Raspberry Pi OS (Important Setup Note)

Next step is installing the operating system on the SD card. I’m not going to go through the full flashing process here because it’s already well documented, and you can easily follow official guides or tutorials on YouTube and Instructables.

"Official guide"

🧠 Important choice: OS version

For this project, the OS choice matters πŸ‘‡

  1. If you are building a NAS system (like OpenMediaVault) β†’ use Raspberry Pi OS Lite
  2. βœ” Lightweight
  3. βœ” No desktop overhead
  4. βœ” Best compatibility for server setups
  5. If you are just learning Raspberry Pi basics β†’ you can use the Desktop version
  6. βœ” Easier UI
  7. βœ” Good for beginners

But for this NAS build, Lite version is the correct choice βš™οΈ

⚠️ Final note

If you run into any issue during setup, feel free to message me πŸ‘ I’ve worked with Raspberry Pi setups before, so I can help if something goes wrong.

Powering the Raspberry Pi NAS Setup (Very Important)

20260427_111913(0) (1).jpg

After putting the Raspberry Pi OS into the SD card πŸ’½, the next step is to insert the SD card into the Raspberry Pi and power it on πŸ”Œ

When talking about power ⚑, you need to supply it correctly to the SATA HAT. If you are using SSD, it takes around 3W, so a good USB TypeC 5A power supply is enough πŸ‘

But if you are using normal 2.5” HDDs, they take around 5W or more per drive πŸ’Ύ so you need a 12V power supply through the 5.5Γ—2.5mm DC jack on the SATA HAT πŸ”Œ


⚠️Very important warning : Never use USB TypeC power AND 12V DC jack at the same time ❌


βœ… Final recommendation

For any HDD based NAS: πŸ‘‰ 12V 5A DC adapter via 5525 jack = best and safe choice πŸ”₯

This works reliably no matter how many drives you use, and keeps the system stable under load.

SSH Login & First HDD Setup Steps

S1.PNG
S2.PNG

After installing the OS and powering up the NAS system πŸ”Œ, I connect to the Raspberry Pi using SSH from the terminal πŸ’»

βš™οΈ Step 1 – Enable PCIe

First, we enable PCIe support:

Edit this file πŸ‘‡

/boot/firmware/config.txt

Then add this line at the end:

dtparam=pciex1

πŸ’Ύ Save the file and reboot the system πŸ”„

πŸ’½ Step 2 – Check Disks

After reboot, we can check if all storage devices are detected.

Run this command:

lsblk

This will show all connected disks and partitions 🧠

I’ve added screenshots here so you can check the commands πŸ“Έ

If you are new to this, it may look a bit confusing at first πŸ˜… but if you are interested in networking, servers, and Linux, these are actually very basic things.If you are into servers and networking, these are the basic things you will see all the time. It’s not really complicated, it just feels new at the beginning. Once you practice a bit and search things yourself, it becomes easy πŸš€

Speed Test & PCIe Gen 3 Setup

S3.PNG
S4.PNG
S5.PNG
S6.PNG

Now let’s run a simple speed test πŸ“Š Since we are using a mechanical hard disk, the speed will naturally be lower 🧠

πŸ’½ Step 1 – Write Speed Test

Run this command:

sudo dd if=/dev/zero of=/dev/sda bs=32M status=progress count=100 oflag=direct

This tests the write speed of your disk πŸ’Ύ

πŸš€ Step 2 – Force PCIe Gen 3

To force PCIe Gen 3, add this line:

dtparam=pciex1_gen=3

πŸ“ File location:

/boot/firmware/config.txt

Then save and reboot πŸ”„

πŸ” Step 3 – Check PCIe Link Status

After reboot, run:

sudo lspci

Then:

sudo lspci -vvv -s 0000:01:00.1 | grep LnkSta

This will show if Gen 3 is active ⚑

πŸ“ˆ Step 4 – Re test Speed

After confirming Gen 3 is working, run the same dd test again and compare results πŸš€

You should see better performance depending on your setup πŸ‘

πŸ’‘ In my case, I’m using a normal desktop HDD, so the speed you see here is expected for mechanical drives πŸ’Ύ

If you use an SSD, you will get much higher speed results βš‘πŸš€ compared to a HDD.

Installing NAS Management System (OpenMediaVault)

omv8-splash.jpg
Capture_cd31f7b1-bb0a-4d72-b9b3-8038904998ce.png

Now we are done with the hard disk testing phase πŸ’Ύβœ… Next step is installing the NAS management system. For this, we will use OpenMediaVault 🧠

βš™οΈ Why OpenMediaVault?

This is why I chose it πŸ‘‡

βœ” Easy NAS management system

βœ” Works perfectly with Raspberry Pi (Lite OS)

βœ” Web based control panel 🌐

βœ” Supports Windows, macOS, and mobile access πŸ“±πŸ’»

πŸ“Œ Important note

I’m not going to write full step by step installation here because it becomes too long and confusing (easily 10–15 steps or more πŸ˜…).

Instead, you can follow the official OpenMediaVault guide. It’s the best and most updated source for installation

🌍 What you get after setup

Once OpenMediaVault is installed, you can:

πŸ“ Share files between Windows and Mac

πŸ“± Access storage from your phone

🌐 Manage everything from a web dashboard

πŸ’Ύ Turn your Raspberry Pi into a full NAS server


This is the point where your build becomes a real home NAS system πŸ”₯ After this, managing storage becomes very simple and centralized πŸ‘

Custom 3D Printed Case Design

5.PNG
4.PNG
3.PNG
2.PNG
1.PNG

After finishing all the hardware and NAS setup, the next step is to give the build a proper product level finish 🎯

We can design a custom enclosure for the whole system using Autodesk Fusion 360 🧠

This case is made to fit the full NAS setup including the Raspberry Pi, SATA HAT, HDD/SSD stack, fan, and all internal wiring in a clean layout.

The model can be adjusted easily if needed πŸ”§ such as changing dimensions, adding extra drive bays, improving airflow, or modifying mounting points depending on the build.

Once the design is ready, it can be exported for 3D printing πŸ–¨οΈ and assembled to complete the project.

After printing, the whole setup becomes more organized, protected, and looks like a proper finished NAS product instead of a DIY build πŸ”₯

Download Files

Final NAS Test & Real World Usage

Untitled1.jpg

Finally, I tested everything by creating a ~100GB shared volume and mounting it on Windows 10 as a network drive πŸ’» OpenMediaVault handled it smoothly, and the share works perfectly across devices.

🌐 Cross device access test

βœ” Works on Windows 10 as a network drive

βœ” Works on iPhone Files app πŸ“±

βœ” No third party apps needed

βœ” Also accessible from macOS 🍎

Everything connects through the NAS server directly πŸ‘

⚑ Speed comparison

  1. 1Gbps = normal NAS speed (fine for daily use)
  2. 2.5Gbps = noticeably faster transfer πŸš€

πŸ’‘ If you use an SSD, you can get even better performance on the 2.5Gbps network.

But SSDs are more expensive πŸ’Έ So:

  1. πŸ’Ύ HDD = best for large storage + budget friendly
  2. ⚑ SSD = best for speed + performance

🧠 Final conclusion

This setup makes file sharing very simple πŸ‘‡

  1. One central storage server
  2. Access from Windows, Mac, iPhone
  3. No extra apps needed
  4. Everything managed from NAS

Honestly, this is a very practical home server setup πŸ”₯

Once it’s running, you don’t need to think about file transfer between devices anymore everything is already in one place πŸ‘

Project Complete!

FDUWLX5MODBJO4V.jpg
ChatGPT Image Apr 27, 2026, 02_24_44 PM.png
FFIH759MODBIFYR.png

This is the final part of my project πŸ”₯ I couldn’t finish the case yet because I don’t have a 3D printer πŸ–¨οΈ so I ordered it from a 3D printing service. Once it gets delivered, I’ll upload photos so you can see the final result πŸ“Έ

I think you’ll like this build πŸ‘ You can even use this as a portable NAS system πŸ’Ό

Just look at the size when it’s in hand, it’s very compact, but the performance is not small at all πŸš€

πŸ’‘ Also, don’t forget to add a heatsink to your Raspberry Pi 🌑️ I didn’t have one during my build, but it’s definitely recommended for better cooling.

If you have any questions about this project, drop a comment below πŸ’¬And if you want more content about networking or servers, let me know as well πŸ‘