Windows does indeed support hard links. However, the documentation on CreateHardLink
says it all:
This function is only supported on the NTFS file system
This limitation is probably hard-coded. Because ext2fsd is clearly not NTFS, Windows will refuse to create hard links on it.
Cygwin provides POSIX API compatibility (of sorts) on top of Windows APIs. This means that it ultimately also calls CreateHardLink
and is subject to the same limitations like mklink
and other Windows software.
Many tools of the e2fsprogs package (like mke2fs
, e2fsck
, resize2fs
, ...) operate directly on the disk, without relying on filesystem drivers. That’s why the filesystem has to be unmounted before using them to change stuff. This is also why they can work without Windows (natively) being able to access ext2/3/4 at all.