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+

А что означает + после подсчета блоков?

2 ответа2

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 также будет сообщать размеры в этих блоках, столбец "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: первый кластер области данных.

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

1

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

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

Про геометрию диска вот что говорит по этому поводу man fdsik :

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .