отображение расширенного раздела в fdisk-е

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Ответить
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

отображение расширенного раздела в fdisk-е

Сообщение QWERTYASDF »

Помогите бедной чукче разобраться со следами от квадратных кирпичей, запуталась совсем )

Прелюдия: по правилам IBM PC разметки диска в таблице разделов (64 байта которая) находится максимум 4 записи = 4 раздела, что справедливо как для "первичной" таблицы (которая в начале жесткого диска), так и для "вторичной" (которая вначале расширенного раздела на жестком диске). Если создается расширенный раздел, то он содержит в себе: 1. Собственную таблицу разделов 2. Раздел (ы) с ФС (данными). Все правильно?
Вот решила от нечего делать поразбивать казенную флешку gparted-ом, создала там несколько разделов, в том числе расширенный со своими подразделами, посмотрела флешку через fdisk -l , получила вывод:

Код: Выделить всё

Диск /dev/sdc: 3869 МБ, 3869544448 байт
255 heads, 63 sectors/track, 470 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00031ebc

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1               1          13      104391    b  W95 FAT32
/dev/sdc2              14          38      200812+  83  Linux
/dev/sdc3              39          76      305235    b  W95 FAT32
/dev/sdc4              77         470     3164805    5  Расширенный
/dev/sdc5              77         203     1020096   83  Linux
/dev/sdc6             204         470     2144646   83  Linux

Главный вопрос - почему логический раздел с ФС в расширенном разделе начинается с первого блока самого расширенного раздела, где в таком случае будет размещаться таблица разделов этого расширенного раздела.

Код: Выделить всё

Sector size (logical/physical): 512 bytes
, понятно 64 меньше 512, но ведь они будут занимать весь блок или нет? )
Подскажите, если не трудно )
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: отображение расширенного раздела в fdisk-е

Сообщение bormant »

http://en.wikipedia.org/wiki/Extended_Boot_Record (en)
извините за нерусский.

Вульгарно: первый сектор обычно загрузочный, то бишь специальный, что сохраняется и в расширенном разделе. В конце первого сектора традиционно живёт таблица разделов. Ея, расширенного раздела, первая запись характеризует собственно раздел, а 2-я -- указывает, где искать следующий расширенный раздел (см. односвязный список).

ps.
QWERTYASDF писал(а):
12.09.2012 19:36
понятно 64 меньше 512, но ведь они будут занимать весь блок или нет?
При внимательном (пере-)чтении разметки первого сектора обнаружится, что первые (0-455) 466 байт в нём отведены на код загрузчика, последующие (со смещения 466) 64 (4*16) под таблицу разделов, и последние 2 -- под маркер 0x55 0xAA. Итого: 466 + 64 +2 = 512. Баланс.

pps. Самое время начинать готовиться к GPT/UEFI, за малым исключением делающие вышеуказанные знания без цены (бесценными/не нужными) :). Малое исключение: Legacy MBR в http://en.wikipedia.org/wiki/GUID_Partition_Table
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: отображение расширенного раздела в fdisk-е

Сообщение QWERTYASDF »

При внимательном (пере-)чтении разметки первого сектора обнаружится, что первые (0-455) 466 байт в нём отведены на код загрузчика, последующие (со смещения 466) 64 (4*16) под таблицу разделов, и последние 2 -- под маркер 0x55 0xAA. Итого: 466 + 64 +2 = 512. Баланс.

У меня вопрос все-таки немного про другое - Вы мне говорите из чего состоит загрузочный сектор расширенного раздела (512 байт), а я спрашиваю почему вот например в моем случае раздел с файловой системой /dev/sdc5 начинается с 77 блока, при том что с него же начинается вообще расширенный раздел. Ведь весь 77-ой блок служебный, это и есть эти первые 512 байт расширенного раздела. Извините, если что, я не специально, просто не понятно )

pps. Самое время начинать готовиться к GPT/UEFI, за малым исключением делающие вышеуказанные знания без цены (бесценными/не нужными) :). Малое исключение: Legacy MBR в http://en.wikipedia.org/wiki/GUID_Partition_Tabl

Почему то кажется, что тяжелая наследственность формата IBM еще долго будет сильна.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: отображение расширенного раздела в fdisk-е

Сообщение bormant »

А начало раздела -- первый блок -- это и есть тот первый служебный сектор 466+64+2 байта.
Ведь расширенный раздел -- это что? Это запись в MBR, одна из 4-х, помеченная типом "расширенный раздел", в которой указано начало расширенного раздела.
Первый сектор в расширенном разделе -- он по структуре такой же MBR, только в таблице разделов интерпретируются первые 2 записи: 1-я как запись о самом разделе, а 2-я -- как запись о следующем разделе.
Только и всего.
Выкиньте всё, что домыслили помимо сказанного, и получите ясную картину происходящего :-)

ps. Давайте договоримся, читаете внимательно английские варианты страниц:
http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/Extended_Boot_Record
что осталось непонятно, спрашиваете, ок?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: отображение расширенного раздела в fdisk-е

Сообщение bormant »

QWERTYASDF писал(а):
12.09.2012 20:36
почемув моем случае раздел с файловой системой /dev/sdc5 начинается с 77 блока, при том что с него же начинается вообще расширенный раздел. Ведь весь 77-ой блок служебный, это и есть эти первые 512 байт расширенного раздела.
"вообще расширенный раздел" -- это фикция, которая служит legacy (преемственности) совместимости.
Жили-были инструменты, знавшие только 4 основных раздела (primary partition). Потом специальный тип раздела выделили под "расширенный раздел" (extended partition), охватывающий все вложенные в него. С точки зрения legacy инструментов ничего не изменилось -- те же 4 раздела.
Следуя принципам повторного использования (reuse) алгоритмов первый сектор расширенного раздела сделали таким же, как и MBR, только договорились -- тут играем, тут не играем, тут селёдку заворачивали (q) известное кино. "Играем" первые 2 записи в таблице разделов в первом секторе раздела. 1-я про себя, 2-я -- про следующий раздел.

ps. Более детально содержимое записей можно посмотреть так:

Код: Выделить всё

# echo -e "p\nx\np" | fdisk /dev/sda
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: отображение расширенного раздела в fdisk-е

Сообщение QWERTYASDF »

Спасибо большое, вроде ясно - EBR в первом секторе расширенного раздела включает и диапазон логического раздела данных и диапазон расширенного раздела следующего уровня вложенности, поэтому эти 512 байт как-бы общие и для одного и для другого. Но опять-же, почему только 2 записи, в таблице же можно создать до 4-х записей (64/16)?...
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: отображение расширенного раздела в fdisk-е

Сообщение bormant »

QWERTYASDF писал(а):
12.09.2012 21:19
почему только 2 записи

bormant писал(а):
12.09.2012 21:07
Следуя принципам повторного использования (reuse) алгоритмов
bormant писал(а):
12.09.2012 20:10
Ея, расширенного раздела, первая запись характеризует собственно раздел, а 2-я -- указывает, где искать следующий расширенный раздел (см. односвязный список).
Алгоритм обхода проще. Элементарная экономия на размере кода (не забываем про 256Кб памяти, 640Кб хватит всем и т.п.)
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: отображение расширенного раздела в fdisk-е

Сообщение QWERTYASDF »

Смущало просто то, что первый блок раздела с фс и загрузочный (описательный) - совпадают, но пользовательские данные (контент) в него не записываются )
Спасибо сказали:
Ответить