A Raspberry Pi NAS built on OpenMediaVault gives you a self-hosted network file server for under $100 in hardware, running on a board that draws less than 5W at idle. OMV 7 installs via a script on top of Raspberry Pi OS Lite. There is no separate OMV image to flash. This guide covers hardware selection, the correct Bookworm install sequence, shared folder and Samba configuration, NFS for Linux clients, user management, and expanding the NAS with OMV Extras and Docker. For a Pi 5-specific build with NVMe storage, see OpenMediaVault on Raspberry Pi 5: Complete Install and NAS Setup Guide.
Last tested: OpenMediaVault 7.4 on Raspberry Pi OS Bookworm Lite 64-bit | May 2025 | Raspberry Pi 4 Model B (2GB) | OMV 7.4, Samba 4.17, WD Elements 1TB USB HDD
Key Takeaways
- There is no OMV image to flash. Do not use Balena Etcher to write an “OMV image” to your SD card. Flash Raspberry Pi OS Lite using Raspberry Pi Imager, boot, and run the OMV install script over SSH. Any guide that starts with “download the OMV image and flash it” is describing an outdated or incorrect workflow for current Pi hardware.
- Pi 4 with 2GB RAM is sufficient for a basic NAS running OMV, Samba, and NFS. The 8GB model is not required and does not meaningfully improve NAS performance for typical home file-sharing workloads. Spend the price difference on a better USB SSD instead.
- Every change in the OMV web interface is staged and must be applied before it takes effect. The yellow notification bar at the top of the interface appears after any configuration change. Click it and select Apply to write the changes to the system. Skipping this step is the most common reason a new share or service appears configured but does not work.
Hardware for a Raspberry Pi NAS
Pi 4 (2GB) handles a household NAS workload (file sharing, backups, and light media streaming) without breaking a sweat. Pi 4 (4GB or 8GB) adds headroom if Docker containers or Plex transcoding will run alongside the file server. Pi 3B+ is viable but its USB 2.0 bus caps throughput at around 35 MB/s, which matters for large file transfers. Pi 5 with an NVMe via M.2 HAT+ is the fastest option if storage performance is the priority.
Hardware checklist: Raspberry Pi 4 (2GB minimum). Official 5V/3A USB-C PSU. microSD card (16GB minimum) for the OS. External storage: USB SSD preferred over spinning hard drive. See the storage note below. Gigabit Ethernet cable. A case with passive cooling is sufficient for a NAS workload; the Pi 4 does not reach throttling temperatures doing file I/O alone.
Storage selection. USB SSDs (Samsung T7, WD My Passport SSD, Crucial X6) are the most reliable NAS storage option on Pi. They are self-powered from the USB port, have no moving parts, and deliver 200-300 MB/s sequential throughput. Portable spinning hard drives frequently fail to spin up reliably from the Pi’s USB port because they draw more current than the port can supply during spin-up. If a spinning drive is required, use a powered USB hub or a drive with its own external power supply. A desktop-class 3.5-inch drive in an enclosure with its own power adapter is more reliable than a bus-powered portable.

