Что означает вывод fdisk?
У меня есть флешка, и я хочу понять ее свойства, которые выводятся из 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 ответа
Размер блока
Трехмерная дорожка (одна и та же дорожка на всех дисках) называется цилиндром. Каждый трек разделен на 63 сектора. Каждый сектор содержит 512 байт данных. Таким образом, размер блока в таблице разделов составляет 64 главы * 63 сектора * 512 байт er..., разделенных на 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);
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: первый кластер области данных.
Источник: Википедия - Таблица размещения файлов
Я предполагаю, что сектора 1-31 зарезервированы для информации о загрузке и информации о таблице разделов. Раздел /dev/sdb1 начинается в блоке / секторе 32 и переходит к 249854. Это логический раздел на физическом диске.
124911+ дает вам количество блоков между 32 и 249854.
О дисковой геометрии вот что man fdsik
говорит об этом:
Если возможно, fdisk автоматически получит геометрию диска. Это не обязательно физическая геометрия диска (в действительности, современные диски на самом деле не имеют ничего общего с физической геометрией, конечно, это не то, что можно описать в упрощенной форме цилиндров / головок / секторов), но именно геометрия диска в MS-DOS использует для таблицы разделов.
Обычно все идет хорошо по умолчанию, и нет проблем, если Linux является единственной системой на диске. Однако, если диск должен использоваться совместно с другими операционными системами, часто рекомендуется, чтобы fdisk из другой операционной системы создал хотя бы один раздел. Когда Linux загружается, он смотрит на таблицу разделов и пытается определить, какая (поддельная) геометрия необходима для хорошего взаимодействия с другими системами.