Linux: нестабильная файловая система


13

Какие существуют методы, чтобы сделать файловую систему Linux безразличной?

У меня есть приложения asp.net, разработанные для Windows, но всегда есть проблемы с использованием заглавных букв / орфографии в моно при их установке в Linux.

Один из способов - смонтировать локальный общий ресурс SMB в / var / www. Есть ли другие?


14
Не проще ли исправить приложение, чем взломать ОС, чтобы обойти сломанное приложение?
Аарон Тейт,

2
Если это веб-приложение обслуживается через Apache, вы можете использовать mod_speling.
Зоредаче

2
Это звучит как довольно очевидный случай: «Или вы можете научить своих веб-разработчиков соответствовать именам своих файлов под страхом боли»
Shadur

Ответы:


15

Если вы говорите только о нечувствительности к регистру в приложениях, работающих под Mono, вы можете использовать IOMAPпеременную окружения, чтобы указать mono игнорировать регистр, как это делает Windows.

Подробности о его использовании смотрите здесь: http://www.mono-project.com/IOMap


15

Есть не зависящий от регистра драйвер ext3 , но, честно говоря, запуск такого продукта в рабочей среде может меня немного напугать, поскольку вы используете собственное ядро ​​с исправленными драйверами. (Да, да ... мы делали это все время "назад в день", но это было, как, например, 1997 ...)

Существует реализация FUSE, ciopfs , которая также реализует нечувствительность к регистру. Это было бы намного менее страшно для меня использовать в производстве, чем исправленное ядро.

Вы также можете использовать файловую систему без учета регистра, такую ​​как VFAT, для /var/wwwиерархии папок. В этом случае я бы использовал петлевое монтирование, чтобы вам не пришлось возиться с разбиением диска.


ciopfs - это дерьмо, я попробовал его, он отображает только строчные и строчные буквы, игнорируя все прописные ...
Задор

1
@Quandary Запустите, awk '/^ciopfs/ {print $2}' /proc/mountsи это выведет имя каталога для использования. После запуска ciopfs a/ b/вы не должны открывать или изменять файлы в a/.

@Quandary Ограничение в нижнем регистре написано прямо на странице проекта и является довольно очевидным, пытались ли вы улучшить его для обработки вашего варианта использования или хотя бы RTFM перед использованием?
Михаил Шигорин

8

Necromancing.
Отвечая на мой собственный вопрос.
Это действительно возможно.
Вариант 1.
Создайте .dsk-файл размером X-MB (с dd), затем создайте JSF-файловую систему для этого файла с параметром O (совместимость с OS2 - = без учета регистра).
Затем смонтируйте этот файл в нужную папку. ,

(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/

Вариант 2:
Когда вы устанавливаете ОС, вручную разбиваете диск на разделы и создаете другой раздел с форматом JFS, который вы монтируете туда, где вы хотите его иметь.
Когда все работает, вы можете переформатировать этот раздел с помощью (предупреждение - это удалит все данные в этом разделе - убедитесь, что вы выбрали правильный, и у вас пока нет данных):

размонтировать смонтированный раздел

umount /web

переформатировать:

mkfs.jfs -O /dev/hda5

перемонтировать раздел

mount /dev/hda5 /web

Теперь беги

blkid

и вы получите новый раздел-UUID.
Теперь перейдите в / etc / fstab и замените старый uuid для / dev / hda5 новым.

Если вы делаете это неправильно, см. Также
Добро пожаловать в режим аварийной загрузки ...


То есть вы занимались этим семь с половиной лет?!?! Вы могли бы подумать, что «разработчики», с которыми вы имеете дело, вышли бы из начальной / начальной школы.
Эндрю Хенле

3
@ Andrew Henle: Нет, мы на самом деле выбрали другое решение - регистр Windows с учетом регистра (ext3). Теперь проблема всплыла с .NET Core, и это решение, которое я придумал. Теперь у меня есть нечувствительный к регистру раздел Linux без использования fuse / ciops, smb, hfs / hpfs +, взломанного extX-fs, монтирования цикла или любого другого дерьма. Это правильный путь. И до сих пор никто не ответил на вопрос удовлетворительно за последние 7 лет, поэтому я подумал, что смогу.
затруднительное
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.