Linux: Файлова система обліку справ


13

Які методи існують для того, щоб зробити випадок файлової системи Linux НЕЧАСНИМ?

У мене є програми для asp.net, розроблені в Windows, але завжди виникають проблеми з великою літеристю та написанням моно, коли викладаєте його на Linux.

Один із способів - встановити локальний SMB-спільний доступ до / var / www. Чи є інші?


14
Чи не було б простіше виправити додаток, ніж зламати ОС для обходу зламаного додатка?
Аарон Тейт

2
Якщо цей веб-додаток подається через apache, ви можете використовувати mod_speling.
Зоредаче

2
Це звучить як досить очевидний випадок "Або ви можете навчити своїх веб-розробників бути узгодженими з назвою їх файлів,
боліючи

Відповіді:


15

Якщо ви говорите про нечутливість випадків ТІЛЬКИ в додатках, що працюють під Mono, ви можете використовувати IOMAPзмінну середовища, щоб сказати моно ігнорувати регістр так, як це робить 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 перед використанням?
Михайло Шигорін

9

Некромантування.
Відповідаючи на власне запитання.
Це дійсно можливо.
Варіант 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-розділ, не потребуючи запобіжника / ciops, smb, hfs / hpfs +, зламаного extX-fs, кріплення циклу або будь-якого з цього лайна. Це правильний шлях. І поки що насправді ніхто не відповідав на це питання задовільно за останні 7 років, тому я думав, що буду.
Четвер

Дякую, я працював. Люди, які дивляться на це у 2020 році, пам’ятають, що ядро ​​Linux 5.2 та e2fsprogs 1.45 додали підтримку case4old для ext4. Дивіться це: unix.stackexchange.com/questions/558977/…
Хорхе Янес Дієз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.