Public bug reported:

######## Description ########

I believe I've encountered a new type of reparse point that's unsupported by 
the current ntfs-3g library. I've tested this with a basic Windows 10 
installation, and the reparse point seems to be on a Microsoft Edge executable 
file.
The current plugins (available at 
http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html#download) currently 
support reparse points for (all of which I have installed on my system):

1) System Compression
2) Deduplicated files
3) OneDrive

I attempted to invoke the "file" operation on a given Windows 10 file,
entitled "MicrosoftEdge.exe".

######## Expected Outcome ########

I expected to be able to read the file either in the form of a "symlink"
or a normal file.

######## Actual Outcome ########

I encountered the dreaded "unsupported reparse point":

david@david-VirtualBox:~$ file 
/mnt/windows_10/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe:
 broken symbolic link to unsupported reparse point

Which I believe is a currently unsupported "Archive" reparse point,
which I've determined by running "ntfsinfo" on the file. It identifies
the File Attribute as an "Archive" reparse point:

david@david-VirtualBox:~$ sudo ntfsinfo -F 
/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
 /dev/sdb2
Dumping Inode 89554 (0x15dd2)
Upd. Seq. Array Off.:    48 (0x30)
Upd. Seq. Array Count:   3 (0x3)
Upd. Seq. Number:        4 (0x4)
LogFile Seq. Number:     0xf3122ff
MFT Record Seq. Numb.:   1 (0x1)
Number of Hard Links:    2 (0x2)
Attribute Offset:        56 (0x38)
MFT Record Flags:        IN_USE
Bytes Used:              736 (0x2e0) bytes
Bytes Allocated:         1024 (0x400) bytes
Next Attribute Instance: 5 (0x5)
MFT Padding:    00 00
Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 89554 (0x15dd2)
 Resident:               Yes
 Attribute flags:        0x0000
 Attribute instance:     0 (0x0)
 Data size:              72 (0x48)
 Resident flags:                 0x00
 File Creation Time:     Wed Jan 16 18:01:51 2019 UTC
 File Altered Time:      Wed Jan 16 18:01:51 2019 UTC
 MFT Changed Time:       Wed Jan 16 18:01:51 2019 UTC
 Last Accessed Time:     Wed Jan 16 18:01:51 2019 UTC
 File attributes:        ARCHIVE REPARSE_POINT (0x00000420)
 Maximum versions:       0
 Version number:                 0
 Class ID:               0
 User ID:                0 (0x0)
 Security ID:            1652 (0x674)
 Quota charged:          0 (0x0)
 Update Sequence Number:         5612560 (0x55a410)
Dumping attribute $FILE_NAME (0x30) from mft record 89554 (0x15dd2)
 Resident:               Yes
 Attribute flags:        0x0000
 Attribute instance:     3 (0x3)
 Data size:              90 (0x5a)
 Resident flags:                 0x01
 Parent directory:       89553 (0x15dd1)
 File Creation Time:     Wed Jan 16 18:01:51 2019 UTC
 File Altered Time:      Wed Jan 16 18:01:51 2019 UTC
 MFT Changed Time:       Wed Jan 16 18:01:51 2019 UTC
 Last Accessed Time:     Wed Jan 16 18:01:51 2019 UTC
 Allocated Size:                 0 (0x0)
 Data Size:              0 (0x0)
 Filename Length:        12 (0xc)
 File attributes:        ARCHIVE (0x00000020)
 Namespace:              DOS
 Filename:               'MICROS~1.EXE'
Dumping attribute $FILE_NAME (0x30) from mft record 89554 (0x15dd2)
 Resident:               Yes
 Attribute flags:        0x0000
 Attribute instance:     2 (0x2)
 Data size:              100 (0x64)
 Resident flags:                 0x01
 Parent directory:       89553 (0x15dd1)
 File Creation Time:     Wed Jan 16 18:01:51 2019 UTC
 File Altered Time:      Wed Jan 16 18:01:51 2019 UTC
 MFT Changed Time:       Wed Jan 16 18:01:51 2019 UTC
 Last Accessed Time:     Wed Jan 16 18:01:51 2019 UTC
 Allocated Size:                 0 (0x0)
 Data Size:              0 (0x0)
 Filename Length:        17 (0x11)
 File attributes:        ARCHIVE (0x00000020)
 Namespace:              Win32
 Filename:               'MicrosoftEdge.exe'
