Skip to content

Latest commit

 

History

History
89 lines (71 loc) · 3.98 KB

File metadata and controls

89 lines (71 loc) · 3.98 KB

LM Studio 目录迁移与目录联接工具

English | 中文

使用前请顺手点个 Star 支持本项目,谢谢!🌟

本项目提供一个适用于 Windows 的图形化/命令行工具,用于将 LM Studio 的模型与数据目录从默认位置迁移到其他磁盘路径,并在原位置创建目录联接(Junction)。迁移完成后,LM Studio 仍可通过原路径访问新位置的内容,既节省系统盘空间,又不影响使用体验。

你可以用它做什么

  • %USERPROFILE%\.lmstudio 迁移到其他磁盘(默认建议 D:\LMstudio_AIModels)。
  • 复制完成后自动删除源目录,并在源路径创建目录联接指向目标目录。
  • 目标目录已存在时,可选择删除后覆盖复制,或跳过复制仅创建联接。
  • 提供 GUI 界面与 CLI 命令行两种使用方式。
  • 自动优先使用 robocopy 加速复制;若系统无 robocopy,自动退回到 Python 复制。
  • 迁移前提醒并检测:是否以管理员身份运行、是否已关闭 LM Studio。

系统要求

  • 仅支持 Windows(Windows 10/11)。
  • Python 3.10 及以上(系统通常自带 Tkinter)。

文件结构

  • move_lmstudio.py:主程序(同时支持 GUI 与 CLI)。
  • movefile.bat:原批处理脚本(可不再使用)。

使用前的重要提示

  1. 请以管理员身份运行(创建目录联接需要管理员权限或启用开发者模式)。
  2. 请确保已完全关闭 LM Studio(包括托盘、后台进程)。
  3. 建议先备份重要数据。

快速开始(GUI 推荐)

  1. 以管理员身份打开 PowerShell 或 CMD。
  2. 切换到项目目录。
  3. 运行:
python move_lmstudio.py --gui
  1. 在界面中:
    • 设置【源目录】(默认:%USERPROFILE%\.lmstudio)。
    • 设置【目标目录】(默认:D:\LMstudio_AIModels)。
    • 可选勾选:
      • “若目标已存在则删除并覆盖复制”。
      • “跳过复制,仅在源位置创建指向目标的目录联接”。
    • 点击“查看目录信息”确认体量与状态。
    • 点击“开始执行”,按提示确认即可。

命令行模式(CLI)

  1. 以管理员身份打开 PowerShell 或 CMD。
  2. 运行:
python move_lmstudio.py --cli
  1. 按交互提示依次:
    • 输入或确认源目录与目标目录。
    • 若目标已存在,选择继续方式(重新输入、删除覆盖复制、仅创建联接、退出)。
    • 确认已以管理员身份运行并关闭 LM Studio 后开始执行。

默认路径

  • 源目录默认:%USERPROFILE%\.lmstudio
  • 目标目录默认:D:\LMstudio_AIModels (均可在 GUI 或 CLI 中自定义)

操作说明

  • 复制:将源目录完整复制到目标目录(优先 robocopy,失败则使用 Python 复制)。
  • 删除源目录:复制成功后删除源目录(可显著释放系统盘空间)。
  • 创建目录联接:在原源目录位置创建到目标目录的 Junction,使 LM Studio 继续使用原路径访问新位置。

常见问题与排查

  • 无法创建联接/报权限错误:
    • 请以管理员身份运行终端,或开启“开发者模式”。
    • 确保目标路径可访问,且源路径在删除后可用于创建联接。
  • 目标目录已存在:
    • 请选择“删除并覆盖复制”,或在 GUI 勾选对应选项。
    • 或选择“跳过复制,仅联接到现有目标”。
  • 复制很慢:
    • 确保系统可用 robocopy(Windows 自带)。
    • 若退回到 Python 复制,速度会慢一些,属正常现象。
  • LM Studio 仍占用文件:
    • 请完全关闭 LM Studio,包括托盘与后台进程后再执行。

安全与提示

  • 本工具在执行“删除并覆盖复制”时会删除指定的目标目录,请谨慎确认路径。
  • 建议在迁移前备份关键数据。

还原/撤销

  • 若需要撤销迁移,可删除源路径的联接目录(Junction),并将数据复制回原路径;或在工具中将目标改回原路径并再次执行。