当前位置: 首页 > article >正文

Ubuntu系统中通过systemd配置自定义Ollama模型存储路径

1. 为什么需要自定义Ollama模型存储路径在Ubuntu系统上使用Ollama运行大语言模型时默认的模型存储位置可能会带来几个实际问题。首先系统分区通常空间有限而像deepseek-r1这样的8B参数模型动辄需要几十GB存储空间。我就遇到过系统盘爆满导致服务崩溃的情况当时正在运行的训练任务全部中断损失了不少计算资源。其次很多开发者习惯将大容量数据存放在单独的硬盘或NAS上。比如我的工作站的/home分区只有256GB但挂载了一个4TB的机械硬盘专门存放模型数据。如果不修改默认路径每次下载新模型都要手动迁移文件既麻烦又容易出错。通过systemd的override机制修改Ollama模型存储位置相比直接修改环境变量有几个明显优势。最关键是它能实现持久化配置即使Ollama后续更新也不会丢失设置。我有次系统升级后发现模型路径恢复默认排查半天才发现是.bashrc里设置的环境变量被覆盖了。而systemd的override.conf文件则完全不受影响配置始终生效。2. 理解systemd的override机制systemd作为现代Linux系统的服务管理器其override功能就像给服务配置打补丁。想象你有一套默认参数的工作服原始服务配置override就是在不拆改原服装的前提下通过外搭马甲override.conf来调整样式。这种设计既保持了原始配置的完整性又满足了定制需求。具体到Ollama服务原始配置文件通常存放在/lib/systemd/system/ollama.service。直接修改这个文件有两大风险一是软件更新时会覆盖修改二是可能引发服务依赖问题。我就曾手贱改过Nginx的service文件结果导致自动更新后服务无法启动。override.conf的优先级规则很有意思。它采用后来居上原则当systemd加载配置时先读取原始服务文件再加载/etc/systemd/system下的同名文件最后加载service.d目录中的override配置 这种层级结构让管理更灵活比如可以在不同环境使用不同的override配置。3. 准备操作环境在开始修改前建议先做好这些准备工作。首先确认Ollama服务状态systemctl status ollama正常应该显示active (running)。如果服务未运行需要先启动sudo systemctl start ollama检查现有模型存储路径也很重要ollama list这个命令会显示已下载模型及其存储位置。我建议先备份当前模型数据特别是如果你已经下载了重要模型。可以用rsync快速备份rsync -avz ~/.ollama /path/to/backup创建目标存储目录时要注意权限问题。比如我习惯把模型放在/media目录下的外接硬盘sudo mkdir -p /media/models/ollama sudo chown -R $USER:$USER /media/models/ollama记得用df -h确认目标分区有足够空间大型模型需要预留至少50GB空间。4. 创建并配置override文件实际操作override.conf有两种方式。新手推荐使用systemctl edit命令sudo systemctl edit ollama这个命令会自动创建正确的目录结构和文件我用它从没出过错。手动创建的话需要注意sudo mkdir -p /etc/systemd/system/ollama.service.d sudo nano /etc/systemd/system/ollama.service.d/override.conf文件内容的核心是[Service]段下的Environment设置。这是我的生产环境配置示例[Service] EnvironmentOLLAMA_MODELS/mnt/nas/ai_models Userdev Groupdev这里有几个实用技巧路径最好用绝对路径避免相对路径的歧义可以同时设置多个环境变量每行一个Environment如果修改运行用户要确保该用户对模型目录有读写权限有次我设置了网络存储路径但服务启动失败后来发现是NFS挂载时机问题。解决方法是在override.conf添加Afternetwork-online.target Wantsnetwork-online.target5. 应用配置并验证效果修改完成后必须按顺序执行这些命令sudo systemctl daemon-reload sudo systemctl restart ollama第一个命令让systemd重新加载配置第二个重启服务应用更改。我建议间隔5秒再运行第二条命令确保完全加载。验证配置是否生效有多种方法。最直接的是检查服务环境sudo systemctl show ollama --propertyEnvironment应该能看到你设置的OLLAMA_MODELS路径。更实际的测试是下载新模型ollama pull llama2然后用du命令查看文件实际存储位置du -sh /你设置的路径/.ollama/models如果遇到问题可以查看服务日志journalctl -u ollama -f常见错误包括路径权限不足用chmod/chown修复、磁盘空间不足清理或扩容或语法错误检查override.conf格式。6. 高级配置与优化建议对于需要更复杂配置的场景override.conf还能实现这些功能。比如限制服务资源使用[Service] MemoryHigh16G CPUQuota200%我管理的多用户服务器上会为不同用户创建独立的override配置/etc/systemd/system/ollama.service.d/user1.conf /etc/systemd/system/ollama.service.d/user2.conf每个文件设置不同的模型路径和用户权限。对于性能敏感的应用可以调整服务启动参数ExecStart ExecStart/usr/local/bin/ollama serve --numa --verbose注意必须先清空原ExecStart等号后面留空这是systemd的特殊语法。模型目录结构优化也很重要。我习惯这样组织/models ├── ollama_prod # 生产环境模型 ├── ollama_dev # 测试用模型 └── ollama_temp # 临时下载目录每个目录对应不同的override配置通过软链接动态切换。7. 常见问题解决方案在配置过程中这些问题我遇到得最多。首先是权限问题典型表现是服务启动失败且日志显示permission denied。解决方法sudo chown -R ollama:ollama /your/model/path注意如果修改了运行用户这里的ollama要替换成实际用户。其次是配置未生效的情况。先检查override.conf文件位置是否正确必须是/etc/systemd/system/ollama.service.d/override.conf而不是其他路径。然后确认执行了daemon-reload这是个高频遗忘点。对于空间不足的情况除了换路径还可以用符号链接mv ~/.ollama /big_disk/ ln -s /big_disk/.ollama ~/.ollama这样既不用改配置又能利用大容量存储。网络存储的挂载时机问题也很棘手。我的解决方案是在override.conf添加[Unit] Afterremote-fs.target Requiresremote-fs.target确保网络存储就绪后才启动Ollama服务。