Dumping attribute $DATA (0x80) from mft record 89554 (0x15dd2)
 Resident:               Yes
 Attribute flags:        0x0000
 Attribute instance:     1 (0x1)
 Data size:              0 (0x0)
 Resident flags:                 0x00
Dumping attribute $REPARSE_POINT (0xc0) from mft record 89554 (0x15dd2)
 Resident:               Yes
 Attribute flags:        0x0000
 Attribute instance:     4 (0x4)
 Data size:              280 (0x118)
 Resident flags:                 0x00
 Reparse tag:            0x8000001b
 Data length:            272 (0x110)
 Data:                   
0x030000004d006900630072006f0073006f00660074002e004d00690063007200...
End of inode reached

######## System/Environment Details ########

david@david-VirtualBox:~$ lsb_release -rd
Description:    Ubuntu 18.04.1 LTS
Release:        18.04

david@david-VirtualBox:~$ apt-cache policy ntfs-3g
ntfs-3g:
  Installed: 1:2017.3.23-2
  Candidate: 1:2017.3.23-2
  Version table:
 *** 1:2017.3.23-2 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

The "getfattr" is:

david@david-VirtualBox:~$ getfattr -h -n system.ntfs_reparse_data -e hex 
/mnt/windows_10/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
getfattr: Removing leading '/' from absolute path names
# file: 
mnt/windows_10/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
system.ntfs_reparse_data=0x1b00008010010000030000004d006900630072006f0073006f00660074002e004d006900630072006f0073006f006600740045006400670065005f003800770065006b0079006200330064003800620062007700650000004d006900630072006f0073006f00660074002e004d006900630072006f0073006f006600740045006400670065005f003800770065006b0079006200330064003800620062007700650021004d006900630072006f0073006f00660074004500640067006500000043003a005c00570069006e0064006f00770073005c00530079007300740065006d00330032005c00530079007300740065006d005500570050004c00610075006e0063006800650072002e00650078006500000031000000

And my ntfs-3g configuration is as follows (per reporting standards at
the bottom of http://jp-andre.pagesperso-
orange.fr/junctions.html#other):

david@david-VirtualBox:~$ $(which ntfs-3g) -help 2>&1 | grep ration
ntfs-3g 2017.3.23 integrated FUSE 28 - Third Generation NTFS Driver
  Configuration type 7, XATTRS are on, POSIX ACLS are on

david@david-VirtualBox:~$ file $(which ntfs-3g)
/bin/ntfs-3g: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), 
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 
3.2.0, BuildID[sha1]=587e8bf3601c8587afd520f8cbf9c95bd73a5c25, stripped

david@david-VirtualBox:~$ md5sum $(which ntfs-3g)
a917787eae50117dec8646d6187af00a  /bin/ntfs-3g

david@david-VirtualBox:~$ ls -ld $(strings $(which ntfs-3g) | grep ntfs-plugin 
| sed -e 's/ntfs-plugin.*//')
drwxr-xr-x 2 root root 4096 Jan 21 16:11 /usr/lib/x86_64-linux-gnu/ntfs-3g/

david@david-VirtualBox:~$ md5sum $(strings $(which ntfs-3g) | grep ntfs-plugin 
| sed -e 's/%08lx/*/')
1d5331d5d6bf8a79f60e0d1f87b77094  
/usr/lib/x86_64-linux-gnu/ntfs-3g/ntfs-plugin-80000013.so
63a1ccbb2d16581761ea60339a5c6d26  
/usr/lib/x86_64-linux-gnu/ntfs-3g/ntfs-plugin-80000017.so
9db6f8288ed3856578e1ec3372310a35  
/usr/lib/x86_64-linux-gnu/ntfs-3g/ntfs-plugin-9000301a.so

** Affects: ntfs-3g (Ubuntu)
     Importance: Undecided
         Status: New

