I'm dual-booting Linux Mint 18.2 and Windows 10. I've synchronized OneDrive from Windows, but I can't seem to access the OneDrive folder from Linux.

Terminal shows that I have a OneDrive folder, but ls -all gives me the following error on the OneDrive folder: unsupported reparse point

I've done a bit of Googling and the problem might have something to do with the fact that it's on an NTFS partition and Microsoft possibly compressing the OneDrive contents, but I haven't been able to verify conclusively.

Anyone else have this problem? For context, I'm not needing to sync OneDrive from Linux- I'm just trying to access the OneDrive contents saved on my Windows partition from Linux.

  • I believe the OneDrive reparse point is sort of a fake. If you remove the reparse point from Windows (with fsutil) you might be able to get in, though exactly what's really stored in there may not match what you expect. Nov 13 '17 at 4:33
  • 1
    See e.g. this comment on a WSL issue; there's also a suggestion that it affects ntfs-3g only (because kernel NTFS doesn't try to support reparse points?) so that might be a way around. It might be easier just to copy the files out somewhere else, though. If any of those work out you can post an answer yourself explaining what you found. Nov 13 '17 at 4:35

I found it! Michael's WSL link provided the answer.

I just need to delete the reparsepoint for OneDrive before I shutdown Windows. Here's my code: fsutil reparsepoint delete "C:\Path\To\OneDrive\Folder"

  • How can I get this code to run on every windows shutdown/restart like they mention in your link?
    – Kajsa
    Apr 4 '18 at 15:16
  • 2
    And is there a way to do it for all sub-folders automatically, because this just shifted the problem down one level for me.
    – Kajsa
    Apr 4 '18 at 15:25
  • 1
    @Kajsa What I did was saved the code as a batch file and then used the Windows Task Scheduler utility to run that batch file each time I login.
    – puterguy01
    Apr 4 '18 at 15:26
  • @Kajsa I'm not sure if there's a way to do it for all sub-folders, no. In my experience, once I delete the one reparsepoint, my entire OneDrive folder and subfolders have been accessible from Linux. I'm not sure why it's only working for only root of your OneDrive folder.
    – puterguy01
    Apr 4 '18 at 15:29
  • 1
    This only made the root folder accessible May 10 '18 at 5:56

I followed the steps above, but it only worked for the root directory, and it's annoying to have to run this at every shutdown.

I found a different solution.

  1. In Windows, go to the settings for OneDrive, and untick the option to Save space and download files as you use them on the Settings tab.
  2. Sign out of your OneDrive account (this should save your settings)
  3. Go to your OneDrive folder (C:\Users\\OneDrive), and delete or move the folder to a different location.
  4. Reboot your PC.
  5. Sign back into OneDrive, and let the sync complete.
  6. Boot into Linux, and the folders and files should be accessible.
  • Followed these steps exactly. Did not work at all; MS must have changed how it works in the last couple years. All my info is there on my disk - I had to wait for over 3GB to download before rebooting into Linux at the end - but if I go into OneDrive folder in Linux I can see subdirectory names (Documents, Pictures, etc.) but go no further.
    – Ben
    Jun 25 '20 at 14:17

Building on the currently accepted answer for deleting the OneDrive reparsepoint, I found that OneDrive was automatically creating more reparsepoints at a later login, further down the directory tree. So I had to recursively delete all reparsepoints in the directory periodically. I made a .bat file to do this for me, and scheduled a task using Windows' Task Scheduler that will run it every hour while I am logged in (since there is no "logout" trigger). Here is the .bat script:

@echo off

:: 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"

echo on

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.