【思源新人指南】莫名其妙遇到锁定空间,提示「避免潜在的数据损坏」该怎么办

本贴最后更新于 372 天前,其中的信息可能已经渤澥桑田

思源在若干个版本之前更新后,禁止了第三方同步盘的时候,目的是防止多个进程同时读写同样的文件目录,造成数据损坏。

开发者根据接受到用户反馈出现的四个阶段:

  1. 发现同步盘问题,尝试使用文件锁解决:“先说结论:第三方同步盘可能造成数据损坏,目前因为使用同步盘带来的数据损坏问题是无法彻底解决的” https://ld246.com/article/1626537583158

  2. 发现文件锁解决不了问题:“这个不是通过代码能解决的,而是操作系统本身就不支持两个不同的进程同时安全读写同一个文件。” 于是发公告不支持第三方网盘同步: https://ld246.com/article/1664442401353

  3. 开源云端服务同步,暂时免费开放端对端加密同步,数据同步支持第三方 S3 储存 https://github.com/siyuan-note/siyuan/issues/6445

  4. 发现发了公告还是有用户使用同步盘丢数据,没办法就去做了限制 https://github.com/siyuan-note/siyuan/issues/7683

热知识 1:notion flowus 这类软件不会出现这种问题是因为他们是云笔记,根本不存在读写文件的问题。

热知识 2: obsidian logseq 这类软件同样有这个问题,但是他们不说

image.png

image.png

但是读写文件往往不光光是同步盘的问题,有时候我们就算没有开启同步盘也可能出现这种让人心肺停止的问题:

image.pngc80f0c11b57cbc4ca77d222ba3b01dcb.jpeg

不要怕!这种情况下往往是有未知的进程在读写我们的思源数据。解决方法很简单:找到这个进程,把它关掉。

热知识 2:其实不管是同步盘还是别的进程,他们造成思源文件系统读写错误的原因本质是一样的,都是这些的进程(程序)同时在和思源争抢数据文件的读写权限,造成了冲突。

同步盘会时时刻刻去监听麾下的文件系统,所以往往是导致思源文件系统冲突的罪魁祸首——但这并不代表着其他软件不会造成这种问题。只不过大部分软件不会闲着没事跑到你的数据目录下读写,既然他们都不会来淌这篇雷池,自然不会炸雷。

但是倘若就是有那么个别的进程闯了进来,嘿——那也确实有可能触发冲突的问题。

热知识 3:你可能会有些抱怨这种莫名其妙的设定。但是以前确实发生过别的同步盘进程和思源抢夺读写数据——最后导致用户数据损害的案例。这是 windows 设计的锅,没法避免。所以开发者只能采用这种比较保守的做法,一旦检测到有别的进程正在占用,就直接锁定发出警告,从而避免文件损害的可能。

方法 1:powertoy

  1. 安装 powertoy 软件,这是微软官方提供的一个 windows 工具软件

  2. 打开 powertoy,启用 File Locksmith

    image.png

  3. 找到你工作目录的文件夹,右键点击「使用此文件的进程」

    image.png

  4. 原来是 utools 在使用我们的文件

    image.png

  5. 不建议直接点击「结束进程」,可能会存在意外的问题,最好是通过正常的方法关闭软件。

    我正常关闭了 Utools 之后,现在只有一个文件管理器了,这回就没事了

    image.png

方法 2:windows 资源管理器

如果你不想要下载一个额外的软件,还有一个更加原生的方案。

首先打开 windows 的资源管理器,然后打开「资源监视器」

image.png

点开之后,在 CPU 一页的下方,选择「搜索句柄」,并把疑似被工作空间的目录的路径填进去

image.png

稍等片刻之后,就可以看到所有占用了这个目录的进程,找到那些不属于思源的进程,然后把对应的程序关掉。

image.png

同样,非常不推荐直接在资源管理器里结束进程,更好的做法是

  1. 记下进程对应的 PID
  2. 在资源管理器当中找到对应 PID 的程序,然后通过正常方式关掉

image.png

注意,实测发现资源管理器有时候反而还不如 Powertoy 准确,如果你用方法 2 始终发现不了占用,但是思源一直提醒有文件读写 xowu,不妨使用方法 1 试一下。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22227 引用 • 88814 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 91editor 1 评论

    妈耶,MAC 哭瞎在厕所,咋整噢

    lsof 命令? 这个 linux 可以用,mac 是 unix 我不知道能不能用。
    Frostime
  • 其他回帖
  • 对,2 是更严谨的说法,3 确实有道理,我也觉得直接退出有点激进了。

    至于 ob 那个属于我知识盲区了,可能是数据结构和同步原理不一样?这个就属于比较深入的技术细节了。

    思源的做同步面临的问题比 Ob 要复杂,一个是底层的数据结构完全不同,另一个是思源相比单纯的同步还多了一大堆数据快照端到端加密之类的东西,文件 IO 需求可能会更密集一些。

    1 操作
    Frostime 在 2023-06-28 23:17:04 更新了该回帖
  • 这是放在 onedrive 里的 xlsx 文件,修改后保存同步,然后 WPS 在同步时打开显示的锁定。并不是不存在,只是你没遇到罢了。

    9c1c705c16948991a653e6e6604050a2.png

    aabccd411e09c13ef75c75833769af3d.png

  • bluove

    你说得对。任何同步盘、云盘、onedrive 等等下面的文件,都不能用。你宣布:同步盘云盘是反人类设计,同步盘云盘下的文件大多数时候都不能被打开、创建、修改、编辑。

  • 查看全部回帖

推荐标签 标签

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22227 引用 • 88814 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    266 引用 • 665 回帖 • 1 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    169 引用 • 506 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 360 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 3 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    941 引用 • 943 回帖 • 1 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 2 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 65 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 18 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 70 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 586 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 6 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    683 引用 • 535 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 264 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 133 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 32 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    408 引用 • 3574 回帖 • 1 关注