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
π 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
- Raspberry pi 5
- SD Card (for install Raspberry pi OS)
- Radxa Penta SATA HAT
- Acrylic HDD holder Board
- FPC Cable
- M2.5*5 Copper Post
- M2.5*18+6 Copper Post
- M2.5*5+5 Copper Post
- M2.5 Screw
- Radxa Penta SATA Top Board
- Data Cable
- M.2.5*40+6 Copper Pillar
- 4x 2.5 SDD Hard Drive or Normal Hard Disk
- RJ45 Cable
- 2.5Gbps USB Ethernet Adapter (read step 9 & 16)
Tools and Others
- Screw Driver
- USB typeC Power Adapter
- DC 12V 5A (5525) adapter to power the SATA HAT
- 3D Printer for Print Casing
Mounting the Raspberry Pi Board Properly
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
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
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
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
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
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
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
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
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)
π½ 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.
π§ Important choice: OS version
For this project, the OS choice matters π
- If you are building a NAS system (like OpenMediaVault) β use Raspberry Pi OS Lite
- β Lightweight
- β No desktop overhead
- β Best compatibility for server setups
- If you are just learning Raspberry Pi basics β you can use the Desktop version
- β Easier UI
- β 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)
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
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:
πΎ 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:
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
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:
This tests the write speed of your disk πΎ
π Step 2 β Force PCIe Gen 3
To force PCIe Gen 3, add this line:
π File location:
/boot/firmware/config.txt
Then save and reboot π
π Step 3 β Check PCIe Link Status
After reboot, run:
Then:
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)
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
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 π₯
Final NAS Test & Real World Usage
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
- 1Gbps = normal NAS speed (fine for daily use)
- 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:
- πΎ HDD = best for large storage + budget friendly
- β‘ SSD = best for speed + performance
π§ Final conclusion
This setup makes file sharing very simple π
- One central storage server
- Access from Windows, Mac, iPhone
- No extra apps needed
- 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!
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 π