Ссылки файловой системы на хранилище в формате FAT32

Я знаю FAT32, а также FAT16/12 не поддерживают символические ссылки и не жесткие ссылки. Однако я придумал эту идею:

Спецификация FAT описывает, что каждый файл связан с записью каталога. По моему мнению, можно сказать, что файл-запись в каталоге так или иначе указывает на содержимое файла.

Итак, как я могу определить две записи каталога, которые указывают на один и тот же файл-контент? Или, что может помешать мне это сделать?

Случай использования: У меня есть запоминающее устройство USB для моего автомобильного радиоприемника, и я хочу использовать каталоги в качестве плейлистов, поскольку программное обеспечение радио не поддерживает плейлисты. Поэтому для меня не важно, как Windows ведет себя при этом.

Ответ 1

То, о чем вы говорите ( "две записи каталогов, указывающие на один и тот же файл-контент" ) - это жесткие ссылки. chkdsk сообщит о них как о перекрестных ссылках и сломает их, "восстановив" файлы (фактически сделав копии).

Ответ 2

Это должно работать для простых вопросов. То есть он работает как хак/обходной путь, и я не знаю, что произойдет, если вы переименуете/переместите/удалите файлы. Таким образом, вы не должны делать это на своем основном hdd.

Я редактировал записи каталога вручную с помощью шестнадцатеричного редактора. Я модифицировал кластеры, а также размеры файлов и успешно подделывал жесткие ссылки. У моего автомобильного радио и даже Windows (7, 64Bit) нет проблем с воспроизведением оригинальных и "жестко связанных" mp3 файлов, которые я использовал.

Когда я снова открываю устройство в шестнадцатеричном редакторе, ни одна из моих модификаций не изменена (см. вопрос chkdsk в ответе №1), но насколько я знаю, chkdsk нужно запускать вручную, в любом случае.

Ответ 3

MichaelPh отправил инструкции на SuperUser:

https://superuser.com/a/486829/51237

Возможно использование Disk Probe (только на XP, я еще не получил его для записи изменений на Win7), чтобы изменить кластер ссылки FAT Directory. Этот метод можно использовать для перенаправления папки DCIM (или подпапки), чтобы указать на папку, используемую другим устройством сканирования.

Является ли это хорошей идеей или нет, это другой вопрос, и вы используете это на свой страх и риск.

  • Вставьте карту Eye-Fi либо в нее USB Card Reader, либо непосредственно в слот SSD, и обратите внимание на букву диска, которую он установил (предполагается, что это просто F:\для простоты).
  • Убедитесь, что все окна Windows Explorer для карты и подкаталогов закрыты.
  • Запустить пробник диска
  • Выберите диски → Логический том
  • В диалоговом окне "Открыть логический том" дважды щелкните F:\в списке "Логические тома"
  • Нажмите кнопку "Установить активную" для "Ручка F:". Вы можете оставить ручку как доступную только для чтения.
  • Выберите Tools- > Search Sectors...
  • Проверьте исчерпывающий поиск, введите DCIM в поле ввода символов для поиска и поиска
  • Вы должны найти совпадение (мой - 8192). Выберите "Нет" в диалоговом окне "Найдено совпадение...", чтобы отменить оставшуюся часть поиска.
  • Выберите Sectors- > Read и увеличьте число секторов как минимум до двух, чтобы включить всю таблицу каталогов.
  • Найдите DCIM в ASCII справа от экрана Disk Probe, это начало записи FAT для каталога. Запишите шестнадцатеричное значение 27-го байта записи (каждая запись - 32 байта), это ссылка на кластер каталога. Это значение требует, чтобы вернуть DCIM-каталог обратно в нормальное использование, если это необходимо.
  • Найдите запись для каталога, в который вы хотите перенаправить DCIM, и снова запишите 27-й байт в записи.
  • Вернитесь к 27-му байту записи DCIM и измените его на значение, указанное на шаге 11.
  • Выберите "Sectors- > Write" и нажмите "Write it" в диалоговом окне "Write Sector". Предупреждение появится, если вы открыли сектора только для чтения. Да, чтобы перезаписать, если вы счастливы внести изменения.

Открытие каталога DCIM в проводнике Windows теперь покажет содержимое целевого каталога.