tuxera / ntfs-3g

NTFS-3G Safe Read/Write NTFS Driver
https://www.tuxera.com/company/open-source
GNU General Public License v2.0
1k stars 149 forks source link

OneDrive: unsupported reparse tag 0x9000701a #44

Closed Merlin04 closed 2 years ago

Merlin04 commented 2 years ago

I have a drive with an NTFS partition that OneDrive on Windows 10 is configured to sync to (I've tagged the whole onedrive folder with "keep offline" so everything is downloaded locally). However, when I use the latest version of ntfs-3g (2022.5.17) the folder shows up as a broken symlink, with the target listed as

unsupported reparse tag 0x9000701a

I also tried mounting the drive with the old version of ntfs-3g included with the distro (2017.3.23AR.3-3ubuntu1.2) and while that allowed me to see the contents of the folder, all files were broken links with

unsupported reparse point

I tried running ntfsinfo and got this debug information:

> sudo ntfsprogs/ntfsinfo --file "folder/OneDrive (synced)/OneDrive - [my organization]" /dev/sdb1
Dumping Inode 242195 (0x3b213)
Upd. Seq. Array Off.:    48 (0x30)
Upd. Seq. Array Count:   3 (0x3)
Upd. Seq. Number:    43 (0x2b)
LogFile Seq. Number:     0x4117129b
MFT Record Seq. Numb.:   5 (0x5)
Number of Hard Links:    2 (0x2)
Attribute Offset:    56 (0x38)
MFT Record Flags:    IN_USE DIRECTORY 
Bytes Used:      712 (0x2c8) bytes
Bytes Allocated:     1024 (0x400) bytes
Next Attribute Instance: 28 (0x1c)
MFT Padding:    00 00 
Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 242195 (0x3b213)
    Resident:        Yes
    Attribute flags:     0x0000
    Attribute instance:  0 (0x0)
    Data size:       72 (0x48)
    Resident flags:      0x00
    File Creation Time:  Tue Jun 28 00:19:56 2022 UTC
    File Altered Time:   Wed Jun 29 04:17:41 2022 UTC
    MFT Changed Time:    Wed Jun 29 04:17:41 2022 UTC
    Last Accessed Time:  Wed Jun 29 07:01:07 2022 UTC
    File attributes:     READONLY ARCHIVE REPARSE_POINT UNKNOWN: 0x00080000 (0x00080421)
    Maximum versions:    0 
    Version number:      0 
    Class ID:        0 
    User ID:         0 (0x0)
    Security ID:         282 (0x11a)
    Quota charged:       0 (0x0)
    Update Sequence Number:  394371712 (0x1781a280)
Dumping attribute $ATTRIBUTE_LIST (0x20) from mft record 242195 (0x3b213)
    Resident:        No
    Attribute flags:     0x0000
    Attribute instance:  11 (0xb)
    Compression unit:    0 (0x0)
    Data size:       392 (0x188)
    Allocated size:      4096 (0x1000)
    Initialized size:    392 (0x188)
Dumping attribute $FILE_NAME (0x30) from mft record 242195 (0x3b213)
    Resident:        Yes
    Attribute flags:     0x0000
    Attribute instance:  3 (0x3)
    Data size:       82 (0x52)
    Resident flags:      0x01
    Parent directory:    239101 (0x3a5fd)
    File Creation Time:  Tue Jun 28 00:19:56 2022 UTC
    File Altered Time:   Tue Jun 28 00:19:56 2022 UTC
    MFT Changed Time:    Tue Jun 28 00:19:56 2022 UTC
    Last Accessed Time:  Tue Jun 28 00:19:56 2022 UTC
    Allocated Size:      0 (0x0)
    Data Size:       0 (0x0)
    Filename Length:     8 (0x8)
    File attributes:     I30_INDEX (0x10000000)
    Namespace:       DOS
    Filename:        'ONEDRI~1'
Dumping attribute $FILE_NAME (0x30) from mft record 242204 (0x3b21c)
    Resident:        Yes
    Attribute flags:     0x0000
    Attribute instance:  0 (0x0)
    Data size:       136 (0x88)
    Resident flags:      0x01
    Parent directory:    239101 (0x3a5fd)
    File Creation Time:  Tue Jun 28 00:19:56 2022 UTC
    File Altered Time:   Tue Jun 28 00:19:56 2022 UTC
    MFT Changed Time:    Tue Jun 28 00:19:56 2022 UTC
    Last Accessed Time:  Tue Jun 28 00:19:56 2022 UTC
    Allocated Size:      0 (0x0)
    Data Size:       0 (0x0)
    Filename Length:     35 (0x23)
    File attributes:     I30_INDEX (0x10000000)
    Namespace:       Win32
    Filename:        'OneDrive - [my organization]'
Dumping attribute $DATA (0x80) from mft record 242204 (0x3b21c)
    Resident:        No
    Attribute name:      '${3D0CE612-FDEE-43f7-8ACA-957BEC0CCBA0}.SyncRootIdentity'
    Attribute flags:     0x0000
    Attribute instance:  1 (0x1)
    Compression unit:    0 (0x0)
    Data size:       272 (0x110)
    Allocated size:      4096 (0x1000)
    Initialized size:    272 (0x110)
Dumping attribute $INDEX_ROOT (0x90) from mft record 242195 (0x3b213)
    Resident:        Yes
    Attribute name:      '$I30'
    Attribute flags:     0x0000
    Attribute instance:  13 (0xd)
    Data size:       56 (0x38)
    Resident flags:      0x00
    Indexed Attr Type:   DIRECTORY_I30
    Collation Rule:      1 (0x1)
    Index Block Size:    4096 (0x1000)
    Clusters Per Block:  1 (0x1)
    Entries Offset:      16 (0x10)
    Index Size:      40 (0x28)
    Allocated Size:      40 (0x28)
    Index header flags:  0x01
    Index entries total:     1
Dumping attribute $INDEX_ALLOCATION (0xa0) from mft record 242195 (0x3b213)
    Resident:        No
    Attribute name:      '$I30'
    Attribute flags:     0x0000
    Attribute instance:  9 (0x9)
    Compression unit:    0 (0x0)
    Data size:       32768 (0x8000)
    Allocated size:      32768 (0x8000)
    Initialized size:    32768 (0x8000)
    Index entries total:     171
    INDX blocks total:   8
Dumping attribute $BITMAP (0xb0) from mft record 242195 (0x3b213)
    Resident:        Yes
    Attribute name:      '$I30'
    Attribute flags:     0x0000
    Attribute instance:  10 (0xa)
    Data size:       8 (0x8)
    Resident flags:      0x00
Dumping attribute $REPARSE_POINT (0xc0) from mft record 242195 (0x3b213)
    Resident:        Yes
    Attribute flags:     0x0000
    Attribute instance:  27 (0x1b)
    Data size:       116 (0x74)
    Resident flags:      0x00
    Reparse tag:         0x9000701a (Cloud)
    Data length:         108 (0x6c)
    Data:            0x01006c0046655270ed47d01a6800000002000a0007000100600000000a000400...
End of inode reached
jpandre commented 2 years ago

For accessing local OneDrive files, you need a specific plugin and an ntfs-3g version at least 2017.3.23AR.4. See : https://github.com/tuxera/ntfs-3g/wiki/Junctions-Points,-Symbolic-Links-and-Reparse-Points#user-content-other-types-of-reparse-points

There is an experimental plugin at : [ edit : obsolete link removed ]

from which the file ntfs-plugin-9000001a.so matching your configuration is to be copied into the directory shown by ntfs-3g -help Note however that I have not been able to reinstall OneDrive on my Windows 10 computers, and there may have been changes. Please report about your findings.

sfrmattos commented 2 years ago

@jpandre the link for the plugin is "broken". was it upload somewhere else?

vanguish commented 2 years ago

I found the plugins on wayback machine (let's hope the broken links are fixed soon): dedup.zip onedrive.zip

jpandre commented 2 years ago

The experimental implementations of some reparse-oriented features are considered not fit for stable use at this point, but we are working on stabilizing them, eventually adding to a stable release. Experimental features tend to be very dangerous in general and supporting them for us before they are stable is hard. We are working to get them stabilized and included in future releases. If you intend to get them sooner, please contact Tuxera Inc. at sales@tuxera.com for commercial support.

vanguish commented 2 years ago

If you are attempting to stabilize these features, then why are you discouraging users from testing them by removing download links? How can something be stabilized without extensive field testing?

hv0905 commented 1 year ago

If you're still interested in accessing your Onedrive directory via ntfs-3g, I recommend checking out this repository: ntfs3g-onedrive-plugin.

It has been tested and confirmed to be working with the latest version of ntfs-3g.

For detailed instructions on how to build and install the plugin, you can visit my blog.(In Chinese only)