Bug 1557796

Summary: unsupported reparse point; ntfs_attr_open failed, inode N attr 0xc0: No such file or directory
Product: [Fedora] Fedora Reporter: John Reiser <jreiser>
Component: ntfs-3gAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: jean-pierre.andre, kparal, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ntfs-3g-2017.3.23-10.fc29 ntfs-3g-2017.3.23-10.fc30 ntfs-3g-2017.3.23-11.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-03-15 18:29:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
ntfsresize statistics none

Description John Reiser 2018-03-18 17:38:11 UTC
Created attachment 1409541 [details]
ntfsresize statistics

Description of problem: Using /usr/bin/tar to backup an entire ntfs partition (C: drive of freshly re-installed Windows 10 Pro; approx. 188281 files) generates thousands of errors (actual count 10491) in syslog journal such as
  Mar 17 21:02:41 hpslim.domain ntfs-3g[6568]: ntfs_attr_open failed, inode 548919 attr 0xc0: No such file or directory

and complaints (actual count 17376) from 'tar' such as
  tar: Program Files/Common Files/microsoft shared/MSInfo/en-US/msinfo32.exe.mui: Cannot stat: Input/output error

Going to the directory Program Files/Common Files/microsoft shared/MSInfo/en-US and investigating:
  $ ls -l msinfo32.exe*
  lrwxrwxrwx. 5 root root 25 Sep 29 07:40 msinfo32.exe.mui -> 'unsupported reparse point'



Version-Release number of selected component (if applicable):
ntfs-3g-2017.3.23-4.fc28.x86_64


How reproducible: every time


Steps to Reproduce:
1. Mount ntfs partition read-only, and chdir to its mounted root
2. tar --create --verbose \
    --file /path/to/backup/drive/backup.tzo --lzop --record-size=1M \
    --exclude=cygwin64 --exclude=<more> \
    *
3.

Actual results: complaints from tar on stderr, and from filesystem in syslog, as in Description.


Expected results: no complaints


Additional info: stats from fsck of the partition (via ntfsresize by gparted) are attached.

Comment 1 Jean-Pierre André 2018-03-19 07:46:27 UTC
This is probably a duplicate of bug #1377049 (closed for being solved).

To be sure about it, the reparse data is needed. Either by querying the extended attribute set to the file :

getfattr -h -e hex -n system.ntfs_reparse_data '/mount-point/Program Files/Common Files/microsoft shared/MSInfo/en-US/msinfo32.exe.mui'

Or by querying the metadata (as root) :

ntfsinfo -fv -F '/Program Files/Common Files/microsoft shared/MSInfo/en-US/msinfo32.exe.mui' /dev/device

In the first way, replace "mount-point" by the actual mount point, in the second way, replace "device" by the partition id (such as sda1). Please note the quotes to escape the spaces in the file path.

Anyway, Windows 10 sometimes compresses its system files, and uses a decompressor outside the file system, with the redirection parameters inserted in the reparse data.

ntfs-3g can do same since the 2017 edition which is the one you are using, but of course you have to install a decompressor. A decompressor compatible with ntfs-3g has been developed by Eric Biggers, see https://github.com/ebiggers/ntfs-3g-system-compression An older version, with binaries compatible with Fedora can also be found on http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html

Comment 2 John Reiser 2018-03-19 15:19:48 UTC
Hee's the reparse data, by both getfattr and ntfsinfo.  getfattr with a rooted pathname failed, so I chdir to some intermediate point.

# mount -r /dev/sda4 /sda4
# getfattr -h -e hex -n system.ntfs_reparse_data '/sda4/Program Files/Common Files/microsoft shared/MSInfo/en-US/msinfo32.exe.mui'
getfattr: /sda4/Program Files/Common Files/microsoft shared/MSInfo/en-US/msinfo32.exe.mui: Input/output error

  ## "dmesg | tail"  showed no syslog message for I/O error.
  ## The only related line was a minutes-old
  ### [   54.917487] fuse init (API version 7.26)

# cd /sda4/'Program Files/Common Files/microsoft shared'  ##intermediate point
# pwd
/sda4/Program Files/Common Files/microsoft shared
# ls -l MSInfo/en-US/msinfo32.exe.mui
lrwxrwxrwx. 5 root root 25 Sep 29 07:40 MSInfo/en-US/msinfo32.exe.mui -> 'unsupported reparse point'
# getfattr -h -e hex -n system.ntfs_reparse_data MSInfo/en-US/msinfo32.exe.mui
file: MSInfo/en-US/msinfo32.exe.mui
system.ntfs_reparse_data=0x170000801000000001000000020000000100000000000000

