реклама на сайте
подробности

 
 
> Кто еще хорошо помнит как устроен FAT?
Allregia
сообщение Oct 18 2016, 18:49
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Вопрос можео несколько глуповатый - на диске с ФАТ 2 файла, большой и маленький.
Если файлу поставить аттрибут "System", вроде так метятся неперемещаемые файлы?
Гарантирует ли это, что при перезаписи файла он запишется в те-же сектора?

Правда, если файл сначала удалят, а потом на его место запишут другой, то тогда он уже не попадет на те-же сектора?
А если я скорректирую бут-сектор, что так Root Entry=2, а в FAT вообще все незанятые кластеру пропишу как BAD, то если удалить только один файл, а потом писать снова, ему деваться некуда будет, только в те-же сектра где он был?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
controller_m30
сообщение Oct 20 2016, 23:01
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Я недавно делал USB MSD с программной генерацией: MBR, BS, FAT, Root, и тремя файлами в корневом каталоге. Два файла фиксированной длины, и один переменной, который иногда должен переписываться. Вся "флешка" объёмом около 1мб. Файловая система FAT16.
Вроде бы здесь о похожем говорят rolleyes.gif В общем приведу по памяти, вдруг то что надо.

При перезаписи переменного файла (например он назывался File.exe) Винда делает так.

1. В корневой каталог записывается новый блок данных, в котором у File.exe поля: длина и начальный кластер - равны 0.
2. В FAT1 записываются новые данные, где вся цепочка кластеров этого файла равна 0.
3. Аналогично дублируется FAT2.
4. В корневом каталоге у файла File.exe прописываются стартовый адрес кластера и новая длина в байтах (т.е. Root снова переписывается).
У меня стартовый кластер равен тому-же, что был и у предыдущей версии файла.
5. FAT1 записывается новая таблица, где очищенные до этого кластеры заполнены новой цепочкой.
6. FAT2 дублируется.
7. В корневом каталоге у файла File.exe меняются поля "Дата последн. записи" и "Время последн. записи" на новые (т.е. Root ещё раз переписывается).
8. Записывается тело файла в те-же сектора где была прежняя версия.
9. В корневом каталоге снова делается запись с изменённым полем времени (снова запись Root).
10. Делается ещё одна запись с изменённым полем времени (и ещё раз пишется Root).

