Set Ollama’s OLLAMA_MODELS variable to an absolute directory, then reload and restart the systemd service. For a standard Linux installation, the service normally stores models in /usr/share/ollama/.ollama/models. Changing the variable only changes where Ollama looks; it does not move models already downloaded. Create the destination, grant it to the ollama account, move the existing blobs and manifests directories or pull the models again, and verify the service logs.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What changing the model path actually changes
Ollama uses the OLLAMA_MODELS environment variable to choose its model directory. The value must be an absolute path, such as /mnt/large-drive/ollama-models. On Linux with the standard system installer, the documented default is /usr/share/ollama/.ollama/models.
As an Amazon Associate I earn from qualifying purchases.
The setting affects the Ollama process that receives it. A systemd service, a manually launched ollama serve, a container, and a distribution-specific launcher can each have a different environment. Consequently, changing a variable in your interactive shell does not automatically change the environment of a system service.
The service account matters
The standard systemd installation runs as the ollama user. The target directory and everything below it must be readable and writable by that account. A path that exists but is owned only by your login user can still produce permission errors when the service starts.
#1 Best Overall
- Capacity Display Variance: 250GB external ssd often appears as around 232GB on Windows. MacOS can show full 250 GB capacity. This is binary calculation difference and doesn’t affect SSD hard drive actual physical storage
- 1050 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1050MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
- Data Security: Solid state drives S.M.A.R.T. health diagnostics and adaptive TRIM optimizing data block management ensures consistent write speeds and extends the longevity of the portable SSD
- USB-C & USB-A Cable: Both cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers and backup between computers, smartphones, tablets and iPhone
- Always Fast: No slowdowns for large file transfers. With SLC caching (25% of current available capacity allocated as high-speed cache), this external SSD delivers steady 10Gbps for transfers within the cache capacity
This procedure’s scope
The steps below apply to a native Linux installation managed by systemd. Docker deployments, distribution packages, and custom launchers need the variable added to their own container or service environment. The same variable name is used, but the place where you set it depends on how that Ollama process is started.
Choose the right way to set OLLAMA_MODELS
| Approach | Persistence | Process identity | Migration work | Best use |
|---|---|---|---|---|
systemd drop-in with systemctl edit |
Survives shell logout and service restarts | The system ollama account |
Move existing blobs and manifests, or re-pull models |
A normal Linux system installation |
| Shell export | Applies only to commands launched from that shell and its children | Your login session or the process you start | Move or re-pull models for that process | Temporary testing with a manually started server |
User-run ollama serve |
Depends on how you launch it | Your login user, which may use a home-directory .ollama |
Move or re-pull models visible to that user | Installations deliberately run outside systemd |
| Docker, distro package, or custom launcher | Controlled by that launcher | Defined by the container or launcher | Use that environment’s model storage | Non-standard installations |
If ollama.service is enabled and running, use the systemd method. It is the setting that the service will consistently receive, rather than a variable that exists only in your terminal.
Set a persistent path for a systemd installation
1. Pick an absolute destination and confirm the storage is available
Choose a directory on the filesystem that has enough capacity, for example /mnt/large-drive/ollama-models. If this is an external or secondary drive, make sure it is mounted at that path before Ollama starts, including after a reboot. The variable should point to the model directory itself, not merely to the mount’s parent directory.
2. Create the directory and assign ownership
Create the destination with elevated privileges, then give the service account ownership:
sudo mkdir -p /mnt/large-drive/ollama-models
sudo chown -R ollama:ollama /mnt/large-drive/ollama-models
Replace the example path with your chosen absolute directory. The recursive ownership change is important if the directory already contains copied model data.
3. Add a systemd drop-in override
Open the service override editor:
sudo systemctl edit ollama.service
Under the [Service] heading, add exactly one environment assignment:
[Service]
Environment="OLLAMA_MODELS=/mnt/large-drive/ollama-models"
Save and close the editor. A drop-in override is preferable to editing the vendor unit directly because package updates can replace the original unit while leaving the override in place.
Rank #2
- Blazing fast NVMe technology with speeds of up to 1050MB/s and write speeds of up to 1000MB/s | Based on read speed unless otherwise stated. As used for transfer rate, 1 MB/s = one million bytes per second. Based on internal testing; performance may vary depending upon host device, usage conditions, drive capacity, and other factors..date transfer rate:1050.0 megabits_per_second.Compatibility : Windows 10+ operating systems, macOS 11+.
- Password enabled 256-bit AES hardware encryption
- Shock and vibration resistant. Drop resistant up to 6.5ft (1.98m)
- Cross Compatible USB 3.2 Gen-2 and USB-C (USB-A for older systems)
- 5-year manufacturer's limited warranty
4. Reload systemd and restart Ollama
Tell systemd to reread the unit configuration, then restart the service:
sudo systemctl daemon-reload
sudo systemctl restart ollama
The restart is what launches Ollama with the new environment. A daemon reload by itself does not restart an already-running process.
5. Confirm that the service can read the directory
Run:
ollama list
If the directory is new, an empty list can be expected until a model is pulled. Pull a small, known model if necessary, then inspect the service log:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
journalctl -u ollama
Look for path, permission, or startup errors. If the service cannot write to the destination, correct ownership and restart it again.
Move models you already downloaded
Changing OLLAMA_MODELS does not copy anything from the old location. Existing downloads are represented by the blobs and manifests directories. Until those directories are present in the new location, the service can show no models even though the old disk still contains them.
Option A: copy the existing model data
Copy both directories from the standard system path while preserving their contents and then apply ownership to the destination. Stop the service during the copy so it cannot modify files while they are being transferred:
sudo systemctl stop ollama
sudo mkdir -p /mnt/large-drive/ollama-models
sudo cp -a /usr/share/ollama/.ollama/models/blobs /mnt/large-drive/ollama-models/
sudo cp -a /usr/share/ollama/.ollama/models/manifests /mnt/large-drive/ollama-models/
sudo chown -R ollama:ollama /mnt/large-drive/ollama-models
sudo systemctl daemon-reload
sudo systemctl restart ollama
The destination should end up with /mnt/large-drive/ollama-models/blobs and /mnt/large-drive/ollama-models/manifests. If you use a different destination, substitute it consistently in the copy, ownership, and systemd settings. Check ollama list before deleting anything from the old location. Keep the old data until the new service lists the expected models and can run one successfully.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
- Capacity Reminder: Display capacity of 2TB SSD often appears as around 1863GB on Windows. MacOS typically shows full 2TB. This display capacity reduction of 7% to 10% from SSD actual capacity is from algorithms differences in which 1GB is interpreted as 1024MB on Windows and 1000MB on SSDs
- 1000 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1000MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
- Data Security: Master solid state drives health with S.M.A.R.T. monitoring. TRIM technology ensures consistent write speeds and extends the lifespan of the portable SSD
- USB-C & USB-A Cable: Both USB-C and USB-A cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers between computers, smartphones, tablets and Phones
- Always Fast: No slowdowns during large file transfers. When transferring files smaller than 500GB, this external ssd remains steady 10Gbps with SLC caching (25%of the current available capacity is allocated for high speed cache)
Option B: pull models again
If the old data is disposable, unavailable, or too difficult to copy, leave the old directory alone and pull each required model after the service is restarted with the new path. The downloads will be written to the new directory. This uses additional bandwidth and disk space during the transition, but avoids manipulating the existing model files.
Do not copy only one of the two directories
The model store uses both blobs and manifests. Moving only one can leave metadata without its content, or content without the references Ollama needs. Treat the pair as one model store and preserve their directory names.
Verify which Ollama process you are actually using
A frequent source of confusion is running a second unmanaged server while testing the systemd change. A manually started ollama serve can inherit a different environment from ollama.service, making it appear that the override was ignored.
- Use one server process while testing. If the systemd service is your intended installation, do not start another
ollama servein a terminal. - Restart the service after editing the override with
sudo systemctl daemon-reloadfollowed bysudo systemctl restart ollama. - Run
ollama listagainst that service and, if needed, pull a small known model. - Read
journalctl -u ollamafor errors from the service process rather than relying on output from a separate terminal process.
If a manually launched server is the one answering your client commands, its user-home directory may be used instead of the systemd destination. Stop that unmanaged process and test again through the single service instance.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Why Ollama may still use ~/.ollama/models
A shell export changed the wrong process
Setting OLLAMA_MODELS in a terminal affects programs launched from that terminal. It does not rewrite the environment of an already-running systemd service. Put the assignment in the systemd drop-in when the service is the process that should use the new path.
The service was not reloaded and restarted
Editing the override file does not alter a running process. Run both commands in order:
sudo systemctl daemon-reload
sudo systemctl restart ollama
A second server is responding
A manually started ollama serve may use a user-home .ollama directory and a different variable value. Ensure only the intended server is running before judging the systemd configuration.
Rank #4
- External SSD with USB4 Connection: Leverage the incredibly high bandwidth of USB4 to move large files for tasks like video and photo editing in seconds.
- Lightning-Fast Speeds: Delivers data speeds of up to 4,000MB/sec sequential read and up to 3,500MB/sec sequential write.
- Compatible with USB Type-C: Connect via USB Type-C, Thunderbolt 4 and higher for wide compatibility*. *Performance varies by capacity. Maximum performance requires USB4 or higher connection.
- Compact Form Factor: Small form factor allows you to take the EX400U with you for high-performance storage on the go.
- Simple Plug-and-Play Setup: Easy to use right out of the box with a single connection for power and data on PC or Mac.
The model data was not migrated
The new directory can be correctly configured and still appear empty. Copy both blobs and manifests, or pull the models again. The variable changes the lookup location; it is not a migration command.
Recommended Free Tools
The service account cannot access the destination
Check that the destination and its contents are owned by ollama:ollama and that the service account has read and write access. Correct the ownership with:
sudo chown -R ollama:ollama /mnt/large-drive/ollama-models
Restart the service and inspect journalctl -u ollama for any remaining permission error.
The drive is not mounted when the service starts
For a secondary or external drive, the path must refer to the mounted filesystem before Ollama starts. Confirm the mount is available during boot and before restarting the service. Otherwise, Ollama may not be able to create or read the intended model directory.
Use a temporary shell-only path when testing
For a user-run server, you can set the variable in the same shell before launching Ollama:
Free tools Windows power users keep installed
One-click scans. No signup required.
export OLLAMA_MODELS=/mnt/large-drive/ollama-models
ollama serve
This is useful for a quick test, but it is not a persistent systemd configuration. Closing the shell, starting the service through systemd, or launching Ollama from another context can produce a different environment. Do not use this method as a substitute for the drop-in override when the system service is your normal installation.
Installation-specific differences
Native systemd installation
Use sudo systemctl edit ollama.service, set the variable under [Service], reload systemd, restart Ollama, and ensure the ollama account owns the destination. The documented default path for this setup is /usr/share/ollama/.ollama/models.
Manually launched Linux process
Set OLLAMA_MODELS in the environment that launches ollama serve. The process may use a directory under the launching user’s home when no override is supplied. Keep the shell and server consistent so you do not compare one process’s model store with another’s.
Docker, distribution packages, and custom launchers
Set OLLAMA_MODELS in the container environment, package service definition, or launcher configuration that actually starts Ollama. The systemd drop-in above affects only ollama.service; it cannot change an unrelated container or supervisor.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Quick Recap
A practical checklist
- Choose an absolute destination on storage that is mounted before Ollama starts.
- Create the directory with
sudo mkdir -p. - Give the system service account ownership with
sudo chown -R ollama:ollama. - Add
Environment="OLLAMA_MODELS=..."under[Service]usingsudo systemctl edit ollama.service. - Run
sudo systemctl daemon-reloadandsudo systemctl restart ollama. - Move both
blobsandmanifests, or re-pull every required model. - Use
ollama listandjournalctl -u ollamato verify the service’s result. - Avoid a second unmanaged
ollama servewhile diagnosing the configuration.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




