Linux: sistema de archivos insensible a mayúsculas y minúsculas

13

¿Qué métodos hay para hacer que el sistema de archivos Linux sea INSENSIBLE para mayúsculas y minúsculas?

Tengo aplicaciones de asp.net desarrolladas en Windows, pero siempre hay problemas con las mayúsculas / ortografía en mono cuando lo pongo en Linux.

Una forma es montar un recurso compartido SMB localhost en / var / www. ¿Hay otros?

Dilema
fuente
14
¿No sería más fácil arreglar la aplicación que hackear el sistema operativo para evitar la aplicación rota?
Aaron Tate
2
Si esta aplicación web se sirve a través de Apache, podría usar mod_speling.
Zoredache
2
Esto suena como un caso bastante obvio de "O puede enseñar a sus desarrolladores web a ser coherentes con sus nombres de archivos, bajo pena de dolor"
Shadur

Respuestas:

15

Si solo está hablando de la insensibilidad a mayúsculas y minúsculas dentro de las aplicaciones que se ejecutan en Mono, puede usar la IOMAPvariable de entorno para decirle a mono que ignore las mayúsculas y minúsculas al igual que Windows.

Vea los detalles sobre su uso aquí: http://www.mono-project.com/IOMap

tylerl
fuente
15

Hay un controlador ext3 que no distingue entre mayúsculas y minúsculas , pero, francamente, ejecutar tal cosa en producción me asustaría un poco, ya que está rodando su propio núcleo personalizado con controladores parcheados. (Sí, sí, lo hacíamos todo el tiempo "en el día", pero eso fue, como, 1997 ...)

Hay una implementación FUSE, ciopfs , que también implementa la insensibilidad a mayúsculas y minúsculas. Sería mucho menos aterrador para mí usarlo en producción que un kernel parcheado.

También podría usar un sistema de archivos que no distinga entre mayúsculas y minúsculas, como VFAT, para la /var/wwwjerarquía de carpetas. En ese caso, usaría un montaje de bucle invertido, de modo que no tenga que meterse con la partición de su disco.

Evan Anderson
fuente
ciopfs es una mierda, lo intenté, solo asigna minúsculas a minúsculas, ignorando las mayúsculas ...
Dilema
1
@Quandary Run awk '/^ciopfs/ {print $2}' /proc/mountsy eso generará el nombre del directorio a usar. Después de ejecutar, ciopfs a/ b/no debe acceder ni modificar archivos en a/.
@Quandary la restricción en minúsculas está escrita directamente en la página del proyecto y es bastante obvio, ¿intentaste mejorarla para manejar tu caso de uso o al menos RTFM antes de usarla?
Michael Shigorin
8

Nigromancia
Respondiendo mi propia pregunta.
Esto es de hecho posible.
Variante 1:
Cree un archivo .dsk de tamaño X-MB (con dd), luego cree un sistema de archivos JSF en ese archivo, con la opción O (compatibilidad con OS2 - = insensible a mayúsculas y minúsculas)
Luego monte en bucle ese archivo en la carpeta deseada .

(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:
cuando instale el sistema operativo, particione manualmente el disco y cree otra partición con formato JFS, que monte en el lugar donde desee tenerla.
Cuando todo esté en funcionamiento, puede volver a formatear esa partición con (advertencia: esto borrará todos los datos de esa partición, asegúrese de haber seleccionado la correcta y de que todavía no tenga datos):

desmontar la partición montada

umount /web

reformatear:

mkfs.jfs -O /dev/hda5

remontar la partición

mount /dev/hda5 /web

Ahora corre

blkid

y obtienes la nueva partición-uuid.
Ahora vaya a / etc / fstab, y reemplace el antiguo uuid para / dev / hda5 con el nuevo.

Si está haciendo esto mal, consulte también
Bienvenido al modo de arranque de emergencia ...

Dilema
fuente
¡¿Así que has estado lidiando con esto durante siete años y medio?!?! Pensarías que los "desarrolladores" con los que estás lidiando habrían salido de la escuela primaria / primaria.
Andrew Henle
3
@Andrew Henle: No, en realidad elegimos otra solución: una partición de Windows sensible a mayúsculas y minúsculas (ext3). Ahora el problema resurgió con .NET Core, y esta es la solución que se me ocurrió. Ahora tengo una partición Linux que no distingue entre mayúsculas y minúsculas sin necesidad de fusible / ciops, smb, hfs / hpfs +, un extX-fs pirateado, montaje en bucle o cualquiera de esos tipos de basura. Esta es la forma correcta. Y hasta ahora, nadie respondió la pregunta satisfactoriamente en los últimos 7 años, así que pensé que lo haría.
Dilema el