Skip to content
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

Does restic back up alternate data streams attached to NTFS files? #1401

Open
bherila opened this issue Oct 31, 2017 · 3 comments · May be fixed by #4614
Open

Does restic back up alternate data streams attached to NTFS files? #1401

bherila opened this issue Oct 31, 2017 · 3 comments · May be fixed by #4614

Comments

@bherila
Copy link

bherila commented Oct 31, 2017

See: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

I have been using restic to back up my Windows PC, and wondering if it will successfully back up my Windows Subsystem for Linux folder from the Windows environment. If the answer is "yes," then I guess nothing needed here :)

But, if the answer is "no" I would want to see if the recommendation is

  • I can try to put together a PR to read/back up this data to the restic repo (some guidance may be helpful/needed)
  • Run restic from inside the Windows Subsystem for Linux (would it need to be rebuilt to run in this environment or maybe I can just use the Linux binaries)

Thanks

@fd0
Copy link
Member

fd0 commented Oct 31, 2017

While I don't have any experience with WSL, so I don't know that. What I do know is that restic, at least for now, does not backup or restore NTFS extended attributes and NTFS alternate data streams. On Windows, when run as a native Windows binary, it'll save folders and files (with the "content" of the files).

Adding alternate data streams would require modifying the repository format. And to be honest, I'm not convinced that it's worth the effort.

@lloeki
Copy link
Contributor

lloeki commented Nov 16, 2017

There is a similar feature to alternate data streams on macOS, called resource forks, which may include e.g compressed data if using HFS Plus Compressed, alternative icons for files...

A similar question can be raised about filesystem extended attributes, which on macOS may include hiding files via chflags(1) as well as hiding extensions via SetFile(1). Those are visible using ls -le@ (-e for ACLs, -@ for xattrs).

@timri
Copy link

timri commented May 29, 2018

A possible extension to support alternate data streams, as well as other data (acl, permissions, attributes etc.) would be to use the windows backup api (see https://github.com/Microsoft/go-winio/blob/master/backup.go )
This would also enable backing up files without having permission to access them (from an elevated command, so it would be even possible to backup files that even the Administrator can not access, f.e. files only accessible to "LOCAL_SYSTEM")
However, this would need an extension to the repository format...
(I have no programming experience in go, otherwise I would probably hack together a POC. But maybe I try that as a project to learn go ;-) )
Further documentation of the API:
https://msdn.microsoft.com/en-gb/library/windows/desktop/aa362520(v=vs.85).aspx
https://msdn.microsoft.com/en-gb/library/windows/desktop/aa362509(v=vs.85).aspx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants