Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Детектирование файловой системы

1.9K
14 декабря 2007 года
lodstosw
9 / / 14.11.2006
Здравствуйте! Я программирую под Bochs-2.3.5 ОС в pmode, мне бы хотелось узнать, каким образом другие операционные системы (DOS, Windows, Linux) определяют файловую систему FAT на hdd. Как, во-первых, система узнает FAT12/FAT16/FAT32 и узнает, где находится тот или иной boot-record, в котором и записана информация о файловой системе? Я посмотрел в .img-файл виртуального hdd, там: MBR + 6 подряд идущих секторов с сигнатурой 0xAA55. Сложность в том, что MBR может вообще не содержать BPB. Если бы MBR содержал BPB, было бы легко определить структуру логических дисков по BPB_FATsz16/BPB_FATsz32 + BPB_ReservedRegion + ... А также где можно увидеть информацию о разметке диска?
3
14 декабря 2007 года
Green
4.8K / / 20.01.2000
Смотри инф. о Partoitional Table.
http://www.compress.ru/article.aspx?id=11179&part=index1ext1
http://hdpt.page.by
255
14 декабря 2007 года
Dart Bobr
1.4K / / 09.04.2004
Насколько я помню, в начале MBR идет указатель на BPB(в случае фс семейства фат).Следовательно, по даному указателю можна делать вывод фат на диске или какая-нибудь другая фс.. Однозначно определить тип FAT без BPB вряд ли получится, но!! в конце MBR есть запись (количество секторов на диске + 1)Точно сказать по этому какая фс не получится(она зависит только от количества КЛАСТЕРОВ, а это зависиит только от их размера. И размер кластера и размер сектора и количество кластеров хранится в BPB), но некоторые предположения сделать можно..

З.Ы. а что системе узнавать тип фата? один драйвер читает все типы фата) А распознает она уже конкретный тип (12/16/32) по BPB.
349
17 декабря 2007 года
Phantom-84
656 / / 27.10.2005
MBR здесь ни причем, хотя в таблице разделов и имеются однобайтовые поля, определяющие тип раздела/ОС - использовать их для детекта типа ФС не следует. В документации на FAT четко сказано, что определять тип FAT нужно только исходя из числа кластеров в томе (эти сведения находятся в BPB) и никак иначе.
1.9K
18 декабря 2007 года
lodstosw
9 / / 14.11.2006
Спасибо. Оказывается, в MBR существует 64 байта, описывающие разделы :) Но ведь можно создавать FAT32 для дисков 50мб, а это - 12800-N (на FAT и reserved region) кластеров по 4096 байт. Как я увидел из документации по FAT, тип файловой системы будет FAT16 (т.к. Countofclusters < 65525). Однако все проги правильно определяют тип: FAT32.
255
19 декабря 2007 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: Phantom-84
MBR здесь ни причем, хотя в таблице разделов и имеются однобайтовые поля, определяющие тип раздела/ОС - использовать их для детекта типа ФС не следует. В документации на FAT четко сказано, что определять тип FAT нужно только исходя из числа кластеров в томе (эти сведения находятся в BPB) и никак иначе.


Читай внимательней, никто и не предлагал определять тип FAT по MBR. Я написал только то, что из имеющейся там информации можна только строить предположения, то-есть как минимум существуют такие значения, про которые можна сказать, что это явно не фат32 или что это точно фат12 (только исходя из простых арифметических вычислений), но в общем случае этого делать, конечно, нельзя.

349
20 декабря 2007 года
Phantom-84
656 / / 27.10.2005
Все верно. Обычно при детекте FAT в MBR проверяется наличие хоть одного допустимого для FAT идентификатора, а уже потом (если это условие выполняется) определяется тип FAT по числу кластеров.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог