MBR: ключ к дисковой разметке

Первый сектор каждого диска резервируется под служебную область диска, именуемую главной загрузочной записью (MBR -- Master Boot Recodr), которая и считывается BIOS’ом при старте машины.

Очевидно, что по прямому назначению MBR используется только в том случае, если диск определен в Setup’е BIOS’а как загрузочный (или просто является единственным в системе). Однако поскольку использование каждого конкретного диска остается на усмотрение пользователя, место под него отводится всегда.

Внутри нулевого блока, помимо прочего (в частности, инициирующего кода какого-либо начального загрузчика, который может быть туда записан), непременно присутствует один зарезервированный участок. Он предназначен для BIOS’овской таблицы разделов (Partition Table), под которую испокон веков (со времен самой первой IBM PC, кажется) отведено 64 байта. В эту таблицу записываются (или могут быть записаны) данные о разделе (разделах) в определенном, доступном пониманию BIOS’а, формате.

А формат этот предусматривает указание для каждого раздела его стартового блока, размера в байтах, идентификатора типа файловой системы (это, вопреки названию, совсем не то же самое, что файловые системы, о которых речь пойдет в следующей рубрике) и (только для одного из разделов) флага активности (то есть помечающего данный раздел как загрузочный). Последний необходим для некоторых операционок типа DOS, хотя всем FOSS-системам, о которых идёт у нас речь, флаг этот глубоко безразличен.

В итоге, информации, необходимой для описания дискового раздела, набегает 16 байт. А поскольку, как мы помним, под всю таблицу разделов этих байт отведено лишь 64, без калькулятора можно подсчитать, что предельное количество разделов на диске -- 4. Эти разделы называются первичными или, не совсем точно, физическими. Так как в большинстве случаев такие разделы могут быть также поделены на части -- разделы логические (о чем речь впереди).

Повторю еще раз -- это относится только к машинам с PC BIOS, то есть обычным персоналкам. На всякого рода PowerPC, Sparc’ах и тому подобных станциях все может быть совсем по другому: насколько мне известно, там диск воспринимается как единый физический раздел, который может непосредственно дробиться на разделы логические. С реликтами этого мы столкнёмся при рассмотрении особенностей разметки в стиле Sun/Solaris.

Как можно заметить, в описание раздела входит идентификатор типа файловой системы. Это -- некоторое число (во FreeBSD обычно в десятичном представлении, в Linux’е -- в шестнадцатеричном), которое ставится в соответствие с файловой системой операционки, планируемой к размещению на диске. Так, раздел, предназначенный для FreeBSD, имеет идентификатор 165 (десятичный) или A5, раздел для Linux (Linux native) -- 131 (или 83), FAT16 -- 6, расширенный раздел (т.н. DOS Extended) -- 5, и так далее. Список наиболее востребованных ныне идентификаторов приведён на этой странице.

Важно понимать, что в данном случае тип файловой системы раздела имеет
весьма косвенное отношение к тем файловым системам, которые будут на нем
размещены (типа ext2fs, XFS или FAT), хотя и может совпадать с ней по названию
(тот же FAT чему примером). Присвоение разделу какого-либо идентификатора не означает также, что тем самым соответствующая файловая система возникает на нем волшебным образом.

Нет, идентификатор просто указывает утилитам разметки, какого стиля вторичная таблица (DOS, BSD или иная — имя им легион) должна быть записана в начальном секторе данного раздела. И, соответственно, что дальше с этим разделом можно сделать. Так, если раздел помечен как слайс FreeBSD, его можно поделить на BSD-разделы, DOS Extended — на логический раздел и еще один расширенный, а вот с FAT или Linux native ничего уже сделать нельзя — кроме как использовать по прямому назначению, сиречь для хранения данных. Впрочем, для раздела, идентифицируемого как Linux swap, не удастся и этого -- он используется только для выгрузки страниц оперативной памяти, составляя с ней единое логическое целое — виртуальную память.

Но тут мы переходим к разговору о стилях разметки.


Теги: , ,