Размер блока
Трехмерная дорожка (одна и та же дорожка на всех дисках) называется цилиндром. Каждый трек разделен на 63 сектора. Каждый сектор содержит 512 байт данных. Поэтому размер блока в таблице разделов равен 64 головам * 63 секторам * 512 байтам ... разделенным на 1024 ... :-)
Источник: Разметка с помощью fdisk
Каждый раз, когда Linux ссылается на размер блока, он почти всегда составляет 1024 байта - Linux использует блоки размером 1024 байта в качестве своих примитивных единиц для буферного кэша и всего остального. Единственный раз, когда это не так, в драйверах, специфичных для файловой системы, поскольку некоторые файловые системы используют другие детализации (например, в файловой системе ext3 нормального размера размер блока файловой системы обычно составляет 4096 байт). Однако вы почти никогда не увидите размер блока файловой системы; почти единственный способ увидеть это - быть хакером ядра или запускать такие программы, как dumpe2fs.
Проблема с этим заключается в том, что есть четыре отдельных элемента, которые вы должны иметь в виду. Что еще хуже, два из этих подразделений носят одно и то же имя. Это разные единицы:
- Размер аппаратного блока, "размер сектора"
- Размер блока файловой системы, "размер блока"
- Размер блока кеш-буфера ядра, "размер блока"
- Размер блока таблицы разделов, "размер цилиндра"
Чтобы различать размер блока файловой системы и размер блока буферного кеша, я буду следовать терминологии FAT и использовать "размер кластера" для размера блока файловой системы.
Размер сектора - это единицы, с которыми работает аппаратное обеспечение. Это варьируется между различными типами оборудования, но большинство аппаратных средств в стиле ПК (дискеты, IDE-диски и т.д.) Используют сектора по 512 байт.
Размер кластера - это единица выделения, которую использует файловая система, и именно она вызывает фрагментацию - я уверен, что вы знаете об этом. В файловой системе ext3 среднего размера это обычно 4096 байт, но вы можете проверить это с помощью dumpe2fs
. Помните, что их также обычно называют « блоками », но я называю их здесь кластерами . Размер кластера - это то, что возвращается в st_blksize
в буфере статистики, чтобы программы могли рассчитывать фактическое использование диска файлом.
Размер блока - это размер буферов, которые ядро использует внутри, когда оно кэширует сектора, считанные с устройств хранения (отсюда и название "блочное устройство"). Поскольку это наиболее примитивная форма хранения в ядре, все размеры кластеров файловой системы должны быть кратны этому. Этот размер блока также является тем, на что почти всегда ссылаются пользовательские программы. Например, если вы запустите du
без параметров -h или -H, он вернет, сколько из этих блоков занимает файл. df
также будет сообщать размеры в этих блоках, столбец "Blocks" в выводе fdisk -l
относится к этому типу и так далее. Это то, что чаще всего называют "блоком". Два сектора диска вписываются в каждый блок.
Размер цилиндра используется только в таблице разделов и в BIOS (а BIOS не используется в Linux).
Источник: размер дискового блока Linux ... помогите пожалуйста
Секторы 0-31
Чтобы ответить на ваш вопрос о первых 32 секторах, поскольку флэш-накопитель является устройством в формате FAT, а затем, глядя на определение файловой системы FAT, можно увидеть, что файловая система FAT состоит из четырех различных разделов:
а) Зарезервированные сектора;
б) область таблицы размещения файлов (FAT);
c) регион корневого каталога и;
г) Область данных.
Зарезервированные сектора, расположенные в самом начале, являются (в данном случае) секторами 0-31:
Первый зарезервированный сектор (логический сектор 0) - это загрузочный сектор (также называемый Volume Boot Record (VBR)). Он включает в себя область, называемую блоком параметров BIOS (с некоторой базовой информацией о файловой системе, в частности ее типом и указателями на расположение других разделов), и обычно содержит код загрузчика операционной системы.
Важная информация из загрузочного сектора доступна через структуру операционной системы, называемой блоком параметров привода (DPB) в DOS и OS/2.
Общее количество зарезервированных секторов указывается полем внутри загрузочного сектора и обычно составляет 32 в файловых системах FAT32.
Для файловых систем FAT32 зарезервированные сектора включают в себя информационный сектор файловой системы в логическом секторе 1 и резервный загрузочный сектор в логическом секторе 6.
В то время как многие другие поставщики продолжали использовать настройку с одним сектором (только логический сектор 0) для загрузчика начальной загрузки, код загрузочного сектора Microsoft вырос с появлением логических секторов 0 и 2 с момента появления FAT32, причем логический сектор 0 зависит от подпрограммы в логическом секторе 2. Область резервного загрузочного сектора также состоит из трех логических секторов 6, 7 и 8. В некоторых случаях Microsoft также использует сектор 12 зарезервированной области для расширенного загрузчика.
Просто дополнительная информация, не относящаяся к вопросу ОП
Область FAT, будет в секторе 32:
Обычно он содержит две копии (могут отличаться) таблицы размещения файлов для проверки избыточности, хотя и используется редко, даже утилитами восстановления дисков.
Это карты области данных, указывающие, какие кластеры используются файлами и каталогами. В FAT12 и FAT16 они сразу следуют за зарезервированными секторами.
Обычно дополнительные копии хранятся в тесной синхронизации при записи, а при чтении они используются только при возникновении ошибок в первой FAT. В FAT32 можно переключиться с поведения по умолчанию и выбрать одну FAT из доступных для использования в целях диагностики.
Первые два кластера (кластер 0 и 1) на карте содержат специальные значения.
Корневой каталог Регион:
Это таблица каталогов, в которой хранится информация о файлах и каталогах, расположенных в корневом каталоге. Он используется только с FAT12 и FAT16 и накладывает на корневой каталог фиксированный максимальный размер, который предварительно выделяется при создании этого тома. FAT32 хранит корневой каталог в области данных вместе с файлами и другими каталогами, что позволяет ему расти без таких ограничений. Таким образом, для FAT32 область данных начинается здесь.
Область данных:
Это где фактические данные файла и каталога хранятся и занимают большую часть раздела. Традиционно неиспользуемые части области данных инициализируются со значением заполнителя 0xF6 согласно Таблице параметров диска (DPT) INT 1Eh во время форматирования на IBM-совместимых машинах, но также используются в портфолио Atari. 8-дюймовые дискеты CP/M обычно поставляются предварительно отформатированными со значением 0xE5; с помощью Digital Research это значение также использовалось на дискетах с форматированием Atari ST.
Амстрад использовал вместо 0xF4. Некоторые современные средства форматирования стирают жесткие диски со значением 0x00, тогда как значение 0xFF, значение по умолчанию для непрограммированного флэш-блока, используется на флэш-дисках для уменьшения износа. Последнее значение обычно также используется на дисках ПЗУ. (Некоторые продвинутые инструменты форматирования позволяют настраивать формат заполнителя байта.)
Размер файлов и подкаталогов можно произвольно увеличить (при условии наличия свободных кластеров), просто добавив дополнительные ссылки на цепочку файлов в FAT. Однако обратите внимание, что файлы размещаются в единицах кластеров, поэтому, если файл размером 1 КиБ находится в кластере 32 КиБ, 31 КиБ теряется.
FAT32 обычно начинает таблицу корневых каталогов в кластере № 2: первый кластер области данных.
Источник: Википедия - Таблица размещения файлов