相关文章:

Ubuntu系统中通过systemd配置自定义Ollama模型存储路径

1. 为什么需要自定义Ollama模型存储路径 在Ubuntu系统上使用Ollama运行大语言模型时,默认的模型存储位置可能会带来几个实际问题。首先,系统分区通常空间有限,而像deepseek-r1这样的8B参数模型动辄需要几十GB存储空间。我就遇到过系统盘爆满…...

Phi-3-mini-128k-instruct效果对比:vs Phi-3-4K在长文本摘要任务中的质量差异

Phi-3-mini-128k-instruct效果对比:vs Phi-3-4K在长文本摘要任务中的质量差异 1. 模型简介与背景 Phi-3-Mini-128K-Instruct是一个38亿参数的轻量级开放模型,属于Phi-3系列的最新成员。该模型使用专门设计的Phi-3数据集进行训练,该数据集包…...

OpenClaw二次开发:千问3.5-9B接入自定义Python模块

OpenClaw二次开发:千问3.5-9B接入自定义Python模块 1. 为什么需要自定义模块扩展 去年我在尝试用OpenClaw自动化处理公司内部的数据报表时,发现现成的技能市场里没有适配我们内部BI系统的模块。官方提供的通用HTTP请求工具虽然能用,但每次都…...

Windows 10/11 保姆级教程:用 ZoeDepth 一键生成图片深度图(附常见错误修复)

Windows 10/11 深度图生成实战:ZoeDepth 从零安装到避坑指南 深度图生成技术正在改变我们处理图像的方式,而ZoeDepth作为一款开源的深度估计模型,以其出色的性能和易用性吸引了大量开发者。但对于Windows平台的新手来说,从零开始…...

如何快速掌握TensorFlow模块化架构:开发者终极指南

如何快速掌握TensorFlow模块化架构:开发者终极指南 【免费下载链接】community Stores documents used by the TensorFlow developer community 项目地址: https://gitcode.com/gh_mirrors/community1/community TensorFlow作为全球最流行的机器学习框架&…...

3大场景全解析:macOS专业录屏工具QuickRecorder实战指南

