5

В Интернете имеется достаточное количество справочных материалов, в которых говорится, что максимальная длина метки для тома exFAT должна составлять 11 символов. Однако есть два способа превзойти это:

  1. Используйте инструмент Linux exfatlabel находящийся в пакете exfat -utils;

  2. Отформатируйте USB-устройство с помощью параметра "Формат" в контекстном меню "Щелкните правой кнопкой мыши на диске" в Windows 7. Обратите внимание, что та же опция в Windows 8.1 больше не позволяет использовать метки длиной более 11 символов.

Оба вышеперечисленных допускают использование метки тома длиной до 15 символов без каких-либо других явных негативных последствий.

Есть идеи о том, что здесь происходит? Тот факт, что Microsoft исправила эту проблему с переходом с Windows 7 на Windows 8.1, свидетельствует о том, что это, вероятно, ошибка или какое-то другое неопределенное или иное сомнительное поведение.

1 ответ1

5

exFAT сохраняет метку тома в специальной записи каталога. Размер всей записи всегда составляет 32 байта, поэтому записи "имя файла" и "метка тома" имеют 30 байтов пространства для самого текста - это означает, что технически можно сохранить 15 кодовых точек UCS-2 . (Метка тома представляет собой ровно одну запись, а имена файлов могут занимать несколько раз.)

Однако в спецификации exFAT 1.0 в патенте США 20090164440 (стр. 21, таблица 23) говорится, что допустимый диапазон байтов длины метки находится в диапазоне от 0 до 11, и отмечается оставшееся пространство записи каталога как "зарезервированное".

Поэтому я предполагаю, что Microsoft решила сознательно ограничить размер ярлыков exFAT тем же размером, что и FAT, чтобы уменьшить проблемы совместимости с другим программным обеспечением, например, прошивками устройств, которые сложно обновлять. (Возможно, другая реализация пыталась разделить код между FAT и exFAT, и длинные метки приводили к сбою?)

(FAT хранит метки тома точно таким же образом, поэтому он имеет ограничение в 11 байтов из-за использования поля имени файла 8.3.)

Между тем exfat-utils либо не был записан точно в спецификации (возможно, его части были перепроектированы), либо просто не заботится об этой проблеме и полностью использует доступное пространство.

Так что длинные метки нестандартны, но, вероятно, безопасны в использовании - маловероятно, что эти запасные байты когда-либо будут использованы для чего-либо еще, поскольку Microsoft знает, что их повторное использование будет конфликтовать со старыми 15-байтовыми метками, которые люди создавали в прошлом. Если они разрешили это в Win7, они должны поддерживать это долгое время.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .