-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Could not stat C:/Users/user/OneDrive due to the folder being a reparsepoint #832
Comments
Hello, If you are getting 'Could not stat', it means FT_REPARSE is not getting set.
And st_rdev is set in src/win32/compat/compat.cpp:
etc... So, why would these directories not trigger this code? |
To be honest, I'm really bad at reading C. From what I've read, those new file types were introduced in Win8 and are identified by a new flag, eg IO_REPARSE_TAG_FILE_PLACEHOLDER. Since that flag is unknown to Mingw's winnt.h, it's definition is:
So I think the code should look like this in src/win32/compat/compat.cpp (sorry, bad C probably):
Hope that's it :) |
Cool, I can try something like that. |
Sure :) |
Here: |
Having fun with librsync here: librsync/librsync#154 As for the burp installer you gave me, the "cannot stat" error is random for me (depends if the user updated files I guess), so I need to setup a VM in order to make a quick test. |
I've tried to reproduce the error with a machine I experienced the error previously. |
Sounds good so far. |
Well f***.
Is there any (easy) C code I can compile to dump the *pdwFileAttributes of the directory ? |
Well, got some easier way to get the attributes of that directory using fsutil:
"Valeur de la balise d'analyse" translates to "Reparse Tag Value", so I guessed that's the attribute for that reparse point. There are listed all types of reparse point, mine being identified as "cloud 7", whatever this means.
My best guess would be that all the above are reparse points that should be excluded from backups. |
OK, thanks for the testing, I will have another go at doing this shortly. :) |
I have made a change in master, for the next release, to try to make this better. Maybe you can test the release, when it is out? |
Sure ! Having read your code, I don't understand at all what it does, although the reparse_or_mount_song_and_dance function is niecely named ;) |
My changes for this have been released for a month, and nobody has complained. I will assume that all is OK and close, please re-open if you find a problem. |
Sorry, being late for the party, partly because of holidays. Version 2.3.18 still has the same problem for OneDrive:
Can I provide anything, like executing a small c code to get attributes of that folder somehow ? |
From what I read, FILE_ATTRIBUTE_REPARSE_POINT is 0x400, so none of the list I suggested above has that bit set and applies to be a reparse point. Could you by any chance include that list / use a newer winnt.h and check files / directories against it ? |
Hello,
Maybe this could produce something useful? https://burp.grke.org/downloads/test/burp-win64-installer-2.3.23.exe |
No probs ;) |
No, I literally only added a printf. |
Hello, I've just found this issue and I think it is related to what I'm experiencing.
Same happens if the user has also a Google Drive, in that case I get the following message:
Such errors prevent a complete backup. |
Hello, I don't know much about OneDrive and Google Drive, but I think they are cloud storage services so that your files are backed up "to the cloud". Do you want to back them up to burp, or do you want burp to skip them? If you want burp to skip them, you can just add an exclude line for them. The "Problem with VSS" error is because burp thinks it is just another local drive that it can do a VSS snapshot on. For the OneDrive reparse point issue, burp ought to detect it and backup that filesystem entry as a reparse point (or whatever it is supposed to be), so that the backup includes that one filesystem entry. I will see if I can borrow somebody's Windows laptop to debug this myself. |
Same here, I don't know much about these cloud drives, but it seems that some people uses Google Drive as a main storage for small group of people that want to share documents easily. That's why I'd like to include the contents of Google Drive in the backup. Do you think this is possible? In the case of OneDrive I saw that it comes by default in fresh installs of Windows 10 and Windows 11, and some people might store something there inadvertently. So I'd also want to include it in the backup.
Hmm, I don't know how exactly
Anyway, for me the must important issue is OneDrive as it comes by default in all new Windows.
If you cannot get a Windows of someone, try downloading a Windows 10/11 ISO and install a 30days demo on a VM (set it up with "only" 3GB of memory and 20GB of disk). This should suffice for your testings. Looking forward to your results. 😃 |
Hello, As far as I understand, OneDrive and Google Drive allow Windows users to store In general, backup software (like burp), operates on local drives, because For example, what happens when the remote service is inaccessible? So this implies that you ought to split the backup into two, so that you backup If you don't have access to the actual host, because it is some proprietory Each cloud service will have it's own different set of apis too. In conclusion: In the case of Google Drive, which appears as a separate drive letter, as far
I think it is a list of drive letters, for example: "CDE"
The point is to make it possible to attempt to backup a drive for which it
It means that it won't try to make VSS snapshots of any drives before it tries |
I've included the option
Then, I've included the option
So, there seems no way to backup the Google Drive ( |
OK, so as I explained above, trying to backup files hosted remotely isn't going to work well. |
Yes, I could use the option Anyway, thanks for your assistance. |
This leads me to the question: it is possible to add an option on the fly when the client connects to the server without having to modify the I mean, I'd like to define on the server side which clients will execute a script before the backup, but I don't want to have to configure manually the client because I not always have a remote access to it (because it's behind firewall, is a road warrior, etc.). |
I'm not sure what configuration you want to change on the fly. |
As I said in my previous posts, executing the Following this reasoning, I'd want to be able to include the option
If I configure the same |
OK, but if you don't have access to the client, how are you going to add a new script to the client? |
This is not really the case as all clients eventually will include the same script, but will be from the server side when I'd like to decide which client will run the script. That's why I asked you if it's possible to inject a new option in the |
Hello,
Reporting a problem that affects like almost all backup programs that use Windows VSS.
Newer OneDrive clients allow to show online files in local filesystem without actually downloading them.
When using that functionnality, it breaks backups because the actual onedrive folder becomes a reparsepoint instead of a standard folder, leading to "Could not stat" error message.
There are at least 3 folders that are known to maybe becomre reparsepoints:
The easy solution is to exclude [A-Z]:/Users/[^/]/OneDrive* from backup, but then there's the 3rd folder that isn't predictable.
Since this FS behavior may be more widespread than Microsoft OneDrive, Is there maybe a way to detect reparsepoints in burp in order to automatically exclude them (with a logging message) ?
Under windows, one can identify a reparsepoint with:
Best regards.
Link to MS forum with that problem
https://social.technet.microsoft.com/Forums/en-US/d612c19a-0f18-431a-9d75-9fb5dfd11aca/windows-10-1803-client-backups-failing-media-write-protected-errors
The text was updated successfully, but these errors were encountered: