Ссылки на файловую систему в отформатированном хранилище FAT32 - PullRequest
25 голосов
/ 28 декабря 2010

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

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

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

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

Ответы [ 3 ]

5 голосов
/ 28 декабря 2010

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

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

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

4 голосов
/ 28 декабря 2010

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

2 голосов
/ 02 января 2013

MichaelPh разместил инструкции на SuperUser:

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

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

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

  1. Вставьте карту Eye-Fi либо в устройство чтения карт USB, либо непосредственно в слот SSD и запишите букву диска, на которой она установлена ​​(предполагается, что это F: \ для простоты)
  2. Убедитесь, что все окна Windows Explorer для карты и подкаталогов закрыты.
  3. Запустить дисковый пробник
  4. Выберите Диски-> Логический том
  5. В диалоговом окне «Открыть логический том» дважды щелкните F: \ в списке «Логические тома»
  6. Нажмите кнопку «Установить активную» для ручки «F:» был выбран как. Вы можете оставить ручку только для чтения.
  7. Выберите Инструменты-> Поиск секторов ...
  8. Проверьте исчерпывающий поиск, введите DCIM в поле Введите символы для поиска и найдите
  9. Вы должны найти совпадение (у меня 8192). Выберите Нет в диалоговом окне «Найдено совпадение ...», чтобы отменить оставшуюся часть поиска.
  10. Выберите Сектора-> Чтение и увеличьте Число секторов как минимум до двух, чтобы включить всю таблицу каталогов.
  11. Найдите DCIM в ASCII в правой части экрана Disk Probe, это начало записи FAT для каталога. Запишите шестнадцатеричное значение 27-го байта записи (каждая запись - 32 байта), это ссылка на кластер каталогов. Это значение требуется для возврата каталога DCIM к обычному использованию, если требуется.
  12. Найдите запись для каталога, в который вы хотите перенаправить DCIM, и снова запишите 27-й байт в записи.
  13. Вернитесь к 27-му байту записи DCIM и измените его на значение, указанное в шаге 11.
  14. Выберите Sectors-> Write и затем нажмите Write it в диалоговом окне Write Sector. Появится предупреждение, если вы открыли сектора только для чтения. Да, чтобы перезаписать, если вы готовы внести изменения.

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

...