Reputation: 283
I've noticed that in cygwin and MSYS2 I'm allowed to make symlinks on FAT32 volumes, and these symlinks are visible both in cygwin and MSYS2 interchangeably. The "links" are not links in the traditional sense, because FAT32 has no concept of that. Instead they are flat files with a magic header of 0x213c73796d6c696e6b3e
(ASCII: !<symlink>
) followed by a BOM prepended UTF-16 little endian null terminated string providing the relative (or absolute) path to target.
Z:\link-test> ls -l link.d
lrwxrwxrwx 1 cygwin cygwin 7 Jan 9 20:59 link.d -> test.d/
Z:\link-test> <link.d xxd -g2 -e
00000000: 3c21 7973 6c6d 6e69 3e6b feff 0074 0065 !<symlink>..t.e.
00000010: 0073 0074 002e 0064 002f 0000 s.t...d./...
Z:\link-test> <link.d tail -c +13
test.d/
So, is this standardized anywhere, and if so, how can I mount a vfat
filesystem in linux that honors these pseudo-symlink references?
Upvotes: 0
Views: 157
Reputation: 8496
The symlinks used by Cygwin on FAT32 are Cygwin specific implementation
https://cygwin.com/faq.html#faq.api.symlinks
https://cygwin.com/cygwin-ug-net/using.html#pathnames-symlinks
If you need to share with WSL, convert to NTFS and use Windows native one
Upvotes: 0