# ntfsinfo -fv -F '/Program Files/Common Files/microsoft shared/MSInfo/en-US/msinfo32.exe.mui' /dev/sda4
Forced to continue.
Dumping Inode 578257 (0x8d2d1)
Upd. Seq. Array Off.:	 48 (0x30)
Upd. Seq. Array Count:	 3 (0x3)
Upd. Seq. Number:	 4 (0x4)
LogFile Seq. Number:	 0x37d208962
MFT Record Seq. Numb.:	 1 (0x1)
Number of Hard Links:	 5 (0x5)
Attribute Offset:	 56 (0x38)
MFT Record Flags:	 IN_USE 
Bytes Used:		 760 (0x2f8) bytes
Bytes Allocated:	 1024 (0x400) bytes
Next Attribute Instance: 12 (0xc)
MFT Padding:	00 00 
Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 578257 (0x8d2d1)
	Attribute length:	 96 (0x60)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 0 (0x0)
	Data size:		 72 (0x48)
	Data offset:		 24 (0x18)
	Resident flags:		 0x00
	ReservedR:		 0 (0x0)
	File Creation Time:	 Fri Sep 29 14:40:38 2017 UTC
	File Altered Time:	 Fri Sep 29 14:40:38 2017 UTC
	MFT Changed Time:	 Sat Mar 17 04:24:31 2018 UTC
	Last Accessed Time:	 Fri Sep 29 14:40:38 2017 UTC
	File attributes:	 ARCHIVE SPARSE_FILE REPARSE_POINT (0x00000620)
	Maximum versions:	 0 
	Version number:		 0 
	Class ID:		 0 
	User ID:		 0 (0x0)
	Security ID:		 3003 (0xbbb)
	Quota charged:		 0 (0x0)
	Update Sequence Number:	 4778490608 (0x11cd1faf0)
Dumping attribute $ATTRIBUTE_LIST (0x20) from mft record 578257 (0x8d2d1)
	Attribute length:	 344 (0x158)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 10 (0xa)
	Data size:		 320 (0x140)
	Data offset:		 24 (0x18)
	Resident flags:		 0x00
	ReservedR:		 0 (0x0)
	Dumping attribute list:
		Attribute type:	0x10
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	578257 (0x8d2d1)
		Instance:	0 (0x0)
		Name:		unnamed
		Padding:	44 43 00 00 00 00 

		Attribute type:	0x30
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	578257 (0x8d2d1)
		Instance:	9 (0x9)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 

		Attribute type:	0x30
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	579610 (0x8d81a)
		Instance:	0 (0x0)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 

		Attribute type:	0x30
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	579610 (0x8d81a)
		Instance:	1 (0x1)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 

		Attribute type:	0x30
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	579610 (0x8d81a)
		Instance:	2 (0x2)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 

		Attribute type:	0x30
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	578257 (0x8d2d1)
		Instance:	11 (0xb)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 

		Attribute type:	0x80
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	579610 (0x8d81a)
		Instance:	3 (0x3)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 

		Attribute type:	0x80
		Record length:	64 (0x40)
		Name length:	17 (0x11)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	579610 (0x8d81a)
		Instance:	4 (0x4)
		Name:		WofCompressedData
		Padding:	00 00 00 00 

		Attribute type:	0xc0
		Record length:	32 (0x20)
		Name length:	0 (0x0)
		Name offset:	26 (0x1a)
		Starting VCN:	0 (0x0)
		MFT reference:	579610 (0x8d81a)
		Instance:	5 (0x5)
		Name:		unnamed
		Padding:	00 00 00 00 00 00 
	End of attribute list reached.
Dumping attribute $FILE_NAME (0x30) from mft record 578257 (0x8d2d1)
	Attribute length:	 128 (0x80)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 9 (0x9)
	Data size:		 98 (0x62)
	Data offset:		 24 (0x18)
	Resident flags:		 0x01
	ReservedR:		 0 (0x0)
	Parent directory:	 506416 (0x7ba30)
	File Creation Time:	 Fri Sep 29 14:40:38 2017 UTC
	File Altered Time:	 Fri Sep 29 14:40:38 2017 UTC
	MFT Changed Time:	 Sat Mar 17 04:24:31 2018 UTC
	Last Accessed Time:	 Fri Sep 29 14:40:38 2017 UTC
	Allocated Size:		 0 (0x0)
	Data Size:		 30720 (0x7800)
	Filename Length:	 16 (0x10)
	File attributes:	 ARCHIVE SPARSE_FILE REPARSE_POINT (0x00000620)
	Reparse point tag:	 0x80000017 (Wof compressed)
	Namespace:		 POSIX
	Filename:		 'msinfo32.exe.mui'
