Linux: filesystem case-insensibile


13

Quali sono i metodi per rendere INSENSITIVE il filesystem Linux?

Ho applicazioni asp.net sviluppate su Windows, ma ci sono sempre problemi con l'uso di maiuscole / minuscole su mono quando lo metto su Linux.

Un modo è montare una condivisione SMB localhost su / var / www. Ce ne sono altri?


14
Non sarebbe più facile riparare l'applicazione che hackerare il sistema operativo per aggirare l'app rotta?
Aaron Tate,

2
Se questa web app viene offerta tramite apache, è possibile utilizzare mod_speling.
Zoredache,

2
Sembra un caso abbastanza ovvio di "O puoi insegnare ai tuoi sviluppatori web ad essere coerenti con la loro denominazione dei file, a pena di dolore"
Shadur

Risposte:


15

Se stai parlando di insensibilità ai casi SOLO nelle app in esecuzione su Mono, puoi utilizzare la IOMAPvariabile di ambiente per dire a mono di ignorare il caso proprio come fa Windows.

Vedi i dettagli sul suo utilizzo qui: http://www.mono-project.com/IOMap


15

C'è un driver ext3 senza distinzione tra maiuscole e minuscole , ma, francamente, eseguire una cosa del genere in produzione mi spaventerebbe un po ', dal momento che stai lanciando il tuo kernel personalizzato con driver con patch. (Sì, sì, lo abbiamo sempre fatto "indietro nel tempo", ma era, come, nel 1997 ...)

C'è un'implementazione di FUSE, ciopfs , che implementa anche l'insensibilità al caso. Sarebbe molto meno spaventoso da usare in produzione rispetto a un kernel con patch.

È inoltre possibile utilizzare un file system senza distinzione tra maiuscole e minuscole, come VFAT, per la /var/wwwgerarchia di cartelle. Userei un mount loopback in quel caso, in modo da non dover fare confusione con il partizionamento del disco.


ciopfs è una schifezza, l'ho provato, fa solo una mappatura minuscola a minuscola, ignorando qualsiasi maiuscola ...
Quandary

1
@Quandary Run awk '/^ciopfs/ {print $2}' /proc/mountse che produrrà il nome della directory da usare. Dopo aver eseguito ciopfs a/ b/non è necessario accedere o modificare i file in a/.

@Quandary il vincolo minuscolo è scritto proprio sulla pagina del progetto ed è piuttosto ovvio, hai provato a migliorarlo per gestire il tuo caso d'uso o almeno RTFM prima dell'uso?
Michael Shigorin,

8

Necromancing.
Rispondere alla mia domanda.
Questo è davvero possibile.
Variante 1:
creare un file .dsk di dimensioni X-MB (con dd), quindi creare un file system JSF su quel file, con l'opzione O (compatibilità OS2 - = senza distinzione tra maiuscole e minuscole)
Quindi montare in loop quel file nella cartella desiderata .

(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 si installa il sistema operativo, partizionare manualmente il disco e creare un'altra partizione con formato JFS, che si monta ovunque si desideri.
Quando tutto è attivo e funzionante, puoi riformattare quella partizione con (avviso - questo cancellerà tutti i dati su quella partizione - assicurati di aver selezionato quello giusto e non ci sono ancora dati):

smontare la partizione montata

umount /web

riformattare:

mkfs.jfs -O /dev/hda5

rimontare la partizione

mount /dev/hda5 /web

Adesso corri

blkid

e ottieni la nuova partizione-uuid.
Ora vai su / etc / fstab e sostituisci il vecchio uuid per / dev / hda5 con quello nuovo.

Se stai sbagliando, vedi anche
Benvenuti in modalità avvio di emergenza ...


Quindi hai avuto a che fare con questo per sette anni e mezzo?!?! Penseresti che ormai gli "sviluppatori" con cui hai a che fare sarebbero usciti dalla scuola elementare / elementare.
Andrew Henle,

3
@Andrew Henle: No, in realtà abbiamo scelto un'altra soluzione: una partizione di Windows sensibile al maiuscolo / minuscolo (ext3). Ora il problema è riemerso con .NET Core e questa è la soluzione che mi è venuta in mente. Ora ho una partizione Linux senza distinzione tra maiuscole e minuscole senza bisogno di fuse / ciops, smb, hfs / hpfs +, un extX-fs hackerato, loop mount o qualcos'altro di quella merda. Questo è il modo giusto. E finora, nessuno ha effettivamente risposto alla domanda in modo soddisfacente negli ultimi 7 anni, quindi ho pensato di farlo.
Quandary,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.