Linux: Hệ thống tập tin Case-INSENSITIVE


13

Có những phương pháp nào để tạo ra trường hợp hệ thống tập tin Linux - TUYỆT VỜI?

Tôi có các ứng dụng asp.net được phát triển trên Windows, nhưng luôn có vấn đề về viết hoa / đánh vần trên đơn âm khi đưa nó lên Linux.

Một cách là gắn kết chia sẻ SMB localhost vào / var / www. Có ai khác không?


14
Sẽ không dễ dàng sửa ứng dụng hơn là hack hệ điều hành xung quanh ứng dụng bị hỏng phải không?
Aaron Tate

2
Là ứng dụng web này đang được phục vụ thông qua apache, bạn có thể sử dụng mod_speling.
Zoredache

2
Điều này nghe có vẻ như là một trường hợp khá rõ ràng của "Hoặc bạn có thể dạy các nhà phát triển web của mình nhất quán với cách đặt tên tệp của họ, về nỗi đau của nỗi đau"
Shadur

Câu trả lời:


15

Nếu bạn đang nói về trường hợp không nhạy cảm CHỈ trong các ứng dụng chạy dưới Mono, bạn có thể sử dụng IOMAPbiến môi trường để nói với mono để bỏ qua trường hợp giống như Windows.

Xem chi tiết về công dụng của nó tại đây: http://www.mono-project.com/IOMap


15

Có một trình điều khiển ext3 không nhạy cảm , nhưng thật lòng mà nói, việc chạy một thứ như vậy trong sản xuất sẽ làm tôi sợ một chút, vì bạn đang lăn kernel tùy chỉnh của riêng mình với các trình điều khiển được vá. (Yeah, yeah-- chúng tôi đã làm điều đó mọi lúc "trở lại trong ngày", nhưng đó là, như, 1997 ...)

Có một triển khai FUSE, ciopfs , cũng thực hiện tính không nhạy cảm của trường hợp. Điều đó sẽ ít đáng sợ hơn đối với tôi khi sử dụng trong sản xuất so với nhân đã vá.

Bạn cũng có thể sử dụng một hệ thống tệp không phân biệt chữ hoa chữ thường, như VFAT, cho /var/wwwhệ thống phân cấp thư mục. Tôi sẽ sử dụng mount loopback trong trường hợp đó, để bạn không phải làm phiền với việc phân vùng đĩa.


ciopfs là tào lao, tôi đã thử nó, nó chỉ ánh xạ chữ thường thành chữ thường, bỏ qua bất kỳ chữ hoa nào ...
Quandary

1
@Quandary Chạy awk '/^ciopfs/ {print $2}' /proc/mountsvà sẽ xuất tên của thư mục sẽ sử dụng. Sau khi bạn chạy, ciopfs a/ b/bạn không nên truy cập hoặc sửa đổi các tập tin dưới a/.

@Quandary ràng buộc chữ thường được viết ngay trên trang của dự án và khá rõ ràng, bạn đã thử cải thiện nó để xử lý trường hợp sử dụng của bạn hoặc ít nhất là RTFM trước khi sử dụng?
Michael Shigorin

8

Necromance.
Trả lời câu hỏi của riêng tôi.
Điều này thực sự có thể.
Biến thể 1:
Tạo tệp .dsk có kích thước X-MB (bằng dd), sau đó tạo hệ thống tệp JSF trên tệp đó, với tùy chọn O (tương thích OS2 - = không phân biệt chữ hoa)
Sau đó lặp lại tệp đó vào thư mục mong muốn .

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

Biến thể 2:
Khi bạn cài đặt HĐH, hãy phân vùng đĩa theo cách thủ công và tạo một phân vùng khác có định dạng JFS, mà bạn gắn kết vào bất cứ nơi nào bạn muốn có nó.
Khi mọi thứ đã hoạt động, bạn có thể định dạng lại phân vùng đó bằng (cảnh báo - điều này sẽ xóa tất cả dữ liệu trên phân vùng đó - đảm bảo bạn đã chọn đúng phân vùng và chưa có dữ liệu nào trên đó):

ngắt kết nối phân vùng

umount /web

định dạng lại:

mkfs.jfs -O /dev/hda5

kể lại phân vùng

mount /dev/hda5 /web

Bây giờ chạy

blkid

và bạn có được phân vùng mới - uuid.
Bây giờ hãy truy cập / etc / fstab và thay thế uuid cũ cho / dev / hda5 bằng cái mới.

Nếu bạn đang làm sai, xem thêm
Chào mừng bạn đến chế độ khởi động khẩn cấp ...


Vì vậy, bạn đã đối phó với điều này trong bảy năm rưỡi?!?! Bây giờ bạn nghĩ rằng các "nhà phát triển" mà bạn đang làm việc sẽ rời khỏi trường tiểu học / tiểu học.
Andrew Henle

2
@Andrew Henle: Không, chúng tôi thực sự đã chọn một giải pháp khác - phân vùng cửa sổ phân biệt chữ hoa chữ thường (ext3). Bây giờ vấn đề xuất hiện trở lại với .NET Core, và đây là giải pháp tôi đã đưa ra. Bây giờ tôi có một phân vùng Linux không phân biệt chữ hoa chữ thường mà không cần cầu chì / ciops, smb, hfs / hpfs +, một extX-fs bị hack, mount loop hoặc bất kỳ crap nào. Đây là cách thích hợp. Và cho đến nay, không ai thực sự trả lời câu hỏi một cách thỏa đáng trong 7 năm qua, vì vậy tôi nghĩ rằng tôi sẽ làm được.
Quandary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.