Como criar um disco virtual com um sistema de arquivos que diferencia maiúsculas de minúsculas no Windows 7?

Como criar um disco virtual com um sistema de arquivos que diferencia maiúsculas de minúsculas no Windows 7?

Não me importa qual sistema de arquivos será exatamente, só preciso que os caminhos dos arquivos funcionem com distinção entre maiúsculas e minúsculas.

Talvez um comportamento semelhante a um compartilhamento de samba na caixa Linux com distinção entre maiúsculas e minúsculas ativada. Isso seria perfeito, exceto que preciso que o disco seja armazenado localmente.

Existem drivers/ferramentas para isso?

Já experimentei alguns drivers ext2 para Windows que não funcionaram para essa finalidade :( (http://www.fs-driver.org/ehttp://www.fs-driver.org/)

Responder1

A resposta simples é não. A resposta longa é...

O NTFS armazena nomes de arquivos diferenciando maiúsculas de minúsculas (o NTFS pode ter README.txt e readme.txt no mesmo diretório), e até mesmo o gerenciador de arquivos do Windows pode gerenciar internamente solicitações que diferenciam maiúsculas de minúsculas para nomes de arquivos por meio de syscalls NtOpenFile / NtCreateFile.

Infelizmente para você, a função Win32 CreateFile (usada em todos os lugares, inclusive por fopen) chamará internamente NtCreateFile usando o sinalizador OBJ_CASE_INSENSITIVE, o que significa que todos os aplicativos que usam CreateFile verão seu sistema de arquivos com distinção entre maiúsculas e minúsculas. Na prática, isso significa que todos os aplicativos verão seu sistema de arquivos sem distinção entre maiúsculas e minúsculas, independentemente de seu sistema de arquivos realmente diferenciar maiúsculas de minúsculas.

A única maneira que consigo pensar para você praticamente forçar a distinção entre maiúsculas e minúsculas é escrever um driver de filtro que removerá o sinalizador OBJ_CASE_INSENSITIVE das solicitações de syscall recebidas, o que permitirá NTFS, EXT2 ou qualquer sistema de arquivos interno que você tenha que se comportar em seu padrão , diferenciando maiúsculas de minúsculas.

Responder2

De dentro do Windows, isso é possível, mas você precisa saber escrever C.

Na verdade, o NTFS armazena nomes com distinção entre maiúsculas e minúsculas(para suportar o subsistema POSIX). No entanto, o NTFS não oferece suporte a funções que diferenciam maiúsculas de minúsculas. Considerando que o NT foi originalmente escrito como um concorrente direto do UNIX, isso não é nenhuma surpresa.

http://support.microsoft.com/kb/100108

Link

http://www.netbsd.org/docs/pkgsrc/platforms.html#interix

Responder3

Parece que a única maneira é instalar um Linux virtualizado e compartilhar a unidade da VM com o Windows.

Tenho procurado na Internet a mesma solução, principalmente para verificar um repositório GIT de um sistema Linux que possui arquivos que diferem apenas no caso (não pregue por que eles estão lá - está além do meu controle). Mas parece que não há uma maneira relativamente simples de fazer isso, exceto escrever seu próprio subsistema ou integrar-se profundamente ao subsistema Interix (agora serviços Unix).

informação relacionada