![Размер блока](https://rvso.com/image/1346168/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D0%B1%D0%BB%D0%BE%D0%BA%D0%B0.png)
У меня есть флэш-накопитель, и я хочу понять его свойства, как выводится из fdisk
. Я вставил его и проверил dmesg
, и я увидел, что он был смонтирован как, /dev/sdb1
поэтому я побежал fdisk
смотреть, что сообщается для/dev/sdb
mike@mike-Qosmio-X770:~$ sudo fdisk -l
[sudo] password for mike:
Disk /dev/sdb: 127 MB, 127926272 bytes
16 heads, 32 sectors/track, 488 cylinders, total 249856 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b3ee723
Device Boot Start End Blocks Id System
/dev/sdb1 * 32 249854 124911+ b W95 FAT32
Насколько я могу судить, диск представляет собой флешку объемом 128 МБ, отформатированную в FAT32, на ней всего 1 раздел. Он начинается с "32" (предположительно, 0-31 используется для некоторых FTL).
Сообщается, что размер «сектора» составляет 512 байт, а всего имеется 249 856 секторов (всего 122 МБ).
Теперь я запутался в цилиндре, головке и количестве секторов/дорожек. Я знаю, что цилиндры/головки связаны с типами хранения на магнитных дисках. Есть ли у них какое-либо значение, когда речь идет о флэш-устройстве? Или это просто «остаточная» информация, fdisk
которая на самом деле не имеет значения для немагнитного носителя информации? Если последнее, то зачем вообще давать значения?
Второй вопрос, каков «размер» блока? :
Blocks
124911+
А что означает +
после счетчика блоков?
решение1
Размер блока
Трехмерная дорожка (одна и та же дорожка на всех дисках) называется цилиндром. Каждая дорожка разделена на 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
также сообщит размеры в этих блоках, столбец "Блоки" вfdisk -l
выводе имеет этот тип и т. д. Это то, что чаще всего называют "блоком". В каждый блок помещается два сектора диска.Размер цилиндра используется только в таблице разделов и BIOS (а BIOS не используется Linux).
Источник:Размер блока диска Linux... помогите пожалуйста
Сектора 0-31
Чтобы ответить на ваш вопрос о первых 32 секторах, поскольку флэш-накопитель представляет собой устройство, отформатированное в системе FAT, то, глядя на определение файловой системы FAT, можно увидеть, что файловая система FAT состоит из четырех различных разделов:
а) Зарезервированные сектора;
б) Область таблицы размещения файлов (FAT);
в) Область корневого каталога;
г) Область данных.
Зарезервированные Сектора, расположенные в самом начале, являются (в данном случае) секторами 0-31:
Первый зарезервированный сектор (логический сектор 0) — этоЗагрузочный сектор(также известный как Загрузочная запись тома (VBR)). Он включает в себя область, называемуюБлок параметров BIOS(с некоторой базовой информацией о файловой системе, в частности, ее типом и указателями на расположение других разделов) и обычно содержит код загрузчика операционной системы.
Важная информация из загрузочного сектора доступна через структуру операционной системы, называемуюБлок параметров привода (DPB)в DOS и OS/2.
Общее количество зарезервированных секторов указывается в поле внутри загрузочного сектора.и обычно составляет 32 в файловых системах FAT32.
Для файловых систем FAT32 зарезервированные сектора включаютСектор информации файловой системыв логическом секторе 1 иРезервное копирование загрузочного секторав логическом секторе 6.
В то время как многие другие поставщики продолжали использовать односекторную настройку (только логический сектор 0) для начального загрузчика, код загрузочного сектора Microsoft разросся до логических секторов 0 и 2 с момента введения FAT32, при этом логический сектор 0 зависит от подпрограмм в логическом секторе 2. Область резервного загрузочного сектора также состоит из трех логических секторов 6, 7 и 8. В некоторых случаях Microsoft также использует сектор 12 зарезервированной области секторов для расширенного начального загрузчика.
Просто дополнительная информация, не имеющая отношения к вопросу OP
Регион FAT, будет в секторе 32:
Обычно он содержит две копии (могут отличаться) таблицы размещения файлов для проверки избыточности, хотя используется редко, даже утилитами восстановления дисков.
Это карты области данных, указывающие, какие кластеры используются файлами и каталогами. В FAT12 и FAT16 они следуют сразу за зарезервированными секторами.
Обычно дополнительные копии хранятся в тесной синхронизации при записи, а при чтении они используются только при возникновении ошибок в первой FAT. В FAT32 можно переключиться с поведения по умолчанию и выбрать одну FAT из доступных для использования в целях диагностики.
Первые два кластера (кластер 0 и 1) на карте содержат особые значения.
Регион корневого каталога:
Это таблица каталогов, которая хранит информацию о файлах и каталогах, расположенных в корневом каталоге. Она используется только с FAT12 и FAT16 и накладывает на корневой каталог фиксированный максимальный размер, который предварительно выделяется при создании этого тома. FAT32 хранит корневой каталог в области данных вместе с файлами и другими каталогами, позволяя ему расти без такого ограничения. Таким образом, для FAT32 область данных начинается здесь.
Регион данных:
Здесь хранятся фактические данные файлов и каталогов, и они занимают большую часть раздела. Традиционно неиспользуемые части области данных инициализируются значением заполнителя 0xF6 согласно Таблице параметров диска (DPT) INT 1Eh во время форматирования на IBM-совместимых машинах, но также используются на Atari Portfolio. 8-дюймовые дискеты CP/M обычно поставляются предварительно отформатированными со значением 0xE5; благодаря Digital Research это значение также использовалось на дискетах, отформатированных Atari ST. Amstrad использовал вместо этого 0xF4. Некоторые современные форматировщики стирают жесткие диски со значением 0x00, тогда как значение 0xFF, значение по умолчанию для незапрограммированного блока флэш-памяти, используется на флэш-дисках для уменьшения износа. Последнее значение обычно также используется на дисках ROM. (Некоторые расширенные инструменты форматирования позволяют настраивать байт заполнителя формата.)
Размер файлов и подкаталогов можно увеличивать произвольно (при условии наличия свободных кластеров), просто добавляя больше ссылок в цепочку файлов в FAT. Однако следует отметить, что файлы выделяются в единицах кластеров, поэтому если файл размером 1 КиБ находится в кластере размером 32 КиБ, то 31 КиБ будет потрачено впустую.
FAT32 обычно начинает таблицу корневого каталога с кластера номер 2: первого кластера области данных.
решение2
Я предполагаю, что сектора 1-31 зарезервированы для информации о загрузке и таблицы разделов. Раздел /dev/sdb1 начинается с блока/сектора 32 и продолжается до 249854. Это логический раздел на физическом диске.
124911+ дает вам количество блоков от 32 до 249854.
О геометрии диска говорится следующее man fdsik
:
Если возможно, fdisk автоматически получит геометрию диска. Это не обязательно физическая геометрия диска (действительно, современные диски на самом деле не имеют ничего похожего на физическую геометрию, определенно не то, что можно описать в упрощенной форме Цилиндры/Головки/Секторы), но это геометрия диска, которую MS-DOS использует для таблицы разделов.
Обычно все идет хорошо по умолчанию, и проблем не возникает, если Linux — единственная система на диске. Однако, если диск должен быть общим с другими операционными системами, часто бывает хорошей идеей позволить fdisk из другой операционной системы создать хотя бы один раздел. Когда Linux загружается, он смотрит на таблицу разделов и пытается определить, какая (поддельная) геометрия требуется для хорошего взаимодействия с другими системами.