Hello Jean-Pierre, I created the following symlinks in WSL in a test directory, along with a file named "foo" and a directory named "bar": relative-symlink-to-file -> foo relative-symlink-to-dir -> bar relative-symlink-to-nonexistent -> nonexistent absolute-symlink-to-file -> /mnt/d/testsymlink/foo absolute-symlink-to-dir -> /mnt/d/testsymlink/bar absolute-symlink-to-nonexistent -> /nonexistent
(Note that WSL sometimes creates native Windows symlinks and sometimes creates its own WSL symlinks; I took care to ensure that all of the symlinks I created were of the latter type.) getfattr simply fails with EIO when I try to issue the commands you requested. I did run ntfsinfo on the symlinks though. I have included the full output at the bottom of this email. The principal finding is that the reparse point data is the bytes 02000000 followed by the contents of the symlink. Mirroring POSIX semantics, it appears that the type or existence of the target has no effect on the format of the reparse point data. I'll try this again with a non-ASCII symlink target to verify which encoding it uses. $ sudo ntfsinfo -F /testsymlink/relative-symlink-to-file /dev/nvme0n1p7 Dumping Inode 16383 (0x3fff) Upd. Seq. Array Off.: 48 (0x30) Upd. Seq. Array Count: 3 (0x3) Upd. Seq. Number: 2 (0x2) LogFile Seq. Number: 0x674021cee MFT Record Seq. Numb.: 6 (0x6) Number of Hard Links: 2 (0x2) Attribute Offset: 56 (0x38) MFT Record Flags: IN_USE Bytes Used: 480 (0x1e0) bytes Bytes Allocated: 1024 (0x400) bytes Next Attribute Instance: 5 (0x5) MFT Padding: 00 00 Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 16383 (0x3fff) Resident: Yes Attribute flags: 0x0000 Attribute instance: 0 (0x0) Data size: 72 (0x48) Resident flags: 0x00 File Creation Time: Fri Jan 8 11:18:38 2021 UTC File Altered Time: Fri Jan 8 11:18:38 2021 UTC MFT Changed Time: Fri Jan 8 11:18:38 2021 UTC Last Accessed Time: Fri Jan 8 11:18:38 2021 UTC File attributes: ARCHIVE REPARSE_POINT (0x00000420) Maximum versions: 0 Version number: 0 Class ID: 0 User ID: 0 (0x0) Security ID: 273 (0x111) Quota charged: 0 (0x0) Update Sequence Number: 766863856 (0x2db569f0) Dumping attribute $FILE_NAME (0x30) from mft record 16383 (0x3fff) Resident: Yes Attribute flags: 0x0000 Attribute instance: 3 (0x3) Data size: 82 (0x52) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:18:38 2021 UTC File Altered Time: Fri Jan 8 11:18:38 2021 UTC MFT Changed Time: Fri Jan 8 11:18:38 2021 UTC Last Accessed Time: Fri Jan 8 11:18:38 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 8 (0x8) File attributes: ARCHIVE (0x00000020) Namespace: DOS Filename: 'RELATI~1' Dumping attribute $FILE_NAME (0x30) from mft record 16383 (0x3fff) Resident: Yes Attribute flags: 0x0000 Attribute instance: 2 (0x2) Data size: 114 (0x72) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:18:38 2021 UTC File Altered Time: Fri Jan 8 11:18:38 2021 UTC MFT Changed Time: Fri Jan 8 11:18:38 2021 UTC Last Accessed Time: Fri Jan 8 11:18:38 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 24 (0x18) File attributes: ARCHIVE (0x00000020) Namespace: Win32 Filename: 'relative-symlink-to-file' Dumping attribute $DATA (0x80) from mft record 16383 (0x3fff) Resident: Yes Attribute flags: 0x0000 Attribute instance: 1 (0x1) Data size: 0 (0x0) Resident flags: 0x00 Dumping attribute $REPARSE_POINT (0xc0) from mft record 16383 (0x3fff) Resident: Yes Attribute flags: 0x0000 Attribute instance: 4 (0x4) Data size: 15 (0xf) Resident flags: 0x00 Reparse tag: 0xa000001d (Linux symlink) Data length: 7 (0x7) Data: 0x02000000666f6f End of inode reached $ sudo ntfsinfo -F /testsymlink/relative-symlink-to-dir /dev/nvme0n1p7 Dumping Inode 16394 (0x400a) Upd. Seq. Array Off.: 48 (0x30) Upd. Seq. Array Count: 3 (0x3) Upd. Seq. Number: 3 (0x3) LogFile Seq. Number: 0x6740222f6 MFT Record Seq. Numb.: 9 (0x9) Number of Hard Links: 2 (0x2) Attribute Offset: 56 (0x38) MFT Record Flags: IN_USE Bytes Used: 472 (0x1d8) bytes Bytes Allocated: 1024 (0x400) bytes Next Attribute Instance: 5 (0x5) MFT Padding: 00 00 Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 16394 (0x400a) Resident: Yes Attribute flags: 0x0000 Attribute instance: 0 (0x0) Data size: 72 (0x48) Resident flags: 0x00 File Creation Time: Fri Jan 8 11:18:43 2021 UTC File Altered Time: Fri Jan 8 11:18:43 2021 UTC MFT Changed Time: Fri Jan 8 11:18:43 2021 UTC Last Accessed Time: Fri Jan 8 11:18:43 2021 UTC File attributes: ARCHIVE REPARSE_POINT (0x00000420) Maximum versions: 0 Version number: 0 Class ID: 0 User ID: 0 (0x0) Security ID: 273 (0x111) Quota charged: 0 (0x0) Update Sequence Number: 766864112 (0x2db56af0) Dumping attribute $FILE_NAME (0x30) from mft record 16394 (0x400a) Resident: Yes Attribute flags: 0x0000 Attribute instance: 3 (0x3) Data size: 82 (0x52) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:18:43 2021 UTC File Altered Time: Fri Jan 8 11:18:43 2021 UTC MFT Changed Time: Fri Jan 8 11:18:43 2021 UTC Last Accessed Time: Fri Jan 8 11:18:43 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 8 (0x8) File attributes: ARCHIVE (0x00000020) Namespace: DOS Filename: 'RELATI~2' Dumping attribute $FILE_NAME (0x30) from mft record 16394 (0x400a) Resident: Yes Attribute flags: 0x0000 Attribute instance: 2 (0x2) Data size: 112 (0x70) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:18:43 2021 UTC File Altered Time: Fri Jan 8 11:18:43 2021 UTC MFT Changed Time: Fri Jan 8 11:18:43 2021 UTC Last Accessed Time: Fri Jan 8 11:18:43 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 23 (0x17) File attributes: ARCHIVE (0x00000020) Namespace: Win32 Filename: 'relative-symlink-to-dir' Dumping attribute $DATA (0x80) from mft record 16394 (0x400a) Resident: Yes Attribute flags: 0x0000 Attribute instance: 1 (0x1) Data size: 0 (0x0) Resident flags: 0x00 Dumping attribute $REPARSE_POINT (0xc0) from mft record 16394 (0x400a) Resident: Yes Attribute flags: 0x0000 Attribute instance: 4 (0x4) Data size: 15 (0xf) Resident flags: 0x00 Reparse tag: 0xa000001d (Linux symlink) Data length: 7 (0x7) Data: 0x02000000626172 End of inode reached $ sudo ntfsinfo -F /testsymlink/relative-symlink-to-nonexistent /dev/nvme0n1p7 Dumping Inode 16416 (0x4020) Upd. Seq. Array Off.: 48 (0x30) Upd. Seq. Array Count: 3 (0x3) Upd. Seq. Number: 3 (0x3) LogFile Seq. Number: 0x674022f92 MFT Record Seq. Numb.: 12 (0xc) Number of Hard Links: 2 (0x2) Attribute Offset: 56 (0x38) MFT Record Flags: IN_USE Bytes Used: 496 (0x1f0) bytes Bytes Allocated: 1024 (0x400) bytes Next Attribute Instance: 5 (0x5) MFT Padding: 00 00 Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 16416 (0x4020) Resident: Yes Attribute flags: 0x0000 Attribute instance: 0 (0x0) Data size: 72 (0x48) Resident flags: 0x00 File Creation Time: Fri Jan 8 11:19:12 2021 UTC File Altered Time: Fri Jan 8 11:19:12 2021 UTC MFT Changed Time: Fri Jan 8 11:19:12 2021 UTC Last Accessed Time: Fri Jan 8 11:19:12 2021 UTC File attributes: ARCHIVE REPARSE_POINT (0x00000420) Maximum versions: 0 Version number: 0 Class ID: 0 User ID: 0 (0x0) Security ID: 273 (0x111) Quota charged: 0 (0x0) Update Sequence Number: 766864448 (0x2db56c40) Dumping attribute $FILE_NAME (0x30) from mft record 16416 (0x4020) Resident: Yes Attribute flags: 0x0000 Attribute instance: 3 (0x3) Data size: 82 (0x52) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:19:12 2021 UTC File Altered Time: Fri Jan 8 11:19:12 2021 UTC MFT Changed Time: Fri Jan 8 11:19:12 2021 UTC Last Accessed Time: Fri Jan 8 11:19:12 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 8 (0x8) File attributes: ARCHIVE (0x00000020) Namespace: DOS Filename: 'RELATI~3' Dumping attribute $FILE_NAME (0x30) from mft record 16416 (0x4020) Resident: Yes Attribute flags: 0x0000 Attribute instance: 2 (0x2) Data size: 128 (0x80) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:19:12 2021 UTC File Altered Time: Fri Jan 8 11:19:12 2021 UTC MFT Changed Time: Fri Jan 8 11:19:12 2021 UTC Last Accessed Time: Fri Jan 8 11:19:12 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 31 (0x1f) File attributes: ARCHIVE (0x00000020) Namespace: Win32 Filename: 'relative-symlink-to-nonexistent' Dumping attribute $DATA (0x80) from mft record 16416 (0x4020) Resident: Yes Attribute flags: 0x0000 Attribute instance: 1 (0x1) Data size: 0 (0x0) Resident flags: 0x00 Dumping attribute $REPARSE_POINT (0xc0) from mft record 16416 (0x4020) Resident: Yes Attribute flags: 0x0000 Attribute instance: 4 (0x4) Data size: 23 (0x17) Resident flags: 0x00 Reparse tag: 0xa000001d (Linux symlink) Data length: 15 (0xf) Data: 0x020000006e6f6e6578697374656e74 End of inode reached $ sudo ntfsinfo -F /testsymlink/absolute-symlink-to-file /dev/nvme0n1p7 Dumping Inode 16407 (0x4017) Upd. Seq. Array Off.: 48 (0x30) Upd. Seq. Array Count: 3 (0x3) Upd. Seq. Number: 3 (0x3) LogFile Seq. Number: 0x674022847 MFT Record Seq. Numb.: 7 (0x7) Number of Hard Links: 2 (0x2) Attribute Offset: 56 (0x38) MFT Record Flags: IN_USE Bytes Used: 504 (0x1f8) bytes Bytes Allocated: 1024 (0x400) bytes Next Attribute Instance: 5 (0x5) MFT Padding: 00 00 Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 16407 (0x4017) Resident: Yes Attribute flags: 0x0000 Attribute instance: 0 (0x0) Data size: 72 (0x48) Resident flags: 0x00 File Creation Time: Fri Jan 8 11:18:57 2021 UTC File Altered Time: Fri Jan 8 11:18:57 2021 UTC MFT Changed Time: Fri Jan 8 11:18:57 2021 UTC Last Accessed Time: Fri Jan 8 11:18:57 2021 UTC File attributes: ARCHIVE REPARSE_POINT (0x00000420) Maximum versions: 0 Version number: 0 Class ID: 0 User ID: 0 (0x0) Security ID: 273 (0x111) Quota charged: 0 (0x0) Update Sequence Number: 766864224 (0x2db56b60) Dumping attribute $FILE_NAME (0x30) from mft record 16407 (0x4017) Resident: Yes Attribute flags: 0x0000 Attribute instance: 3 (0x3) Data size: 82 (0x52) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:18:57 2021 UTC File Altered Time: Fri Jan 8 11:18:57 2021 UTC MFT Changed Time: Fri Jan 8 11:18:57 2021 UTC Last Accessed Time: Fri Jan 8 11:18:57 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 8 (0x8) File attributes: ARCHIVE (0x00000020) Namespace: DOS Filename: 'ABSOLU~1' Dumping attribute $FILE_NAME (0x30) from mft record 16407 (0x4017) Resident: Yes Attribute flags: 0x0000 Attribute instance: 2 (0x2) Data size: 114 (0x72) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:18:57 2021 UTC File Altered Time: Fri Jan 8 11:18:57 2021 UTC MFT Changed Time: Fri Jan 8 11:18:57 2021 UTC Last Accessed Time: Fri Jan 8 11:18:57 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 24 (0x18) File attributes: ARCHIVE (0x00000020) Namespace: Win32 Filename: 'absolute-symlink-to-file' Dumping attribute $DATA (0x80) from mft record 16407 (0x4017) Resident: Yes Attribute flags: 0x0000 Attribute instance: 1 (0x1) Data size: 0 (0x0) Resident flags: 0x00 Dumping attribute $REPARSE_POINT (0xc0) from mft record 16407 (0x4017) Resident: Yes Attribute flags: 0x0000 Attribute instance: 4 (0x4) Data size: 34 (0x22) Resident flags: 0x00 Reparse tag: 0xa000001d (Linux symlink) Data length: 26 (0x1a) Data: 0x020000002f6d6e742f642f7465737473796d6c696e6b2f666f6f End of inode reached $ sudo ntfsinfo -F /testsymlink/absolute-symlink-to-dir /dev/nvme0n1p7 Dumping Inode 16408 (0x4018) Upd. Seq. Array Off.: 48 (0x30) Upd. Seq. Array Count: 3 (0x3) Upd. Seq. Number: 3 (0x3) LogFile Seq. Number: 0x674022be5 MFT Record Seq. Numb.: 9 (0x9) Number of Hard Links: 2 (0x2) Attribute Offset: 56 (0x38) MFT Record Flags: IN_USE Bytes Used: 496 (0x1f0) bytes Bytes Allocated: 1024 (0x400) bytes Next Attribute Instance: 5 (0x5) MFT Padding: 00 00 Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 16408 (0x4018) Resident: Yes Attribute flags: 0x0000 Attribute instance: 0 (0x0) Data size: 72 (0x48) Resident flags: 0x00 File Creation Time: Fri Jan 8 11:19:05 2021 UTC File Altered Time: Fri Jan 8 11:19:05 2021 UTC MFT Changed Time: Fri Jan 8 11:19:05 2021 UTC Last Accessed Time: Fri Jan 8 11:19:05 2021 UTC File attributes: ARCHIVE REPARSE_POINT (0x00000420) Maximum versions: 0 Version number: 0 Class ID: 0 User ID: 0 (0x0) Security ID: 273 (0x111) Quota charged: 0 (0x0) Update Sequence Number: 766864336 (0x2db56bd0) Dumping attribute $FILE_NAME (0x30) from mft record 16408 (0x4018) Resident: Yes Attribute flags: 0x0000 Attribute instance: 3 (0x3) Data size: 82 (0x52) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:19:05 2021 UTC File Altered Time: Fri Jan 8 11:19:05 2021 UTC MFT Changed Time: Fri Jan 8 11:19:05 2021 UTC Last Accessed Time: Fri Jan 8 11:19:05 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 8 (0x8) File attributes: ARCHIVE (0x00000020) Namespace: DOS Filename: 'ABSOLU~2' Dumping attribute $FILE_NAME (0x30) from mft record 16408 (0x4018) Resident: Yes Attribute flags: 0x0000 Attribute instance: 2 (0x2) Data size: 112 (0x70) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:19:05 2021 UTC File Altered Time: Fri Jan 8 11:19:05 2021 UTC MFT Changed Time: Fri Jan 8 11:19:05 2021 UTC Last Accessed Time: Fri Jan 8 11:19:05 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 23 (0x17) File attributes: ARCHIVE (0x00000020) Namespace: Win32 Filename: 'absolute-symlink-to-dir' Dumping attribute $DATA (0x80) from mft record 16408 (0x4018) Resident: Yes Attribute flags: 0x0000 Attribute instance: 1 (0x1) Data size: 0 (0x0) Resident flags: 0x00 Dumping attribute $REPARSE_POINT (0xc0) from mft record 16408 (0x4018) Resident: Yes Attribute flags: 0x0000 Attribute instance: 4 (0x4) Data size: 34 (0x22) Resident flags: 0x00 Reparse tag: 0xa000001d (Linux symlink) Data length: 26 (0x1a) Data: 0x020000002f6d6e742f642f7465737473796d6c696e6b2f626172 End of inode reached $ sudo ntfsinfo -F /testsymlink/absolute-symlink-to-nonexistent /dev/nvme0n1p7 Dumping Inode 16423 (0x4027) Upd. Seq. Array Off.: 48 (0x30) Upd. Seq. Array Count: 3 (0x3) Upd. Seq. Number: 3 (0x3) LogFile Seq. Number: 0x674023340 MFT Record Seq. Numb.: 7 (0x7) Number of Hard Links: 2 (0x2) Attribute Offset: 56 (0x38) MFT Record Flags: IN_USE Bytes Used: 496 (0x1f0) bytes Bytes Allocated: 1024 (0x400) bytes Next Attribute Instance: 5 (0x5) MFT Padding: 00 00 Dumping attribute $STANDARD_INFORMATION (0x10) from mft record 16423 (0x4027) Resident: Yes Attribute flags: 0x0000 Attribute instance: 0 (0x0) Data size: 72 (0x48) Resident flags: 0x00 File Creation Time: Fri Jan 8 11:19:21 2021 UTC File Altered Time: Fri Jan 8 11:19:21 2021 UTC MFT Changed Time: Fri Jan 8 11:19:21 2021 UTC Last Accessed Time: Fri Jan 8 11:19:21 2021 UTC File attributes: ARCHIVE REPARSE_POINT (0x00000420) Maximum versions: 0 Version number: 0 Class ID: 0 User ID: 0 (0x0) Security ID: 273 (0x111) Quota charged: 0 (0x0) Update Sequence Number: 766864576 (0x2db56cc0) Dumping attribute $FILE_NAME (0x30) from mft record 16423 (0x4027) Resident: Yes Attribute flags: 0x0000 Attribute instance: 3 (0x3) Data size: 82 (0x52) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:19:21 2021 UTC File Altered Time: Fri Jan 8 11:19:21 2021 UTC MFT Changed Time: Fri Jan 8 11:19:21 2021 UTC Last Accessed Time: Fri Jan 8 11:19:21 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 8 (0x8) File attributes: ARCHIVE (0x00000020) Namespace: DOS Filename: 'ABSOLU~3' Dumping attribute $FILE_NAME (0x30) from mft record 16423 (0x4027) Resident: Yes Attribute flags: 0x0000 Attribute instance: 2 (0x2) Data size: 128 (0x80) Resident flags: 0x01 Parent directory: 16346 (0x3fda) File Creation Time: Fri Jan 8 11:19:21 2021 UTC File Altered Time: Fri Jan 8 11:19:21 2021 UTC MFT Changed Time: Fri Jan 8 11:19:21 2021 UTC Last Accessed Time: Fri Jan 8 11:19:21 2021 UTC Allocated Size: 0 (0x0) Data Size: 0 (0x0) Filename Length: 31 (0x1f) File attributes: ARCHIVE (0x00000020) Namespace: Win32 Filename: 'absolute-symlink-to-nonexistent' Dumping attribute $DATA (0x80) from mft record 16423 (0x4027) Resident: Yes Attribute flags: 0x0000 Attribute instance: 1 (0x1) Data size: 0 (0x0) Resident flags: 0x00 Dumping attribute $REPARSE_POINT (0xc0) from mft record 16423 (0x4027) Resident: Yes Attribute flags: 0x0000 Attribute instance: 4 (0x4) Data size: 24 (0x18) Resident flags: 0x00 Reparse tag: 0xa000001d (Linux symlink) Data length: 16 (0x10) Data: 0x020000002f6e6f6e6578697374656e74 End of inode reached Kevin On Fri, Jan 8, 2021 at 1:19 AM Jean-Pierre André <jean-pierre.an...@wanadoo.fr> wrote: > > Kevin Peng wrote on 1/8/21 5:42 AM: > > Hi, > > > > It seems that NTFS-3G is currently hardcoded to create only Interix > > symlinks. Today, however, Interix is obsolete, and people are using > > WSL instead, which has its own different kind of symlink. Is it > > anywhere on the roadmap to read and (optionally) create WSL symlinks > > instead of Interix symlinks, like what Cygwin does now? > > I do not use WSL, and I am short of information about those > symlinks. Can you please create a few such symlinks and > post their reparse data : > > - two symlinks to regular files, one to an absolute target > and one to a relative target (with and without a leading /) > - two symlinks to directories (absolute and relative targets). > - for each of them post the output of : > getfattr -h -e hex -n system.ntfs_reparse_data the-symlink > > I might need more information at a later stage. > > > Also, I was wondering, is there any roadmap so far for another release > > of NTFS-3G? > > A new advanced release is on the way. Not sure whether > your requested feature can be integrated, depends on its complexity. > > I have no information about a version supported by Tuxera. > > Jean-Pierre > > > Best, > > Kevin > > > > > > _______________________________________________ > ntfs-3g-devel mailing list > ntfs-3g-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel _______________________________________________ ntfs-3g-devel mailing list ntfs-3g-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel