在你的Linux发行版系统中访问Windows下的Onedrive目录
问题及原因
在Linux下,如果你尝试通过ntfs-3g
访问NTFS分区下的Onedrive目录,会出现错误无法访问。
使用ll
检查目录,会显示一个错误:unsupported reparse tag 0x9000701a
这是由于Onedrive for Windows使用了一个NTFS下的Reparse Points
来实现文件按需下载,可以访问wiki页面了解更多。
本文章不讨论如何在Linux中实现同步Onedrive的相关内容,只考虑如何在Linux下打开Windows中创建的Onedrive目录,主要适用于双系统用户 如果你希望在Linux中创建Onedrive目录并同步Onedrive数据,建议使用abraunegg/onedrive.
准备条件
- Onedrive目录在一个本地NTFS分区下(未测试分区经过bitlocker加密的情况)
- 已安装ntfs-3g,且版本号在
2017.3.23AR.4
以上. (使用ntfs-3g --version
查看版本号)
已知问题
- Onedrive文件必须在本地可用,才可在Linux中访问
(废话,Onedrive for windows又不能跑在Linux下()) - 不可以在Onedrive目录中创建任何文件
- 此插件不受ntfs-3g支持且目前(似乎?)已停止维护
解决方法
构建ntfs3g-onedrive-plugin
首先克隆ntfs3g-onedrive-plugin仓库到本地目录:
1 | git clone https://github.com/deerf0x/ntfs3g-onedrive-plugin.git |
如果上面的仓库不再有效,可使用https://git.aiursoft.cn/EdgeNeko/ntfs3g-onedrive-plugin.git
.
依次运行下面的命令来配置并构建插件:
1 | libtoolize --force |
安装ntfs3g-onedrive-plugin
在终端中运行ntfs-3g获取ntfs-3g的插件目录:
1 | ntfs-3g |
复制上面Plugin path
中对应的目录, 然后打开Makefile
并编辑:
1 | # Use your own editor instead of Kate if necessary |
搜索plugindir
常量定义,如下图(截至本文发布时,位于L369):
将其修改为上面获取的目录:
完成后保存Makefile
并退出.
最后,运行下面命令完成安装:
1 | sudo make install |
如果一切正常,重新挂载包含Onedrive目录的分区,接下来你应该可以正常访问Onedrive目录下的文件了:
Reference
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 EdgeNeko's blog!
评论