3大场景全解析:macOS专业录屏工具QuickRecorder实战指南 【免费下载链接】QuickRecorder A lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具 项目地址: https://gitcode.com/GitHub_T…...

Bootbox.js实战指南:10个真实场景中的对话框应用案例

Bootbox.js实战指南:10个真实场景中的对话框应用案例 【免费下载链接】bootbox Wrappers for JavaScript alert(), confirm() and other flexible dialogs using Twitters bootstrap framework 项目地址: https://gitcode.com/gh_mirrors/bo/bootbox Bootbox…...

STM32F103RCT6定时器实战:从基础配置到PWM波形测量

1. STM32F103RCT6定时器基础入门 第一次接触STM32的定时器时,我完全被各种专业术语搞晕了。什么预分频器、自动重装寄存器、时基单元,听起来就像天书一样。但实际用起来才发现,定时器就像厨房里的定时闹钟,只不过更精确、更灵活。…...

3大核心技术破解医学影像分割难题:MedSAM引领3D器官重建新范式

3大核心技术破解医学影像分割难题:MedSAM引领3D器官重建新范式 【免费下载链接】MedSAM Segment Anything in Medical Images 项目地址: https://gitcode.com/gh_mirrors/me/MedSAM 医学影像分割是临床诊断和治疗规划的关键环节,而3D重建技术则为…...

2025届毕业生推荐的六大降重复率助手解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普AIGC检测系统旨在识别学术论文里由人工智能生成的那部分内容,随着AI写作工具…...

Dynamic-Datasource数据源类型注册:SPI配置终极指南

Dynamic-Datasource数据源类型注册:SPI配置终极指南 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-datasource Dynamic…...

3步掌握FanControl:Windows平台最专业的免费风扇控制方案

3步掌握FanControl:Windows平台最专业的免费风扇控制方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…...

终极IE8兼容性解决方案:jQuery-Knob与excanvas深度集成指南

终极IE8兼容性解决方案:jQuery-Knob与excanvas深度集成指南 【免费下载链接】jQuery-Knob Nice, downward compatible, touchable, jQuery dial 项目地址: https://gitcode.com/gh_mirrors/jq/jQuery-Knob 在现代Web开发中,jQuery-Knob作为一款优…...

Goreman RPC接口完全解析:远程控制进程的终极方案

Goreman RPC接口完全解析:远程控制进程的终极方案 【免费下载链接】goreman foreman clone written in go language 项目地址: https://gitcode.com/gh_mirrors/go/goreman Goreman是一款用Go语言编写的进程管理工具,作为Foreman的克隆版本&#…...

react-native-fetch-blob未来展望:路线图分析与社区贡献指南

react-native-fetch-blob未来展望:路线图分析与社区贡献指南 【免费下载链接】react-native-fetch-blob A project committed to making file access and data transfer easier, efficient for React Native developers. 项目地址: https://gitcode.com/gh_mirror…...

OpCore-Simplify:从硬件适配到配置自动化的Hackintosh技术解析

OpCore-Simplify:从硬件适配到配置自动化的Hackintosh技术解析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在非苹果硬件上运行macOS的…...

IOSSecuritySuite 最佳实践:避免常见陷阱的7个关键点

IOSSecuritySuite 最佳实践:避免常见陷阱的7个关键点 【免费下载链接】IOSSecuritySuite iOS platform security & anti-tampering Swift library 项目地址: https://gitcode.com/gh_mirrors/io/IOSSecuritySuite 在iOS应用开发中,安全防护是…...

WRKFLW性能优化:如何加速大型矩阵构建和工作流执行?

WRKFLW性能优化:如何加速大型矩阵构建和工作流执行? 【免费下载链接】wrkflw Validate and Run GitHub Actions locally. 项目地址: https://gitcode.com/gh_mirrors/wr/wrkflw WRKFLW是一个强大的GitHub Actions本地验证和运行工具,能…...

Architect.dev性能优化终极技巧:提升Lambda函数响应速度的10个方法

Architect.dev性能优化终极技巧:提升Lambda函数响应速度的10个方法 【免费下载链接】architect The simplest, most powerful way to build a functional web app (fwa) 项目地址: https://gitcode.com/gh_mirrors/ar/architect Architect.dev是一个强大的无…...