По пунктам 7,9,10 я сейчас точно не помню, какие временные поля, и в какой очерёдности переписываются. Помню только что их три: дата создания, дата модификации, и дата открытия. И вроде бы, оно три раза те поля и переписывает. Почему это делается в три приёма (а не за один раз) я не помню. Вроде бы поле "дата модификации" несколько раз переписывается... зачем-то... Не помню laughing.gif
Чтения секторов при этом процессе вообще нет. Как считала Винда всё в кэш при подключении, так из кэша все сведения и черпает: и FAT1,2 и Root.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   Кто еще хорошо помнит как устроен FAT?   Oct 18 2016, 18:49
- - AlexRayne   Цитата(Allregia @ Oct 18 2016, 21:49) Воп...   Oct 19 2016, 06:54
|- - Allregia   Цитата(AlexRayne @ Oct 19 2016, 07:54) Да...   Oct 19 2016, 18:30
|- - Ruslan1   Цитата(Allregia @ Oct 19 2016, 20:30) Я н...   Oct 19 2016, 19:04
|- - HardEgor   Цитата(Allregia @ Oct 20 2016, 01:30) Име...   Oct 20 2016, 13:03
- - adnega   Цитата(Allregia @ Oct 18 2016, 21:49) Гар...   Oct 19 2016, 07:55
- - CrimsonPig   Цитата(Allregia @ Oct 18 2016, 19:49) Воп...   Oct 19 2016, 08:09
- - megajohn   Цитата(Allregia @ Oct 18 2016, 21:49) А е...   Oct 19 2016, 09:32
- - HardEgor   Цитата(Allregia @ Oct 19 2016, 01:49) А е...   Oct 19 2016, 10:22
|- - jcxz   Цитата(HardEgor @ Oct 19 2016, 13:22) Про...   Oct 19 2016, 15:01
- - TSerg   Делается контейнер, по примеру TrueCrypt и размеро...   Oct 19 2016, 15:41
- - Allregia   Цитатаили делайте все правильно. "Правильно...   Oct 19 2016, 21:20
|- - adnega   Цитата(Allregia @ Oct 20 2016, 00:20) Но ...   Oct 19 2016, 21:35
||- - Allregia   Цитата(adnega @ Oct 19 2016, 22:35) Зачем...   Oct 19 2016, 23:18
||- - adnega   Цитата(Allregia @ Oct 20 2016, 02:18) В о...   Oct 20 2016, 10:36
||- - jcxz   Цитата(Allregia @ Oct 20 2016, 02:18) Но ...   Oct 20 2016, 10:46
|- - Ruslan1   Allregia, извините, пожалуйста, но я просто не мог...   Oct 21 2016, 07:02
- - Allregia   ЦитатаOk. Сделайте два раздела - один большой и од...   Oct 20 2016, 14:16
- - sigmaN   Я не понял, т.е. все эти танцы с бубном нужны искл...   Oct 20 2016, 14:52
|- - Allregia   Цитата(sigmaN @ Oct 20 2016, 15:52) Я не ...   Oct 20 2016, 18:27
|- - YAM   Цитата(Allregia @ Oct 20 2016, 21:27) Я у...   Oct 20 2016, 18:38
|- - Allregia   Цитата(YAM @ Oct 20 2016, 19:38) При чем ...   Oct 20 2016, 19:09
|- - YAM   Цитата(Allregia @ Oct 20 2016, 22:09) Это...   Oct 21 2016, 14:46
|- - Allregia   Цитата(YAM @ Oct 21 2016, 15:46) Да. У ме...   Oct 21 2016, 15:23
- - YAM   В таких случаях я делаю просто 2 диска с необходим...   Oct 20 2016, 16:34
- - sigmaN   ЦитатаВидимо да, Вы не поняли. А какие именно...   Oct 20 2016, 20:01
|- - Allregia   Цитата(sigmaN @ Oct 20 2016, 21:01) Имела...   Oct 20 2016, 20:41
|- - CrimsonPig   Цитата(Allregia @ Oct 20 2016, 21:41) Да ...   Oct 20 2016, 21:20
|- - Allregia   Цитата(CrimsonPig @ Oct 20 2016, 22:20) Н...   Oct 20 2016, 22:42
- - sigmaN   ЦитатаДа никакая это не "свысокоуровневая зад...   Oct 21 2016, 07:00
- - sigmaN   ЦитатаНо опять же не понимаю даже зачем требование...   Oct 21 2016, 07:12
- - gerber   Если хотите внутри устройства сами управлять распо...   Oct 21 2016, 07:27
- - Allregia   Цитатанедавно делал USB MSD с программной генераци...   Oct 21 2016, 08:08
- - Kabdim   Не проще, добавлять параметры суфиксом к прошивке ...   Oct 21 2016, 08:11
|- - Allregia   ЦитатаНе проще, добавлять параметры суфиксом к про...   Oct 21 2016, 08:15
|- - Kabdim   Цитата(Allregia @ Oct 21 2016, 11:15) Так...   Oct 21 2016, 09:23
- - sigmaN   Media Transfer Protocol в этом случае выглядит оче...   Oct 21 2016, 08:48
- - Allregia   ЦитатаНа много красивее чем предложенный мной FatF...   Oct 21 2016, 09:31
|- - CrimsonPig   Цитата(Allregia @ Oct 21 2016, 10:31) Fat...   Oct 21 2016, 09:46
|- - Allregia   Цитата(CrimsonPig @ Oct 21 2016, 10:46) Н...   Oct 21 2016, 10:35
|- - CrimsonPig   Цитата(Allregia @ Oct 21 2016, 11:35) Вы ...   Oct 21 2016, 11:03
- - Kabdim   Кмк проблема "юзер блал устаревший файл фирмв...   Oct 21 2016, 09:37
|- - jcxz   Раз это бутлоадер, то все эти танцы с бубнами и ФА...   Oct 21 2016, 12:07
|- - Allregia   Цитата(jcxz @ Oct 21 2016, 13:07) Раз это...   Oct 21 2016, 13:03
|- - jcxz   Цитата(Allregia @ Oct 21 2016, 16:03) Вот...   Oct 21 2016, 14:40
- - controller_m30   По поводу защиты от удаления, но не перезаписи. Уд...   Oct 21 2016, 10:07
- - gerber   Ещё можно делать ремаппинг на лету - пусть "В...   Oct 21 2016, 10:55
|- - Allregia   Цитата(gerber @ Oct 21 2016, 11:55) Ещё м...   Oct 21 2016, 11:36
- - XVR   2 ТС - ваша задача в общем случае не решается вооб...   Oct 21 2016, 12:42
- - Allregia   YAM, щiро дякую! C двумя LUN получилось велик...   Oct 22 2016, 08:32
|- - YAM   Цитата(Allregia @ Oct 22 2016, 11:32) YAM...   Oct 22 2016, 14:09
- - Allregia   Интересно - откуда берется ограничение на мин. раз...   Oct 22 2016, 15:10
|- - YAM   Цитата(Allregia @ Oct 22 2016, 18:10) Инт...   Oct 22 2016, 15:45
- - Allregia   Странно, я перебрал длину диска от 4К до 8К, т.е о...   Oct 22 2016, 17:02


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 14:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016