** Description changed:

  ######## Description ########
  
  I believe I've encountered a new type of reparse point that's unsupported by 
the current ntfs-3g library. I've tested this with a basic Windows 10 
installation, and the reparse point seems to be on a Microsoft Edge executable 
file.
- The current plugins (available at 
http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html#download) currently 
support reparse points for:
+ The current plugins (available at 
http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html#download) currently 
support reparse points for (all of which I have installed on my system):
  
  1) System Compression
  2) Deduplicated files
- 3) OneDrive 
+ 3) OneDrive
  
  I attempted to invoke the "file" operation on a given Windows 10 file,
  entitled "MicrosoftEdge.exe".
  
  ######## Expected Outcome ########
  
  I expected to be able to read the file either in the form of a "symlink"
  or a normal file.
  
  ######## Actual Outcome ########
  
  I encountered the dreaded "unsupported reparse point":
  
  david@david-VirtualBox:~$ file 
/mnt/windows_10/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
  
Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe:
 broken symbolic link to unsupported reparse point
  
  Which I believe is a currently unsupported "Archive" reparse point,
  which I've determined by running "ntfsinfo" on the file. It identifies
  the File Attribute as an "Archive" reparse point:
  
  david@david-VirtualBox:~$ sudo ntfsinfo -F 
/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
 /dev/sdb2
  Dumping Inode 89554 (0x15dd2)
  Upd. Seq. Array Off.:  48 (0x30)
  Upd. Seq. Array Count:         3 (0x3)
  Upd. Seq. Number:      4 (0x4)
  LogFile Seq. Number:   0xf3122ff
  MFT Record Seq. Numb.:         1 (0x1)
  Number of Hard Links:  2 (0x2)
  Attribute Offset:      56 (0x38)
- MFT Record Flags:      IN_USE 
+ MFT Record Flags:      IN_USE
  Bytes Used:            736 (0x2e0) bytes
  Bytes Allocated:       1024 (0x400) bytes
  Next Attribute Instance: 5 (0x5)
- MFT Padding:  00 00 
+ MFT Padding:  00 00
  Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 89554 (0x15dd2)
-       Resident:                Yes
-       Attribute flags:         0x0000
-       Attribute instance:      0 (0x0)
-       Data size:               72 (0x48)
-       Resident flags:          0x00
-       File Creation Time:      Wed Jan 16 18:01:51 2019 UTC
-       File Altered Time:       Wed Jan 16 18:01:51 2019 UTC
-       MFT Changed Time:        Wed Jan 16 18:01:51 2019 UTC
-       Last Accessed Time:      Wed Jan 16 18:01:51 2019 UTC
-       File attributes:         ARCHIVE REPARSE_POINT (0x00000420)
-       Maximum versions:        0 
-       Version number:          0 
-       Class ID:                0 
-       User ID:                 0 (0x0)
-       Security ID:             1652 (0x674)
-       Quota charged:           0 (0x0)
-       Update Sequence Number:  5612560 (0x55a410)
+  Resident:             Yes
+  Attribute flags:      0x0000
+  Attribute instance:   0 (0x0)
+  Data size:            72 (0x48)
+  Resident flags:               0x00
+  File Creation Time:   Wed Jan 16 18:01:51 2019 UTC
+  File Altered Time:    Wed Jan 16 18:01:51 2019 UTC
+  MFT Changed Time:     Wed Jan 16 18:01:51 2019 UTC
+  Last Accessed Time:   Wed Jan 16 18:01:51 2019 UTC
+  File attributes:      ARCHIVE REPARSE_POINT (0x00000420)
+  Maximum versions:     0
+  Version number:               0
+  Class ID:             0
+  User ID:              0 (0x0)
+  Security ID:          1652 (0x674)
+  Quota charged:                0 (0x0)
+  Update Sequence Number:       5612560 (0x55a410)
  Dumping attribute $FILE_NAME (0x30) from mft record 89554 (0x15dd2)