AudioLM-PyTorch代码深度解析:架构设计、模块实现与扩展方法

AudioLM-PyTorch代码深度解析:架构设计、模块实现与扩展方法 【免费下载链接】audiolm-pytorch Implementation of AudioLM, a SOTA Language Modeling Approach to Audio Generation out of Google Research, in Pytorch 项目地址: https://gitcode.com/gh_mirro…...

Harpy与App Store提交:为什么审核员看不到更新提示的终极指南

Harpy与App Store提交:为什么审核员看不到更新提示的终极指南 【免费下载链接】Harpy Notify users when a new version of your app is available and prompt them to upgrade. 项目地址: https://gitcode.com/gh_mirrors/ha/Harpy Harpy是一个强大的iOS应用…...

WWDC技术笔记SEO优化策略:让更多开发者发现这个宝藏资源

WWDC技术笔记SEO优化策略:让更多开发者发现这个宝藏资源 【免费下载链接】WWDC You dont have the time to watch all the WWDC session videos yourself? No problem me and many contributors extracted the gist for you 🥳 项目地址: https://git…...

Polyglot配置完全手册:OpenAI Key与Azure TTS服务设置详解

Polyglot配置完全手册:OpenAI Key与Azure TTS服务设置详解 【免费下载链接】polyglot 🤖️ Cross-platform AI language practice app (跨平台AI语言练习应用) 项目地址: https://gitcode.com/gh_mirrors/po/polyglot Poly…...

Jets与CI/CD集成:自动化部署和持续交付的终极指南 [特殊字符]

Jets与CI/CD集成:自动化部署和持续交付的终极指南 🚀 【免费下载链接】jets Ruby on Jets 项目地址: https://gitcode.com/gh_mirrors/je/jets Jets作为一款强大的Ruby无服务器部署服务,为开发者提供了完整的CI/CD集成方案&#xff0c…...

告别模糊代码:用Source Code Pro字体拯救你的编程视力

告别模糊代码:用Source Code Pro字体拯救你的编程视力 【免费下载链接】source-code-pro Monospaced font family for user interface and coding environments 项目地址: https://gitcode.com/gh_mirrors/so/source-code-pro 你是否曾在深夜盯着屏幕&#x…...

深入理解Snaffler规则引擎:如何自定义分类器提升检测效率

深入理解Snaffler规则引擎:如何自定义分类器提升检测效率 【免费下载链接】Snaffler a tool for pentesters to help find delicious candy, by l0ss and Sh3r4 ( Twitter: /mikeloss and /sh3r4_hax ) 项目地址: https://gitcode.com/gh_mirrors/sn/Snaffler …...

Awesome AI for Science社区指南:如何参与贡献和获取最新研究进展

Awesome AI for Science社区指南:如何参与贡献和获取最新研究进展 【免费下载链接】awesome-ai4s AI for Science 论文解读合集(持续更新ing),论文/数据集/教程下载:hyper.ai 项目地址: https://gitcode.com/gh_mirr…...

香港科技大学破解自动驾驶难题:让AI在虚拟暴风雨中学会驾驶

当你在雨夜开车时,雨滴敲打挡风玻璃,雾气遮挡视线,路面反射着车灯的光芒——这些恶劣天气条件对人类司机来说已经够困难了,对于正在学习驾驶的人工智能来说更是巨大的挑战。这项由香港科技大学、厦门大学和美团联合完成的突破性研…...

UCLA与多所顶尖大学携手破解折纸生成难题

这项由UCLA牵头,联合德克萨斯A&M大学、犹他大学等多所知名学府共同完成的突破性研究,于2025年2月发表在计算机图形学顶级会议论文集中,论文编号为arXiv:2603.29585v1。有兴趣深入了解的读者可以通过该编号查询完整论文。想象一下&#xf…...

世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf盐

1. 智能软件工程的范式转移:从库集成到原生框架演进 在生成式人工智能(Generative AI)从单纯的文本生成向具备自主规划与执行能力的“代理化(Agentic)”系统跨越的过程中,.NET 生态系统正在经历一场自该平台…...