访问 Windows 分区上的 OneDrive 文件夹

访问 Windows 分区上的 OneDrive 文件夹

我正在双启动 Linux Mint 18.2 和 Windows 10。我已从 Windows 同步 OneDrive,但我似乎无法从 Linux 访问 OneDrive 文件夹。

终端显示我有一个 OneDrive 文件夹,但ls -all在 OneDrive 文件夹上出现以下错误: unsupported reparse point

我做了一些谷歌搜索,问题可能与它位于 NTFS 分区上以及 Microsoft 可能压缩 OneDrive 内容有关,但我无法最终验证。

还有其他人有这个问题吗?对于上下文,我不需要从 Linux 同步 OneDrive - 我只是尝试从 Linux 访问保存在 Windows 分区上的 OneDrive 内容。

答案1

我找到了! 迈克尔的 WSL链接提供了答案。

我只需要在关闭 Windows 之前删除 OneDrive 的重新分析点。这是我的代码: fsutil reparsepoint delete "C:\Path\To\OneDrive\Folder"

答案2

我按照上面的步骤操作,但它只适用于根目录,而且每次关机时都必须运行它,这很烦人。

我找到了一个不同的解决方案。

  1. 在 Windows 中,转到 OneDrive 设置,然后取消选中该选项节省空间并在使用时下载文件设置标签。
  2. 注销您的 OneDrive 帐户(这应该会保存您的设置)
  3. 转到 OneDrive 文件夹 (C:\Users\\OneDrive),然后删除该文件夹或将其移动到其他位置。
  4. 重新启动您的电脑。
  5. 重新登录 OneDrive,然后完成同步。
  6. 启动进入 Linux,文件夹和文件应该可以访问。

答案3

建立在目前接受的答案为了删除 OneDrive 重新分析点,我发现 OneDrive 会在稍后登录时自动创建更多重新分析点,位于目录树的更下方。所以我必须定期递归删除目录中的所有重分析点。我制作了一个 .bat 文件来为我执行此操作,并使用 Windows 的任务计划程序安排了一个任务,该任务将在我登录时每小时运行一次(因为没有“注销”触发器)。这是 .bat 脚本:

@echo off
setlocal

:: Recursively deletes ReparsePoints from the current direcotry, so that Linux
:: can read the on-disk data.
::
:: Usage: call fix_onedrive_for_linux.bat from the OneDrive folder.
::

for /F "delims=" %%d in ('dir /S /AL /B') do fsutil reparsepoint delete "%%d"

:END
endlocal
echo on

相关内容