-       Resident:                Yes
-       Attribute flags:         0x0000
-       Attribute instance:      3 (0x3)
-       Data size:               90 (0x5a)
-       Resident flags:          0x01
-       Parent directory:        89553 (0x15dd1)
-       File Creation Time:      Wed Jan 16 18:01:51 2019 UTC
-       File Altered Time:       Wed Jan 16 18:01:51 2019 UTC
-       MFT Changed Time:        Wed Jan 16 18:01:51 2019 UTC
-       Last Accessed Time:      Wed Jan 16 18:01:51 2019 UTC
-       Allocated Size:          0 (0x0)
-       Data Size:               0 (0x0)
-       Filename Length:         12 (0xc)
-       File attributes:         ARCHIVE (0x00000020)
-       Namespace:               DOS
-       Filename:                'MICROS~1.EXE'
+  Resident:             Yes
+  Attribute flags:      0x0000
+  Attribute instance:   3 (0x3)
+  Data size:            90 (0x5a)
+  Resident flags:               0x01
+  Parent directory:     89553 (0x15dd1)
+  File Creation Time:   Wed Jan 16 18:01:51 2019 UTC
+  File Altered Time:    Wed Jan 16 18:01:51 2019 UTC
+  MFT Changed Time:     Wed Jan 16 18:01:51 2019 UTC
+  Last Accessed Time:   Wed Jan 16 18:01:51 2019 UTC
+  Allocated Size:               0 (0x0)
+  Data Size:            0 (0x0)
+  Filename Length:      12 (0xc)
+  File attributes:      ARCHIVE (0x00000020)
+  Namespace:            DOS
+  Filename:             'MICROS~1.EXE'
  Dumping attribute $FILE_NAME (0x30) from mft record 89554 (0x15dd2)
-       Resident:                Yes
-       Attribute flags:         0x0000
-       Attribute instance:      2 (0x2)
-       Data size:               100 (0x64)
-       Resident flags:          0x01
-       Parent directory:        89553 (0x15dd1)
-       File Creation Time:      Wed Jan 16 18:01:51 2019 UTC
-       File Altered Time:       Wed Jan 16 18:01:51 2019 UTC
-       MFT Changed Time:        Wed Jan 16 18:01:51 2019 UTC
-       Last Accessed Time:      Wed Jan 16 18:01:51 2019 UTC
-       Allocated Size:          0 (0x0)
-       Data Size:               0 (0x0)
-       Filename Length:         17 (0x11)
-       File attributes:         ARCHIVE (0x00000020)
-       Namespace:               Win32
-       Filename:                'MicrosoftEdge.exe'
+  Resident:             Yes
+  Attribute flags:      0x0000
+  Attribute instance:   2 (0x2)
+  Data size:            100 (0x64)
+  Resident flags:               0x01
+  Parent directory:     89553 (0x15dd1)
+  File Creation Time:   Wed Jan 16 18:01:51 2019 UTC
+  File Altered Time:    Wed Jan 16 18:01:51 2019 UTC
+  MFT Changed Time:     Wed Jan 16 18:01:51 2019 UTC
+  Last Accessed Time:   Wed Jan 16 18:01:51 2019 UTC
+  Allocated Size:               0 (0x0)
+  Data Size:            0 (0x0)
+  Filename Length:      17 (0x11)
+  File attributes:      ARCHIVE (0x00000020)
+  Namespace:            Win32
+  Filename:             'MicrosoftEdge.exe'
  Dumping attribute $DATA (0x80) from mft record 89554 (0x15dd2)
-       Resident:                Yes
-       Attribute flags:         0x0000
-       Attribute instance:      1 (0x1)
-       Data size:               0 (0x0)
-       Resident flags:          0x00
+  Resident:             Yes
+  Attribute flags:      0x0000
+  Attribute instance:   1 (0x1)
+  Data size:            0 (0x0)
+  Resident flags:               0x00
  Dumping attribute $REPARSE_POINT (0xc0) from mft record 89554 (0x15dd2)