Dumping attribute $FILE_NAME (0x30) from mft record 579610 (0x8d81a)
	Attribute length:	 128 (0x80)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 0 (0x0)
	Data size:		 98 (0x62)
	Data offset:		 24 (0x18)
	Resident flags:		 0x01
	ReservedR:		 0 (0x0)
	Parent directory:	 515917 (0x7df4d)
	File Creation Time:	 Sat Mar 17 04:24:04 2018 UTC
	File Altered Time:	 Sat Mar 17 04:24:31 2018 UTC
	MFT Changed Time:	 Sat Mar 17 04:24:31 2018 UTC
	Last Accessed Time:	 Sat Mar 17 04:24:04 2018 UTC
	Allocated Size:		 0 (0x0)
	Data Size:		 30720 (0x7800)
	Filename Length:	 16 (0x10)
	File attributes:	 ARCHIVE SPARSE_FILE REPARSE_POINT (0x00000620)
	Reparse point tag:	 0x80000017 (Wof compressed)
	Namespace:		 POSIX
	Filename:		 'msinfo32.exe.mui'
Dumping attribute $FILE_NAME (0x30) from mft record 579610 (0x8d81a)
	Attribute length:	 120 (0x78)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 1 (0x1)
	Data size:		 90 (0x5a)
	Data offset:		 24 (0x18)
	Resident flags:		 0x01
	ReservedR:		 0 (0x0)
	Parent directory:	 523665 (0x7fd91)
	File Creation Time:	 Sat Mar 17 04:24:04 2018 UTC
	File Altered Time:	 Sat Mar 17 04:24:04 2018 UTC
	MFT Changed Time:	 Sat Mar 17 04:24:04 2018 UTC
	Last Accessed Time:	 Sat Mar 17 04:24:04 2018 UTC
	Allocated Size:		 0 (0x0)
	Data Size:		 0 (0x0)
	Filename Length:	 12 (0xc)
	File attributes:	 ARCHIVE (0x00000020)
	Namespace:		 DOS
	Filename:		 'MSINFO~1.MUI'
Dumping attribute $FILE_NAME (0x30) from mft record 579610 (0x8d81a)
	Attribute length:	 128 (0x80)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 2 (0x2)
	Data size:		 98 (0x62)
	Data offset:		 24 (0x18)
	Resident flags:		 0x01
	ReservedR:		 0 (0x0)
	Parent directory:	 523665 (0x7fd91)
	File Creation Time:	 Sat Mar 17 04:24:04 2018 UTC
	File Altered Time:	 Sat Mar 17 04:24:04 2018 UTC
	MFT Changed Time:	 Sat Mar 17 04:24:04 2018 UTC
	Last Accessed Time:	 Sat Mar 17 04:24:04 2018 UTC
	Allocated Size:		 0 (0x0)
	Data Size:		 0 (0x0)
	Filename Length:	 16 (0x10)
	File attributes:	 ARCHIVE (0x00000020)
	Namespace:		 Win32
	Filename:		 'msinfo32.exe.mui'
Dumping attribute $FILE_NAME (0x30) from mft record 578257 (0x8d2d1)
	Attribute length:	 128 (0x80)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 11 (0xb)
	Data size:		 98 (0x62)
	Data offset:		 24 (0x18)
	Resident flags:		 0x01
	ReservedR:		 0 (0x0)
	Parent directory:	 504983 (0x7b497)
	File Creation Time:	 Fri Sep 29 14:40:38 2017 UTC
	File Altered Time:	 Fri Sep 29 14:40:38 2017 UTC
	MFT Changed Time:	 Sat Mar 17 04:24:31 2018 UTC
	Last Accessed Time:	 Fri Sep 29 14:40:38 2017 UTC
	Allocated Size:		 0 (0x0)
	Data Size:		 30720 (0x7800)
	Filename Length:	 16 (0x10)
	File attributes:	 ARCHIVE SPARSE_FILE REPARSE_POINT (0x00000620)
	Reparse point tag:	 0x80000017 (Wof compressed)
	Namespace:		 POSIX
	Filename:		 'msinfo32.exe.mui'