Installing OpenMediaVault on Raspberry Pi
Flash Raspberry Pi OS Bookworm Lite 64-bit using Raspberry Pi Imager. In the Imager advanced settings, set a hostname (for example nas), username, password, and enable SSH. Ethernet is strongly preferred. Do not configure WiFi as the primary NAS connection. After first boot, SSH in and update:
sudo apt update && sudo apt full-upgrade -y
sudo reboot
After the reboot, run the OMV install script:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
The script runs for 10 to 20 minutes, installs OMV 7 and all dependencies, and reboots automatically. After the reboot, the OMV web interface is available on port 80.
Expected result: Navigating to http://nas.local or http://[pi-ip-address] shows the OMV login screen. Default credentials: username admin, password openmediavault. Change the password immediately in System > Workbench > Change Password. If the login page does not appear after 3 minutes, check systemctl status nginx and systemctl status php8.2-fpm over SSH.
Configuring Storage, Shared Folders, and File Sharing
Connect the USB storage device. OMV detects it automatically. Navigate to Storage > Disks to confirm it appears. Format it through OMV: go to Storage > File Systems, click the plus icon, select the drive, choose ext4, and click Save. OMV formats and mounts the filesystem. Click the checkmark in the notification bar at the top to apply.
Create a shared folder: navigate to Storage > Shared Folders, click the plus icon, name the folder, select the filesystem, set the relative path, and configure permissions. A sensible starting point: Administrator read/write, Users read/write, Others no access. Apply. This shared folder is the foundation that all file-sharing protocols reference. Samba, NFS, and FTP all point to shared folders rather than raw filesystem paths.
Samba (SMB/CIFS) for Windows and macOS. Navigate to Services > SMB/CIFS, enable the service, set a workgroup name, and apply. Under the Shares tab, add a share pointing to the shared folder. Apply. On Windows, open File Explorer and type \nas or \[pi-ip] in the address bar. On macOS, press Command+K in Finder and enter smb://nas.
NFS for Linux clients. Navigate to Services > NFS, enable, and apply. Under Shares, add a share pointing to the shared folder. Set the client network (for example 192.168.1.0/24) and export options. Apply. On a Linux client, mount the share:
sudo mount -t nfs nas:/srv/dev-disk-by-uuid-[uuid]/sharename /mnt/nas
Find the exact export path in OMV under Services > NFS > Shares. For persistent NFS mounts, add the entry to /etc/fstab on the client.
User management. Navigate to User Management > Users, create a user account, and assign it to the users group. In the shared folder’s Access Control List, grant read/write to this user. Apply. Clients authenticate with this user’s credentials rather than the admin account, which limits exposure if credentials are ever compromised.
Expected result: Windows File Explorer shows the share under Network after SMB is enabled and applied. Linux clients mount the NFS share and read/write files. The Pi’s username and password authenticate the connection. If access is denied, check that the shared folder ACL has been applied and that the user is in the correct group.
Expanding the Raspberry Pi NAS with OMV Extras and Docker
OMV Extras adds Docker CE and Portainer to the NAS, enabling container-based applications alongside the file server. Install OMV Extras via SSH:
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | sudo bash
After refreshing the OMV interface, an OMV-Extras section appears in the left menu. Install Docker CE and Portainer from there. Portainer’s web interface manages containers at http://[pi-ip]:9000. Applications like Nextcloud, Jellyfin, and Plex deploy as Docker containers rather than native OMV plugins. This is the current OMV 7 architecture for application deployment.
S.M.A.R.T. monitoring. Navigate to Storage > S.M.A.R.T. and enable the monitoring daemon. Set up scheduled tests (short test weekly, long test monthly) and email alerts for any drive reporting errors. For USB SSDs, S.M.A.R.T. data is available through the USB bridge chipset on most drives; some enclosures block S.M.A.R.T. passthrough.
Backups. A NAS is not a backup. If the drive fails or the Pi is stolen, data on a single drive is gone. At minimum, set up an offsite backup with BorgBackup or rclone to a cloud provider. For a complete BorgBackup setup, see BorgBackup Raspberry Pi Prune Policies: Complete Setup Guide. For monitoring the NAS’s performance and storage usage over time, see Grafana InfluxDB Raspberry Pi: Complete Monitoring Stack Setup Guide.
For secure remote access to the NAS from outside the home network, Tailscale provides encrypted access without opening ports on the router. See Tailscale Raspberry Pi: Complete Secure Remote Access Guide.
Troubleshooting a Raspberry Pi NAS
OMV web interface unreachable after install. Check systemctl status nginx and systemctl status php8.2-fpm. Both must show active (running). If nginx failed to start, check journalctl -u nginx -n 20 for the error. A port conflict on 80 (another web server already running) is the most common cause. Check with sudo ss -tlnp | grep :80.
Changes not taking effect. Every OMV configuration change requires clicking the yellow notification bar and selecting Apply. If a share is configured but not accessible, check whether pending changes were applied. Navigate to System > Notifications or look for the yellow bar at the top of the interface. A reboot does not apply pending changes. Only clicking Apply does.
USB drive not appearing in Disks. Check lsblk over SSH to confirm the drive is detected by the OS. If it does not appear, try a different USB cable (charge-only cables will not pass data) and a different USB port. On Pi 4, use a USB 3.0 port (the blue ports) for best performance. Run dmesg | tail -20 after plugging in the drive for USB recognition messages.
Samba share not visible on Windows network. Confirm SMB is enabled and applied in OMV. On Windows 11, SMB1 is disabled by default. Add the share manually using its UNC path \[pi-ip][sharename] in the Add Network Location wizard rather than browsing the network. Verify the Windows machine and the Pi are on the same subnet and that the Pi’s firewall allows ports 139 and 445.
Slow transfer speeds. Check that the Pi is connected via Ethernet, not WiFi. On Pi 4, confirm the USB SSD is plugged into a USB 3.0 (blue) port. Run hdparm -t /dev/sda to benchmark raw drive speed. Expected sequential read: 150-300 MB/s for a USB SSD. If speeds are below 30 MB/s the drive may be in a USB 2.0 port or the cable is limiting throughput.
FAQ
Do I need an OMV image to set up a Raspberry Pi NAS?
No. There is no OMV image for current Raspberry Pi hardware. Flash Raspberry Pi OS Lite 64-bit using Raspberry Pi Imager, boot, SSH in, and run the OMV install script from github.com/OpenMediaVault-Plugin-Developers/installScript. The script installs OMV 7 and all required packages. Any guide starting with “flash the OMV image” is describing an outdated workflow.
How much RAM does a Raspberry Pi NAS need?
2GB is sufficient for a basic NAS running OMV, Samba, and NFS serving a household. OMV itself uses around 300-400 MB at idle. 4GB is comfortable if Docker containers or Plex will run alongside the file server. 8GB is only necessary for memory-intensive workloads like multiple concurrent transcoding jobs. Spend the cost difference on a better USB SSD rather than RAM for a NAS-only build.
What is the best storage for a Raspberry Pi NAS?
A USB SSD is the best choice for most builds. It is self-powered, has no moving parts, and delivers 200-300 MB/s throughput on Pi 4’s USB 3.0 ports. A portable spinning hard drive is unreliable on Pi because the USB port cannot always supply enough current for spin-up. If a large-capacity spinning drive is needed, use a powered USB hub or a drive with its own external power supply. For Pi 5 builds, NVMe via M.2 HAT+ is faster and more reliable than USB; see the Pi 5 NVMe OMV guide for that setup.
Can a Raspberry Pi NAS run Plex or Jellyfin?
Yes, through Docker after installing OMV Extras. Enable Docker CE from the OMV-Extras menu, then deploy Plex or Jellyfin as a Docker container via Portainer or Docker Compose. Pi 4 (4GB) handles direct play of 1080p content without transcoding. Software transcoding of 4K or multiple simultaneous streams will overwhelm the Pi’s CPU. Pi 5 handles light transcoding better than Pi 4 due to its faster CPU, but dedicated hardware transcoding (Intel Quick Sync, Nvidia GPU) is not available on Pi hardware.
How do I access my Raspberry Pi NAS from outside my home?
Tailscale is the recommended method. Install Tailscale on the Pi and on each remote device; both join the same encrypted Tailscale network. Access SMB shares using the Pi’s Tailscale IP address without opening any ports on the router. For Android and iOS, the Tailscale app handles authentication. Alternatively, enable SFTP on the NAS (available via OMV’s SSH settings) and use an SFTP client such as Cyberduck or WinSCP from the remote device over an SSH connection.
References:
- OpenMediaVault documentation: docs.openmediavault.org
- OMV install script: github.com/OpenMediaVault-Plugin-Developers/installScript
- OMV Extras wiki: wiki.omv-extras.org
- OpenMediaVault forum: forum.openmediavault.org
- Raspberry Pi Imager: raspberrypi.com/software
About the Author
Chuck Wilson has been programming and building with computers since the Tandy 1000 era. His professional background includes CAD drafting, manufacturing line programming, and custom computer design. He runs PidiyLab in retirement, documenting Raspberry Pi and homelab projects that he actually deploys and maintains on real hardware. Every article on this site reflects hands-on testing on specific hardware and OS versions, not theoretical walkthroughs.
Last tested hardware: Raspberry Pi 4 Model B (2GB), WD Elements 1TB USB HDD via powered hub. Last tested OS: Raspberry Pi OS Bookworm Lite 64-bit. OpenMediaVault 7.4, Samba 4.17.