-       Resident:                Yes
-       Attribute flags:         0x0000
-       Attribute instance:      4 (0x4)
-       Data size:               280 (0x118)
-       Resident flags:          0x00
-       Reparse tag:             0x8000001b
-       Data length:             272 (0x110)
-       Data:                    
0x030000004d006900630072006f0073006f00660074002e004d00690063007200...
+  Resident:             Yes
+  Attribute flags:      0x0000
+  Attribute instance:   4 (0x4)
+  Data size:            280 (0x118)
+  Resident flags:               0x00
+  Reparse tag:          0x8000001b
+  Data length:          272 (0x110)
+  Data:                         
0x030000004d006900630072006f0073006f00660074002e004d00690063007200...
  End of inode reached
  
  ######## System/Environment Details ########
  
  david@david-VirtualBox:~$ lsb_release -rd
  Description:  Ubuntu 18.04.1 LTS
  Release:      18.04
  
  david@david-VirtualBox:~$ apt-cache policy ntfs-3g
  ntfs-3g:
-   Installed: 1:2017.3.23-2
-   Candidate: 1:2017.3.23-2
-   Version table:
-  *** 1:2017.3.23-2 500
-         500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
-         100 /var/lib/dpkg/status
+   Installed: 1:2017.3.23-2
+   Candidate: 1:2017.3.23-2
+   Version table:
+  *** 1:2017.3.23-2 500
+         500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
+         100 /var/lib/dpkg/status
  
  The "getfattr" is:
  
  david@david-VirtualBox:~$ getfattr -h -n system.ntfs_reparse_data -e hex 
/mnt/windows_10/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
  getfattr: Removing leading '/' from absolute path names
  # file: 
mnt/windows_10/Users/user/AppData/Local/Microsoft/WindowsApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe
  
system.ntfs_reparse_data=0x1b00008010010000030000004d006900630072006f0073006f00660074002e004d006900630072006f0073006f006600740045006400670065005f003800770065006b0079006200330064003800620062007700650000004d006900630072006f0073006f00660074002e004d006900630072006f0073006f006600740045006400670065005f003800770065006b0079006200330064003800620062007700650021004d006900630072006f0073006f00660074004500640067006500000043003a005c00570069006e0064006f00770073005c00530079007300740065006d00330032005c00530079007300740065006d005500570050004c00610075006e0063006800650072002e00650078006500000031000000
  
  And my ntfs-3g configuration is as follows (per reporting standards at
  the bottom of http://jp-andre.pagesperso-
  orange.fr/junctions.html#other):
  
  david@david-VirtualBox:~$ $(which ntfs-3g) -help 2>&1 | grep ration
  ntfs-3g 2017.3.23 integrated FUSE 28 - Third Generation NTFS Driver
-               Configuration type 7, XATTRS are on, POSIX ACLS are on
+   Configuration type 7, XATTRS are on, POSIX ACLS are on
  
  david@david-VirtualBox:~$ file $(which ntfs-3g)
  /bin/ntfs-3g: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), 
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 
3.2.0, BuildID[sha1]=587e8bf3601c8587afd520f8cbf9c95bd73a5c25, stripped
  
  david@david-VirtualBox:~$ md5sum $(which ntfs-3g)
  a917787eae50117dec8646d6187af00a  /bin/ntfs-3g
  
  david@david-VirtualBox:~$ ls -ld $(strings $(which ntfs-3g) | grep 
ntfs-plugin | sed -e 's/ntfs-plugin.*//')
  drwxr-xr-x 2 root root 4096 Jan 21 16:11 /usr/lib/x86_64-linux-gnu/ntfs-3g/
  
  david@david-VirtualBox:~$ md5sum $(strings $(which ntfs-3g) | grep 
ntfs-plugin | sed -e 's/%08lx/*/')
  1d5331d5d6bf8a79f60e0d1f87b77094  
/usr/lib/x86_64-linux-gnu/ntfs-3g/ntfs-plugin-80000013.so
  63a1ccbb2d16581761ea60339a5c6d26  
/usr/lib/x86_64-linux-gnu/ntfs-3g/ntfs-plugin-80000017.so
  9db6f8288ed3856578e1ec3372310a35  
/usr/lib/x86_64-linux-gnu/ntfs-3g/ntfs-plugin-9000301a.so

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1812768

Title:
  ntfs-3g Unsupported "Archive" reparse point

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ntfs-3g/+bug/1812768/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to