“não pode criar link físico X a Y: Operação não permitida” na unidade ext2 do cygwin cp -al

0

/ cygdrive / d / é um disco rígido USB formatado como ext2 e montado com ext2fsd .

Quando tento cp -al /cygdrive/d/X /cygdrive/d/Y , onde X é um arquivo, recebo o erro no título.

Coisas que tentei / verificadas

Eu fiz chmod -R 777 /cygdrive/d , mas ainda obtenho o mesmo resultado.

Estou executando como administrador local, que é o proprietário de / cygdrive / d.

X é um arquivo, não um diretório.

Windows Server 2012 R2 executando o cygwin64 a partir de hoje.

Ele é ext2 porque eu posso, por exemplo, touch /cygdrive/d/filename_with_a_colon:in_it e ele funciona e posso ver com ls . Para não mencionar, diz isso no ext2fsd e no Gerenciador de Disco do Windows.

Ironicamente, a mesma sintaxe em uma unidade NTFS funciona bem e cria um hardlink NTFS.

Eu também tentei reformatar a unidade como ext3, com os mesmos resultados. Eu tinha percebi que o ext2 tem mais chances de ser totalmente suportado por ser mais antigo que ext3 / 4, mas eu acho que isso não faz diferença.

A questão

Como posso criar hardlinks simples do ext2 com o cygwin?

    
por Kev 25.03.2015 / 22:36

1 resposta

2

O Windows realmente suporta links físicos. No entanto, a documentação em CreateHardLink diz tudo:

This function is only supported on the NTFS file system

Esta limitação é provavelmente codificada. Como o ext2fsd claramente não é NTFS, o Windows se recusará a criar hard links nele.

O Cygwin fornece compatibilidade com POSIX API (de tipos) no topo das APIs do Windows. Isso significa que ele também chama CreateHardLink e está sujeito às mesmas limitações como mklink e outros softwares do Windows.

Muitas ferramentas do pacote e2fsprogs (como mke2fs , e2fsck , resize2fs , ...) operam diretamente no disco, sem depender de drivers do sistema de arquivos. É por isso que o sistema de arquivos precisa ser desmontado antes de usá-los para alterar as coisas. É também por isso que eles podem trabalhar sem que o Windows (nativamente) consiga acessar o ext2 / 3/4.

    
por 26.03.2015 / 14:35