Ollama 모델 저장 위치 변경: Mac·Windows·Linux에서 기존 파일까지 옮기는 방법
Ollama 모델은 앱 본체보다 훨씬 많은 공간을 쓴다. 시스템 디스크가 부족하다면 앱을 다시 설치할 필요는 없다. 기존 모델 파일을 새 드라이브로 복사하고 OLLAMA_MODELS가 그 폴더를 가리키게 하면 된다. 순서는 Ollama 종료 → 파일 복사 → 환경 변수 설정 → 재시작 → 모델 실행 확인 → 기존 폴더 삭제다.
공식 문서가 안내하는 기본 모델 폴더는 macOS의 ~/.ollama/models, Linux 표준 설치의 /usr/share/ollama/.ollama/models, Windows의 C:\Users\%username%\.ollama\models다. 모델을 옮긴 뒤 ollama list가 비어 보인다면 파일이 지워진 것이 아니라 새 경로 설정이나 폴더 구조를 잘못 지정했을 가능성이 크다.
먼저 확인할 것: 새 폴더에는 blobs와 manifests가 바로 보여야 한다
OLLAMA_MODELS에는 .ollama 상위 폴더가 아니라 모델 데이터가 들어갈 폴더 자체를 지정한다. 기존 models 폴더를 열면 보통 blobs와 manifests가 보인다. 새 경로를 /Volumes/AI/OllamaModels로 정했다면 복사 후 구조도 다음처럼 되어야 한다.
/Volumes/AI/OllamaModels/
├── blobs/
└── manifests/
흔한 실수는 폴더를 한 겹 더 만드는 것이다. /Volumes/AI/OllamaModels/models/blobs처럼 복사해 놓고 OLLAMA_MODELS=/Volumes/AI/OllamaModels로 설정하면 Ollama는 바로 아래에서 필요한 데이터를 찾지 못한다. 이 경우 모델 목록이 비어 보이거나 같은 모델을 다시 내려받으려 한다.
이동보다 복사를 먼저 권하는 이유도 여기에 있다. 새 경로에서 실제 모델 실행까지 확인하기 전에 원본을 지우면 경로 오타나 권한 문제를 복구하기 번거롭다. 모델이 실행된 뒤에만 원본 폴더를 삭제한다.
Mac에서 외장 SSD로 Ollama 모델 옮기기
먼저 메뉴 막대의 Ollama 아이콘에서 앱을 종료한다. 터미널에서 새 폴더를 만들고 기존 모델 폴더의 내용물을 복사한다. 외장 SSD 이름과 폴더명은 자신의 경로로 바꾼다.
mkdir -p "/Volumes/AI/OllamaModels"
rsync -a "$HOME/.ollama/models/" "/Volumes/AI/OllamaModels/"
공식 FAQ는 macOS 앱에 환경 변수를 전달할 때 launchctl setenv를 사용하라고 안내한다.
launchctl setenv OLLAMA_MODELS "/Volumes/AI/OllamaModels"
이제 Ollama 앱을 다시 실행하고 확인한다.
ollama list
목록만 뜬다고 끝내지 말고 자주 쓰는 모델 하나를 실제로 실행한다. 예를 들어 설치된 태그가 qwen3:8b라면 다음처럼 실행한다.
ollama run qwen3:8b "한 문장으로 연결 상태를 확인해 줘."
외장 SSD를 뺀 상태로 Ollama를 시작하면 지정한 경로에 접근할 수 없다. 로그인 직후 자동 실행을 사용한다면 SSD가 마운트된 뒤 Ollama를 시작하는 편이 안전하다. 볼륨 이름이 바뀌면 /Volumes/... 경로도 달라지므로 OLLAMA_MODELS를 다시 설정해야 한다.
Windows에서 C 드라이브 모델을 D 드라이브로 옮기기
Windows에서는 먼저 작업 표시줄 트레이의 Ollama를 완전히 종료한다. PowerShell에서 다음처럼 기존 모델 내용을 복사할 수 있다. 대상 폴더는 예시다.
New-Item -ItemType Directory -Force -Path "D:\OllamaModels"
robocopy "$env:USERPROFILE\.ollama\models" "D:\OllamaModels" /E /COPY:DAT
그다음 Windows 11 설정 또는 Windows 10 제어판에서 환경 변수를 검색한다. 사용자 환경 변수에 다음 항목을 새로 만든다.
- 변수 이름:
OLLAMA_MODELS - 변수 값:
D:\OllamaModels
확인과 적용을 누른 뒤 시작 메뉴에서 Ollama를 다시 실행한다. 이미 열려 있던 PowerShell은 이전 환경을 유지할 수 있으므로 새 창을 열어 확인한다.
ollama list
ollama run qwen3:8b "연결 확인"
공식 Windows 문서가 구분하는 두 경로도 혼동하지 말아야 한다. 앱 바이너리 설치 위치는 %LOCALAPPDATA%\Programs\Ollama이고 모델·설정은 기본적으로 %HOMEPATH%\.ollama 아래에 있다. OLLAMA_MODELS는 모델 저장 위치를 바꾸는 변수이지 Ollama 프로그램 자체를 D 드라이브로 옮기는 설정이 아니다.
Linux systemd 서비스에서는 권한까지 바꿔야 한다
표준 설치의 Ollama는 보통 ollama 사용자로 systemd 서비스가 실행된다. 현재 로그인한 사용자가 새 폴더에 파일을 복사했더라도 서비스 계정이 읽고 쓸 수 없으면 모델을 찾거나 내려받지 못한다.
서비스를 멈추고 새 위치로 복사한다.
sudo systemctl stop ollama
sudo mkdir -p /mnt/ai/ollama-models
sudo rsync -a /usr/share/ollama/.ollama/models/ /mnt/ai/ollama-models/
sudo chown -R ollama:ollama /mnt/ai/ollama-models
이어서 override 설정을 연다.
sudo systemctl edit ollama.service
편집기에 다음 내용을 넣는다.
[Service]
Environment="OLLAMA_MODELS=/mnt/ai/ollama-models"
저장한 뒤 systemd 설정을 다시 읽고 서비스를 시작한다.
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl status ollama
ollama list
permission denied가 보이면 경로 마지막 폴더만 보지 말고 /mnt, /mnt/ai, /mnt/ai/ollama-models를 서비스 계정이 통과하고 읽을 수 있는지 확인해야 한다. 표준 설치가 아니라 사용자가 직접 ollama serve를 실행하는 구성이라면 환경 변수도 그 프로세스를 시작하는 셸이나 서비스 설정에 적용해야 한다.
모델 목록이 비거나 다시 다운로드할 때 보는 순서
첫째, Ollama를 환경 변수 설정 후에 다시 시작했는지 확인한다. 앱이나 서비스가 실행 중인 상태에서 변수만 바꾸면 기존 프로세스는 새 값을 모를 수 있다.
둘째, 지정한 폴더 바로 아래에 blobs와 manifests가 있는지 본다. OllamaModels/models/blobs처럼 한 단계 깊게 복사했다면 경로를 고치거나 내용물을 위로 옮긴다.
셋째, Linux는 ollama 서비스 사용자의 읽기·쓰기 권한을 확인한다. Windows는 사용자 환경 변수의 이름이 OLLAMA_MODELS인지, 값에 모델명이 아니라 폴더 경로를 넣었는지 확인한다. macOS 외장 디스크는 실제 마운트 경로가 설정값과 같은지 본다.
넷째, ollama list 다음에 기존 태그를 정확히 입력해 실행한다. 목록과 실행이 모두 정상이어야 이전 폴더를 지워도 된다. 원본 삭제 전에는 새 폴더의 blobs 용량이 기존 폴더와 비슷한지도 확인하면 복사 누락을 잡기 쉽다.
안전하게 마무리하는 기준
새 저장 위치 전환이 끝났다는 기준은 세 가지다. ollama list에 기존 태그가 보이고, 그중 하나가 추가 다운로드 없이 실행되며, Ollama를 한 번 더 재시작한 뒤에도 같은 결과가 나와야 한다. 이 세 조건을 통과한 다음 원래 models 폴더를 삭제하면 된다.
나중에 원래 위치로 되돌리고 싶다면 OLLAMA_MODELS 값을 삭제하거나 기존 기본 경로로 바꾼 뒤 Ollama를 재시작한다. 환경 변수만 바꿔서는 모델 파일이 자동 이동되지 않는다. 어느 경로를 가리키느냐에 따라 보이는 모델 목록이 달라질 뿐이다.