Что означает вывод fdisk?

10

У меня есть флешка, и я хочу понять ее свойства, которые выводятся из 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
Хороший вопрос, +1, никогда не думал об этом раньше. Что вы подразумеваете под "FTL", хотя? Для меня это означает «Быстрее света», я полагаю, вы имеете в виду что-то еще?
terdon
1
@terdon - FTL (слой Flash-перевода), который выполняет выравнивание и все такое
Майк

Ответы:

3

Размер блока

Трехмерная дорожка (одна и та же дорожка на всех дисках) называется цилиндром. Каждый трек разделен на 63 сектора. Каждый сектор содержит 512 байт данных. Поэтому размер блока в таблице разделов равен 64 головам * 63 секторам * 512 байтам ... разделенным на 1024 ... :-)

Источник: Разметка с помощью fdisk

Каждый раз, когда Linux ссылается на размер блока, он почти всегда составляет 1024 байта - Linux использует 1024-байтовые блоки в качестве своих примитивных единиц для буферного кэша и всего остального. Единственный раз, когда это не так, в драйверах, специфичных для файловой системы, поскольку некоторые файловые системы используют другие детализации (например, в файловой системе ext3 нормального размера размер блока файловой системы обычно составляет 4096 байт). Тем не менее, вы почти никогда не увидите размер блока файловой системы; Практически единственный способ увидеть это - быть хакером ядра или запускать такие программы, как dumpe2fs.

Проблема с этим заключается в том, что есть четыре отдельных элемента, которые вы должны иметь в виду. Что еще хуже, два из этих подразделений носят одно и то же имя. Это разные единицы:

  1. Размер аппаратного блока, «размер сектора»
  2. Размер блока файловой системы, «размер блока»
  3. Размер блока кеш-буфера ядра, «размер блока»
  4. Размер блока таблицы разделов, "размер цилиндра"

Чтобы различать размер блока файловой системы и размер блока буферного кеша, я буду следовать терминологии 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);
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; посредством цифровых исследований это значение также использовалось на дискетах с форматированием Atari ST. Амстрад использовал вместо 0xF4. Некоторые современные средства форматирования стирают жесткие диски со значением 0x00, тогда как значение 0xFF, значение по умолчанию для непрограммированного флэш-блока, используется на флэш-дисках для уменьшения износа. Последнее значение обычно также используется на дисках ПЗУ. (Некоторые расширенные инструменты форматирования позволяют настраивать формат заполнителя байта.)

Размер файлов и подкаталогов можно произвольно увеличить (при условии наличия свободных кластеров), просто добавив дополнительные ссылки на цепочку файлов в FAT. Однако обратите внимание, что файлы размещаются в единицах кластеров, поэтому, если файл размером 1 КиБ находится в кластере 32 КиБ, 31 КиБ теряется.

FAT32 обычно начинает таблицу корневых каталогов в кластере № 2: первый кластер области данных.

Источник: Википедия - Таблица размещения файлов

Greenonline
источник
1

Я предполагаю, что сектора 1-31 зарезервированы для информации о загрузке и информации о таблице разделов. Раздел / dev / sdb1 начинается с блока / сектора 32 и переходит к 249854. Это логический раздел на физическом диске.

124911+ дает вам количество блоков между 32 и 249854.

О Геометрии Диска вот что man fdsikговорит об этом:

Если возможно, fdisk автоматически получит геометрию диска. Это не обязательно физическая геометрия диска (в действительности, современные диски на самом деле не имеют ничего общего с физической геометрией, конечно, не то, что можно описать в упрощенной форме цилиндров / головок / секторов), но это геометрия диска, которую использует MS-DOS использует для таблицы разделов.

Обычно все идет хорошо по умолчанию, и нет проблем, если Linux является единственной системой на диске. Однако, если диск должен использоваться совместно с другими операционными системами, часто рекомендуется, чтобы fdisk из другой операционной системы создал хотя бы один раздел. Когда Linux загружается, он смотрит на таблицу разделов и пытается определить, какая (поддельная) геометрия необходима для хорошего взаимодействия с другими системами.

Дж Барон
источник