чому частково вбудований об'єм vfat чутливий до регістру?


1

У мене дивне спостереження. Я змонтував файлову систему vfat так:

mount -t vfat -o loop vfat.vol mnt

Я очікував, що це буде нечутливо. І це до тих пір, поки довжина імені файлу не перевищує 8! Я не можу створити два різних файли: x1234567 і X1234567, але можу створити x12345678 та X12345678! Це 100% відтворюється з простим echo "abc" & gt; назва файлу. Що тут відбувається? Як зробити об'єм жиру 100% нечутливим?

Відповіді:


2

Це відбувається тому, що назви файлів довше 8 символів не підтримуються FAT безпосередньо, а через LFN розширення. FAT дійсно нечутливий до регістру, тому ви не можете створити x1234567 і X1234567 файлів. Однак, коли ви створюєте файли з довгими іменами, замість них створюються короткі назви файлів, а також запис LFN, що містить повне ім'я.

Тому при створенні файлів x12345678 і X12345678ці файли називають короткими іменами X12345~1 і X12345~2, які є дійсними і різними іменами FAT. Linux має розслаблене ставлення до перевірки унікальності записів LFN, тому ви в кінцевому підсумку створюєте дві записи, які розрізняються тільки по випадку; щось Windows не дозволить. Але це обмеження (або, скоріше, функція) Windows, а не файлова система FAT.

Sidenote: Напевно, ви також можете створити файл з ім'ям CON в linux на FAT тому.

Подивитися документація vfat для параметрів монтування, які визначають, як Linux повинен працювати з іменами файлів.


Отже, я вважаю, що це помилка в драйвері linux. Дякую.
ardabro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.