Dumping attribute $DATA (0x80) from mft record 579610 (0x8d81a)
	Attribute length:	 80 (0x50)
	Resident: 		 No
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x8000
	Attribute instance:	 3 (0x3)
	Lowest VCN		 0 (0x0)
	Highest VCN:		 15 (0xf)
	Mapping pairs offset:	 72 (0x48)
	Compression unit:	 4 (0x4)
	Data size:		 30720 (0x7800)
	Allocated size:		 65536 (0x10000)
	Initialized size:	 30720 (0x7800)
	Compressed size:	 0 (0x0)
	Runlist:	VCN		LCN		Length
			0x0		<HOLE>		0x10
Dumping attribute $DATA (0x80) from mft record 579610 (0x8d81a)
	Attribute length:	 112 (0x70)
	Resident: 		 No
	Name length:		 17 (0x11)
	Name offset:		 64 (0x40)
	Attribute name:		 'WofCompressedData'
	Attribute flags:	 0x0000
	Attribute instance:	 4 (0x4)
	Lowest VCN		 0 (0x0)
	Highest VCN:		 3 (0x3)
	Mapping pairs offset:	 104 (0x68)
	Compression unit:	 0 (0x0)
	Data size:		 12782 (0x31ee)
	Allocated size:		 16384 (0x4000)
	Initialized size:	 12782 (0x31ee)
	Runlist:	VCN		LCN		Length
			0x0		0xe25126		0x4
Dumping attribute $REPARSE_POINT (0xc0) from mft record 579610 (0x8d81a)
	Attribute length:	 48 (0x30)
	Resident: 		 Yes
	Name length:		 0 (0x0)
	Name offset:		 0 (0x0)
	Attribute flags:	 0x0000
	Attribute instance:	 5 (0x5)
	Data size:		 24 (0x18)
	Data offset:		 24 (0x18)
	Resident flags:		 0x00
	ReservedR:		 0 (0x0)
	Reparse tag:		 0x80000017 (Wof compressed)
	Data length:		 16 (0x10)
	Data:			 0x01000000020000000100000000000000
End of inode reached
Total runs: 2 (fragments: 2)
#

Comment 3 Jean-Pierre André 2018-03-19 15:37:47 UTC
The reparse data confirms the reported file is system compressed. You have to install the plugin described in Comment 1 to read it through ntfs-3g.

If you have difficulties after installing the plugin, please post the output of the commands from http://jp-andre.pagesperso-orange.fr/junctions.html#other

Note : using tar for saving a Windows system partition, and restoring it, will not lead to a usable system, you will lose the compression, but also the ACLs and the signatures used by Windows to check the integrity of system files. For saving a Windows system partition you should use ntfsclone (and put user data in a different partition).

Comment 4 Kamil Páral 2019-03-11 11:20:54 UTC
ntfs-3g-system-compression plugin is now packaged in Fedora

Comment 5 Fedora Update System 2019-03-11 19:25:24 UTC
ntfs-3g-2017.3.23-10.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f38cfd1456

Comment 6 Fedora Update System 2019-03-11 19:25:32 UTC
ntfs-3g-2017.3.23-10.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-61c095ada8

Comment 7 Fedora Update System 2019-03-11 19:25:40 UTC
ntfs-3g-2017.3.23-10.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-2f50dddd79

Comment 8 Fedora Update System 2019-03-12 16:08:52 UTC
ntfs-3g-2017.3.23-10.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-61c095ada8

Comment 9 Fedora Update System 2019-03-12 22:59:35 UTC
ntfs-3g-2017.3.23-10.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-f38cfd1456

Comment 10 Fedora Update System 2019-03-12 23:41:02 UTC
ntfs-3g-2017.3.23-10.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-2f50dddd79

Comment 11 Fedora Update System 2019-03-15 18:29:13 UTC
ntfs-3g-2017.3.23-10.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2019-03-29 19:12:05 UTC
ntfs-3g-2017.3.23-10.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.

Comment 13 Fedora Update System 2019-03-29 20:27:58 UTC
ntfs-3g-2017.3.23-11.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-c1e6c6edd9

Comment 14 Fedora Update System 2019-03-31 01:55:35 UTC
ntfs-3g-2017.3.23-11.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-c1e6c6edd9

Comment 15 Fedora Update System 2019-04-05 01:55:15 UTC
ntfs-3g-2017.3.23-11.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.