Ссылки на файловую систему в отформатированном хранилище FAT32
Я знаю, что FAT32, а также FAT16/12 не поддерживают символические ссылки или жесткие ссылки. Однако я пришел с этой идеей:
Спецификация FAT описывает, что каждый файл связан с записью каталога. В моем понимании можно сказать, что запись файла в каталоге так или иначе указывает на содержимое файла.
Итак, как я могу определить две записи каталога, которые указывают на один и тот же файл? Или что может помешать мне сделать это?
Вариант использования: у меня есть запоминающее устройство USB для автомобильного радиоприемника, и я хочу использовать каталоги в качестве списков воспроизведения, поскольку программное обеспечение радио не поддерживает списки воспроизведения. Поэтому для меня не важно, как ведет себя Windows при этом.
3 ответа
То, о чем вы говорите ("две записи каталога, указывающие на одно и то же содержимое файла"), - это жесткие ссылки. chkdsk сообщит о них как о перекрестных ссылках и разорвет их, "восстанавливая" файлы (фактически создавая копии).
Это должно работать для простых вопросов. Т.е. это работает как хак / обходной путь, и я не знаю, что произойдет, если вы переименуете / переместите / удалите файлы. Таким образом, вы не должны делать это на своем главном жестком диске.
Я отредактировал записи каталога вручную, используя шестнадцатеричный редактор. Я изменил кластеры, а также размеры файлов и успешно подделал жесткие ссылки. Моя автомагнитола и даже Windows (7, 64-битная) не имеют проблем с воспроизведением оригинальных и "жестко связанных" mp3-файлов, которые я использовал.
Когда я снова открываю устройство в hex-редакторе, ни одна из моих модификаций не изменяется обратно (см. Вопрос chkdsk в ответе № 1 - но, насколько я знаю, chkdsk нужно запускать вручную, в любом случае.
MichaelPh разместил инструкции на SuperUser:
/questions/38924494/skryitie-setki-s-pomoschyu-klavishi-esc/38924509#38924509
Можно использовать Disk Probe (только на XP, я пока не получил его для записи изменений на Win7), чтобы изменить кластер, на который ссылается каталог FAT. Этот метод можно использовать для перенаправления папки DCIM (или подпапки), чтобы указать папку, используемую другим сканирующим устройством.
Является ли это хорошей идеей или нет, это другой вопрос, и вы используете это на свой страх и риск.
- Вставьте карту Eye-Fi в устройство чтения карт USB или прямо в слот SSD и запишите букву диска, на которой она установлена (предполагается, что это F:\ для простоты)
- Убедитесь, что все окна Windows Explorer для карты и подкаталогов закрыты.
- Запустить Disk Probe
- Выберите Диски-> Логический том
- В диалоговом окне "Открыть логический том" дважды щелкните F:\ в списке "Логические тома".
- Нажмите кнопку "Установить активную", чтобы ручка F: была выбрана как. Вы можете оставить ручку только для чтения на данный момент.
- Выберите Инструменты-> Поиск секторов...
- Проверьте исчерпывающий поиск, введите 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 теперь покажет содержимое целевого каталога.