# 笔记库放在哪里

哪些存储位置不兼容 FLO.W Core，笔记库可以放在哪里，以及推荐的同步方式。

Canonical: https://21obsidian.com/docs/vault-location
Markdown: https://21obsidian.com/docs/vault-location.mdx
Site index for AI: https://21obsidian.com/llms.txt

FLO.W Core 新建或移动笔记时，目标位置已经有同名文件就会停下，不会盖掉它。这一步要靠存储支持硬链接，原理和自测方法见文末的 [工作原理](#how-it-works)。

## 会失败的操作 {#affected}

笔记库放在不支持硬链接的位置时，下面几项操作会失败。

* 新建日笔记、周笔记和模板
* 速记写入日笔记
* 自动路由把笔记移到对应文件夹

## 不兼容的位置 {#unsupported}

* 格式为 exFAT 或 FAT32 的 U 盘和移动硬盘，大多数 U 盘出厂就是这两种格式
* 在 Mac 访达里用「连接服务器」打开的 NAS 文件夹
* Google Drive 电脑版的虚拟磁盘，在 Windows 上通常是 G 盘

## 还没验证的位置 {#untested}

下面这些位置还没有完整测试，暂时不建议放笔记库。

* Windows 上打开的 NAS 共享文件夹
* 设成「按需下载」的 OneDrive 文件夹
* Dropbox 文件夹
* 用 WebDAV 挂载成磁盘的网盘

## 放在本机硬盘 {#recommended}

笔记库放在电脑本机的硬盘里。

只在 Mac、iPhone 和 iPad 之间同步时，笔记库也可以放在 iCloud 云盘里，做法见 [iCloud 设置](/docs/sync-settings#settings-icloud)。

## 挪到本机硬盘 {#move}

笔记库已经放在不兼容的位置时，按下面的步骤挪到本机硬盘。

1. 退出 Obsidian
2. 把整个笔记库文件夹复制到本机硬盘。要复制的是打开后能直接看到「笔记」「项目」「任务」的那一层文件夹
3. 打开 Obsidian，点击左下角的笔记库名字，选择「管理仓库…」，再点「打开本地仓库」，选中刚复制过来的文件夹
4. 确认笔记、模板和日笔记都在，原来的文件夹可以留作备份

## 推荐的同步方式 {#sync}

优先用 Obsidian 官方同步。每台设备的笔记库都放在本机硬盘，由官方同步在设备之间传，设置方法见 [官方同步](/docs/sync-settings#settings-obsidian-sync)。

不用官方同步时，可以在 [选择同步方案](/docs/sync-choose) 里按设备和预算选一种。

同一个笔记库只开一种同步。两种同时开着，新建和移动笔记可能偶尔失败，见 [只用一种同步方式](/docs/sync-settings#settings-one-tool)。

## 工作原理 {#how-it-works}

这一节写给有技术背景的读者，也可以把整节复制给 AI，让它帮你判断自己的存储能不能用。

FLO.W Core 写入笔记时守着一条底线，目标位置已经有同名文件，就停下并保留原来的文件。同步软件晚到的同名笔记，也按这条处理。

新建日笔记、周笔记和模板时，Core 先在同一个文件夹里用独占方式建一个临时文件，写完内容并落盘，再用 `link` 给它建一个硬链接作为正式文件，最后删掉临时文件。目标已经存在时 `link` 一定失败，所以已有文件不会被盖掉，正式文件出现时内容也已经完整。

自动路由移动笔记、新建笔记按模板改名时，Core 仍然通过 Obsidian 的文件管理来改名，双链照常更新，只替换其中真正搬文件的那一步。Core 先在插件目录的暂存文件夹里试建一个硬链接，确认存储支持，再把原文件移进暂存文件夹并留下恢复记录，然后用 `link` 把它链接到目标位置。目标已有同名文件时，原文件放回原处。中途退出时，下次启动按恢复记录检查，没搬完的笔记放回原处。

Core 不用普通的 `rename`。`rename` 遇到同名目标会直接覆盖，先检查再改名又留着时间差，同步软件正好在这个间隙写入同名文件，内容就会被盖掉。

存储不支持硬链接时，`link` 会报错，Core 就停下这次操作，不改用会覆盖的写法。常见的报错有两种。

* Windows 上的 exFAT 磁盘和 Google Drive 电脑版虚拟盘报 `EISDIR`。这个代码来自 Node 对系统错误 `ERROR_INVALID_FUNCTION` 的归类，和文件夹无关
* Mac 上的 exFAT、FAT32 磁盘和用 SMB 打开的 NAS 报 `ENOTSUP`

想确认自己的存储支不支持硬链接，可以在笔记库文件夹里试建一个。第三行没有报错就说明支持，第四行会删掉测试文件。

Mac 打开「终端」，依次运行下面几行。第三行报 `Operation not supported` 说明不支持。

```bash
cd "笔记库文件夹的路径"
touch flow-link-test
ln flow-link-test flow-link-test-2
rm -f flow-link-test flow-link-test-2
```

Windows 打开「命令提示符」，依次运行下面几行。第三行显示「创建了硬链接」说明支持，显示「函数不正确。」说明不支持。

```bat
cd /d "笔记库文件夹的路径"
type nul > flow-link-test
mklink /H flow-link-test-2 flow-link-test
del /q flow-link-test flow-link-test-2 2>nul
```
