概要
ollamaでpullしたモデルはデフォルトでルートパーティション内の /usr/share/ollama/.ollama/modelsに入ってしまう。LLMのサイズは、一般に小さな容量のルートパーティションではとてもまかないきれない。そこで容量の大きなパーティションへ保存するようにシンボリックリンクを設定することがこの備忘録の趣旨である。
このとき注意しなければならないのは、ollamaはインストールと同時に追加されるユーザollamaで制御される点である。つまりその転送先パーティションはユーザollamaがアクセスすることになるため、OSにログインしているユーザihmonだけがアクセスできる$HOME下にリンクを張ると失敗する。たとえ正しくユーザollamaにアクセス権を与えたとしても、OS再起動後にはユーザollamaのアクセス権限が消えるためollama.serviceはstatus=1/FAILUREとなる。
- 実施期間: 2025年5月
 - 環境:Ubuntu22.04LTS
 - ollama: version0.9.0
 
Ollama モデル保存先を別パーティションへ移動するためのセットアップ手順
前提
- Ubuntu 環境
 - モデル保存先のパーティション: 
/media/ihmon/data_disk/models/ollama-models - 
ollamaサービスは systemd 管理 
目的
- モデル保存先をルートパーティションから別パーティションの 
/media/ihmon/data_disk/models/ollama-modelsに設定するものとする - シンボリックリンクを使用して 
/usr/share/ollama/.ollama/modelsから転送する - 再起動後も安定して動作させる
 
1. Ollama のインストール
オフィシャルサイトを参照すること。
curl -fsSL https://ollama.com/install.sh | sh
確認:
which ollama
# => /usr/local/bin/ollama
2. モデル保存先ディレクトリの準備
シンボリックリンク先を準備する。ここでは別パーティション内のollama-modelsへ移すようにしている。ユーザollamaの権限付与が重要で、特にこの例ではollama-modelsへ至るまでの全パスで与える必要あり(かなりハマった)。
sudo mkdir -p /media/ihmon/data_disk/models/ollama-models
sudo chown -R ollama:ollama /media/ihmon/data_disk/models/ollama-models
🔸親ディレクトリの実行権限付与(重要)
sudo chmod +x /media
sudo chmod +x /media/ihmon
sudo chmod +x /media/ihmon/data_disk
確認:
ls -ld /media/ihmon/data_disk/models/ollama-models
# => drwxrwxr-x ... ollama ollama ... /media/ihmon/data_disk/models/ollama-models
3. シンボリックリンクの設定
sudo rm -rf /usr/share/ollama/.ollama/models
sudo ln -s /media/ihmon/data_disk/models/ollama-models /usr/share/ollama/.ollama/models
確認:
ls -l /usr/share/ollama/.ollama
# => models -> /media/ihmon/data_disk/models/ollama-models
4. systemd の override.conf で環境変数を指定
下記オフィシャルサイトにのとおり、OLLAMA_MODELSを設定する。
How do I set them to a different location?
また、このPCをLLM serverとして他のPCからもollamaへアクセスできるようにOLLAMA_HOSTも変更する。
ollama.serviceのデフォルト設定に追加するのでoverride.confに追記する。
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo vim /etc/systemd/system/ollama.service.d/override.conf
内容:
[Service]
Environment="OLLAMA_MODELS=/media/ihmon/data_disk/models/ollama-models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
反映:
sudo systemctl daemon-reload
sudo systemctl restart ollama
確認:
sudo systemctl status ollama
# => Active: active (running)
5. 自動マウントの設定(fstab で永続化)
PC再起動時、転送先パーティションを自動マウントするように設定する。
sudo blkid  # UUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxを確認
sudo vim /etc/fstab
追記例:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/ihmon/data_disk ext4 defaults 0 2
追記例(通常の読み書き用途に適した安全なマウント構成):
- ドライブが外れていたり不調でも、OSが起動時にフリーズしない
 - 起動時にsystemdが長時間待機しない(10秒でスキップ)
 
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/ihmon/data_disk ext4 defaults,nofail,x-systemd.device-timeout=10 0 2
確認:
sudo mount -a
ls /media/ihmon/data_disk
6. 動作確認
モデルのダウンロード
ollama pull llama3
モデルファイルの保存先確認
ls /media/ihmon/data_disk/models/ollama-models
# => モデルファイルが保存されていること
🔍 忘れてはならないポイント
- 
/media/ihmon/data_disk/models/ollama-modelsに加え、親ディレクトリにも "x" 権限を付けること(chmod +x) - 
override.confにOLLAMA_MODELSを必ず明示的に設定 - systemd でサービスを再起動した後は 
statusやjournalctl -u ollama.serviceで状態確認 
以上