Frage Linux: Case-INSENSITIVE Dateisystem


Welche Methoden gibt es, um das Linux-Dateisystem CASE-INSENSITIVE zu machen?

Ich habe asp.net-Anwendungen entwickelt unter Windows, aber es gibt immer Probleme mit Groß- und Kleinschreibung auf Mono, wenn Sie es auf Linux setzen.

Eine Möglichkeit besteht darin, eine SMB-Freigabe für localhost an / var / www anzuhängen. Gibt es noch andere?


11
2018-03-23 12:17


Ursprung


Wäre es nicht einfacher, die Anwendung zu reparieren, als das Betriebssystem zu hacken, um die kaputte App zu umgehen? - Aaron Tate
Wird diese Web-App über Apache bereitgestellt, können Sie mod_speling verwenden. - Zoredache
Das klingt nach einem ziemlich offensichtlichen Fall von "Oder Sie können Ihren Web-Entwicklern beibringen, mit der Dateinamensgebung übereinzustimmen, bei Schmerzen" - Shadur


Antworten:


Da ist ein case-insensitive ext3-Treiber, aber, ehrlich gesagt, würde so etwas in der Produktion laufen, würde mich ein wenig erschrecken, da Sie Ihren eigenen angepassten Kernel mit gepatchten Treibern erstellen. (Yeah, yeah ... das haben wir die ganze Zeit gemacht "zurück in den Tag", aber das war, wie, 1997 ...)

Es gibt eine FUSE-Implementierung, ciophs, das implementiert auch die Groß- / Kleinschreibung. Das wäre für mich viel weniger beängstigend in der Produktion als ein gepatchter Kernel.

Sie können auch ein Dateisystem verwenden, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird, wie z. B. VFAT /var/www Ordnerhierarchie. Ich würde in diesem Fall ein Loopback-Mount verwenden, damit Sie sich nicht mit Ihrer Festplattenpartitionierung herumschlagen müssen.


15
2018-03-23 12:29



ciopfs ist Mist, ich habe es ausprobiert, es wird nur Kleinbuchstaben auf Kleinbuchstaben abgebildet und ignoriert Großbuchstaben. - Quandary
@Quadary ausführen awk '/^ciopfs/ {print $2}' /proc/mounts und das wird den Namen des zu verwendenden Verzeichnisses ausgeben. Nach dem Lauf ciopfs a/ b/ Sie sollten nicht auf Dateien zugreifen oder diese ändern a/.
@Quandary die Kleinschreibung ist direkt auf der Projektseite geschrieben und ist ziemlich offensichtlich tbh, haben Sie versucht, es zu verbessern, um Ihren Anwendungsfall oder zumindest RTFM vor der Verwendung zu behandeln? - Michael Shigorin


Wenn Sie NUR innerhalb von Apps, die unter Mono laufen, über die Groß- und Kleinschreibung der Groß- und Kleinschreibung sprechen, können Sie die IOMAP Umgebungsvariable, um zu sagen, dass mono genau wie Windows ignoriert werden soll.

Siehe die Details zur Verwendung hier: http://www.mono-project.com/IOMap


14
2018-04-06 19:18





Nekromantieren.
Beantworte meine eigene Frage.
Dies ist in der Tat möglich.
Variante 1:
Erstellen Sie eine .dsk-Datei der Größe X-MB (mit dd), dann erstellen Sie ein JSF-Dateisystem für diese Datei, mit Option O (OS2-Kompatibilität - = Groß- / Kleinschreibung nicht beachten)
Dann mounten Sie diese Datei in einen gewünschten Ordner.

(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:
Wenn Sie das Betriebssystem installieren, partitionieren Sie die Festplatte manuell und erstellen Sie eine andere Partition mit dem Format JFS, die Sie an beliebiger Stelle mounten müssen.
Wenn alles läuft und läuft, können Sie die Partition neu formatieren (Achtung - dies löscht alle Daten auf dieser Partition - stellen Sie sicher, dass Sie die richtige ausgewählt haben und noch keine Daten darauf haben):

Hängen Sie die bereitgestellte Partition aus

umount /web

neu formatieren:

mkfs.jfs -O /dev/hda5

mounten Sie die Partition neu

mount /dev/hda5 /web

Jetzt lauf

blkid

und du bekommst die neue Partition-Uuid.
Gehe nun zu / etc / fstab und ersetze die alte Uuid für / dev / hda5 durch die neue.

Wenn du das falsch machst, siehe auch
Willkommen im Notfall-Boot-Modus ...


6
2017-10-05 21:05



Also hast du schon seit siebeneinhalb Jahren damit zu tun?!?! Du würdest denken, dass die "Entwickler", mit denen du es zu tun hast, es aus der Grundschule geschafft hätten. - Andrew Henle
@Andrew Henle: Nein, wir haben tatsächlich eine andere Lösung gewählt - eine Windows-Partition, bei der die Groß- / Kleinschreibung beachtet wird (ext3). Jetzt tauchte das Problem mit .NET Core wieder auf, und das ist die Lösung, die ich mir ausgedacht habe. Jetzt habe ich eine Linux-Partition, bei der die Groß- und Kleinschreibung nicht beachtet wird, ohne fuse / ciops, smb, hfs / hpfs +, einen gehackten extX-fs, loop mount oder irgendeinen anderen Mist. Dies ist der richtige Weg. Und bis jetzt hat niemand die Frage in den letzten 7 Jahren zufriedenstellend beantwortet, also dachte ich, ich würde es tun. - Quandary