Linux: нестабильная файловая система
Какие существуют методы, чтобы сделать файловую систему Linux безразличной?
У меня есть приложения asp.net, разработанные для Windows, но всегда есть проблемы с использованием заглавных букв / орфографии в моно при их установке в Linux.
Один из способов - смонтировать локальный общий ресурс SMB в /var/www. Есть ли другие?
6 ответов
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 новым.
Если вы делаете это неправильно, см. Также
Добро пожаловать в режим экстренной загрузки...
Если вы говорите только о нечувствительности к регистру в приложениях, работающих под Mono, вы можете использовать IOMAP
переменная окружения, чтобы сказать моно игнорировать регистр, как это делает Windows.
Подробности о его использовании смотрите здесь: http://www.mono-project.com/IOMap
Есть нечувствительный к регистру драйвер ext3, но, честно говоря, запуск такого продукта в производственном процессе меня немного напугает, так как вы запускаете собственное ядро с исправленными драйверами. (Да, да... мы делали это все время "назад в день", но это было, как, например, 1997...)
Существует реализация FUSE, ciopfs, которая также реализует нечувствительность к регистру. Это было бы намного менее страшно для меня использовать в производстве, чем исправленное ядро.
Вы также можете использовать нечувствительную к регистру файловую систему, такую как VFAT, для /var/www
иерархия папок. В этом случае я бы использовал петлевое монтирование, чтобы вам не пришлось возиться с разбиением диска.
Вы можете создать файловую систему XFS с помощьюversion=ci
который:
позволяет выполнять поиск по имени файла и каталогам версии 2 только в формате ASCII без учета регистра. В именах файлов сохраняется регистр, то есть имена сохраняются в каталогах в том регистре, в котором они были созданы.
# truncate --size=1G /tmp/test-xfs.img
# mkfs -t xfs -n version=ci /tmp/test-xfs.img
meta-data=/tmp/test-xfs.img isize=512 agcount=4, agsize=65536 blks
…
naming =version 2 bsize=4096 ascii-ci=1, ftype=1
…
# mkdir /tmp/test-xfs
# mount -o loop /tmp/test-xfs.img /tmp/test-xfs
# touch /tmp/test-xfs/aBc
# ls /tmp/test-xfs
aBc
# ls /tmp/test-xfs/abc /tmp/test-xfs/AbC
/tmp/test-xfs/abc /tmp/test-xfs/AbC
# umount /tmp/test-xfs
# rm /tmp/test-xfs.img
@Quandary Я попробовал пойти по пути JFS, создав img с опцией -O. Но для меня все равно выдает ошибки. Например, я получаю:
System.InvalidOperationException
The view 'Logon' or its master was not found. The following locations were searched:
~/Views/Account/Logon.aspx
~/Views/Account/Logon.ascx
~/Views/Shared/Logon.aspx
~/Views/Shared/Logon.ascx
Файл aspx на самом деле называется
LogOn.aspx
. Это помогло решить несколько проблем, но я все равно получаю ошибки. К сожалению, я все еще нахожусь на 18.04, поэтому не могу попробовать способ ext4.
Вы можете сделать набор данных ZFS нечувствительным к регистру, установив параметрcasesensitivity
свойство:
zfs set casesensitivity=insensitive pool/dataset
Кроме того, вы получаете все обычные преимущества ZFS, такие как исправление ошибок, сжатие, моментальные снимки,zfs send
резервное копирование, которое на несколько порядков быстрее, чемrsync
, и т. д.
Мне еще предстоит использовать это на реальном сервере (потому что я не запускаю программное обеспечение Windows на серверах), но я использую его в домашних системах для игровых библиотек Steam (у меня есть разные наборы данных для собственных игр Linux и игр Windows для запуска с Proton/WINE — наборы данных Windows нечувствительны к регистру, поскольку разработчики Windows небрежно относятся к верхнему/нижнему регистру в именах файлов/каталогов).