Linux: Sistema de Arquivos INSENSITIVO a Caso

13

Quais métodos existem para tornar o sistema de arquivos Linux insensível a maiúsculas e minúsculas?

Eu tenho aplicativos asp.net desenvolvidos no Windows, mas sempre há problemas com maiúsculas / ortografia em mono ao colocá-lo no Linux.

Uma maneira é montar um compartilhamento SMB de host local em / var / www. Existem outros?

Dilema
fonte
14
Não seria mais fácil corrigir o aplicativo do que hackear o sistema operacional para solucionar o aplicativo quebrado?
Aaron Tate
2
Se este aplicativo da Web está sendo veiculado através do apache, você pode usar o mod_speling.
precisa
2
Isso soa como um caso óbvio de "Ou você pode ensinar a seus desenvolvedores web para ser coerente com a sua nomeação de arquivos, sob pena de dor"
Shadur

Respostas:

15

Se você está falando sobre insensibilidade a maiúsculas e minúsculas em aplicativos executados em Mono, você pode usar a IOMAPvariável de ambiente para dizer ao mono que ignore maiúsculas e minúsculas, assim como o Windows.

Veja os detalhes sobre seu uso aqui: http://www.mono-project.com/IOMap

tylerl
fonte
15

Existe um driver ext3 que não diferencia maiúsculas de minúsculas , mas, francamente, executar uma coisa dessas na produção me assusta um pouco, já que você está lançando seu próprio kernel personalizado com drivers corrigidos. (Sim, sim - nós fizemos isso o tempo todo "antigamente", mas isso foi, tipo, 1997 ...)

Existe uma implementação do FUSE, ciopfs , que também implementa a insensibilidade do caso. Seria muito menos assustador para mim usar na produção do que um kernel corrigido.

Você também pode usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, como VFAT, para a /var/wwwhierarquia de pastas. Eu usaria uma montagem de loopback nesse caso, para que você não precise mexer no particionamento de disco.

Evan Anderson
fonte
ciopfs é uma porcaria, eu tentei, ele apenas mapeia minúsculas para minúsculas, ignorando qualquer letra maiúscula ...
Quandary
1
@Quandary Run awk '/^ciopfs/ {print $2}' /proc/mountse isso produzirá o nome do diretório a ser usado. Depois de executar, ciopfs a/ b/você não deve acessar ou modificar arquivos em a/.
@Quandary a restrição em minúsculas está escrita diretamente na página do projeto e é bastante óbvia, você tentou aprimorá-la para lidar com seu caso de uso ou pelo menos RTFM antes de usar?
Michael Shigorin
8

Necromante.
Respondendo a minha própria pergunta.
Isso é realmente possível.
Variante 1:
Crie um arquivo .dsk do tamanho X-MB (com dd) e, em seguida, crie um sistema de arquivos JSF nesse arquivo, com a opção O (compatibilidade do OS2 - = sem distinção entre maiúsculas e minúsculas)
e monte esse arquivo em loop na pasta desejada .

(apt-get install jfsutils)
dd if=/dev/zero of=jfs.dsk bs=1048576 count=150
mkfs.jfs -O jfs.dsk
mkdir -p /mnt/jfs
mount /volumes/jfs.dsk /mnt/jfs -t jfs -o loop
umount /mnt/jfs/

Variante 2:
Quando você instala o sistema operacional, particione o disco manualmente e crie outra partição com o formato JFS, que você montará onde quiser.
Quando tudo estiver instalado e funcionando, você poderá reformatar a partição com (aviso - isso apagará todos os dados dessa partição - verifique se você selecionou o correto e se ainda não possui dados):

desmonte a partição montada

umount /web

reformatar:

mkfs.jfs -O /dev/hda5

remontar a partição

mount /dev/hda5 /web

Agora corra

blkid

e você obtém a nova partição-uuid.
Agora vá para / etc / fstab e substitua o uuid antigo por / dev / hda5 pelo novo.

Se você estiver fazendo isso errado, consulte também
Bem-vindo ao modo de inicialização de emergência ...

Dilema
fonte
Então você lida com isso há sete anos e meio?!?! Você pensaria que agora os "desenvolvedores" com os quais está lidando já teriam saído da escola primária / fundamental.
Andrew Henle
3
Andrew Henle: Não, na verdade escolhemos outra solução - uma partição do Windows que diferencia maiúsculas de minúsculas (ext3). Agora, o problema voltou à tona com o .NET Core e essa é a solução que eu vim. Agora eu tenho uma partição Linux que não diferencia maiúsculas de minúsculas sem precisar de fusíveis / ciops, smb, hfs / hpfs +, extX-fs hackeados, montagem em loop ou qualquer coisa desse tipo. Esta é a maneira correta. E até agora, ninguém realmente respondeu à pergunta satisfatoriamente nos últimos 7 anos, então eu pensei que sim.
Quandary