2010-12-28 9 views
24

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

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

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

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

+0

В чем дело? Почему вы застряли с использованием файловой системы FAT32? Какая система будет поддерживать только FAT32, но понимает символические ссылки? –

+0

Я объясняю это в своем комментарии к ответу 1 – fishbone

+4

Прошли ли вы на прогресс? Я пытаюсь сделать то же самое для USB-интерфейса моего автомобиля, только я хочу написать простой графический интерфейс для работы, а не с помощью шестнадцатеричного редактора. Стреляйте мне по электронной почте, если вы все еще интересуетесь этим проектом (удалите все подчеркивания): crush_meguy at yah_oo dot com. –

ответ

4

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

+0

Я действительно хочу сделать это на USB-устройстве для использования с моим автомобильным радио. Моя идея - подделывать плейлисты, так как они не поддерживаются устройством. Я могу представить, что поставщики используют предоставленные драйверы - вы думаете, что эти драйверы реализуют поведение, подобное chkdsk? Вы знаете, как Linux обрабатывает это? Знаете ли вы хороший инструмент для игры с этой идеей? На данный момент я использую шестнадцатеричный редактор. – fishbone

+0

@fishbone Можно только догадываться, как конкретный драйвер будет вести себя на определенном устройстве. Некоторые драйверы могут иметь встроенный chkdsk, но я сомневаюсь, что они будут включать в себя функции «исправления». Однако они могут отказаться от воспроизведения «испорченных» носителей. Обратите внимание, что для уточнения вопросов лучше отредактировать исходный вопрос, а не добавлять комментарии - это добавляет читаемости к вопросу и сразу привлекает внимание тех, кто читает вопросы. –

+1

Причина, по которой мне не нравятся вопросы редактирования, заключается в том, что правильные ответы станут неправильными. Я написал комментарий, так как я думал, что chkdsk - это программа только для окон, но я никогда не говорил, что буду использовать окна. – fishbone

5

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

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

Когда я снова открывает устройство в гекс-редактор ни один из моих модификаций меняются обратно (см ChkDsk вопрос в ответ # 1 - но, насколько я знаю, CHKDSK должна быть запущена вручную, в любом случае

.
+0

Как вы можете открыть таблицу распределения в редакторе, пожалуйста? –

+0

необходимо более подробные инструкции по редактированию записей каталога вручную (или примера) – eadmaster

1

MichaelPh размещены инструкции по суперпользователя:

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

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

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

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

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