LINUX.ORG.RU

Разбиение диска в cfdisk

 , ,


0

1

Почему утилита cfdisk при разбиении диска всегда резервирует перед первым разделом 2048 байт? Стиль таблицы разделов - MBR, режим BIOS - устаревший (не UEFI). Я так понимаю код и таблица разделов занимают 512 байт, куда идут остальные?

Ответ на: комментарий от NordeN

Ранее реальный размер сектора диска был равен 512 байт, относительно недавно появились диски с «Advanced Format», когда реальный размер сектора равен 4 Кбайт, а не 512 байт.

Это значит, что при записи или считывании данных с размер считанного или записанного блока равен 4 Кбайт.

Это значит, что если ты модифицируешь 1 байт информации, то с диска прочитается 4 Кбайта, они изменятся в памяти диска и запишутся обратно на диск.

Т.к. всё ПО оптимизировано на работу с виртуальными 512 байтными секторами, то сделали выравнивание первого раздела, что бы он начинался с сектора, кратного 8. Аналогично при создании нескольких разделов на таких дисках нужно выравнивать номер последнего сектора раздела и номера секторов остальных создаваемых разделов.

infomeh ()
Ответ на: комментарий от infomeh

А раз теперь постоянно есть свободные пару секторов, то жирные загрузчики стали скидывать хвост в эту область.

Потом стали выравнивать по еще большим цифрам ради SSD и прочих NAND. Смысл имеет и для RAID, но там может быть сложней.

В fdisk размер блока настраивается. В gpt стандартизировали тип раздела для хранения хвостов и если установить меньший блок, то такой раздел можно поместить на то же место.

boowai ★★★ ()

Не 2048 байт резервируется, а 2048 блоков.

В эпоху CHS начало раздела в таблице разделов кодировалось не абсолютным номером сектора, а номером цилиндра/головки/сектора. Первый сектор диска имел адрес 0/0/1 CHS (да-да, физические секторы INT13 начинаются с 1), а первый раздел мог начаться только с 0/1/1 CHS. Т.е. все сектора между MBR и первым разделом никак не использовались.

Этим вовсю пользовались все, кому не лень - начиная от загрузочных вирусов (они записывались в промежуток между MBR и первым разделом) и заканчивая операционными системами (они записывают код загрузчика туда же, т.к. в MBR влезает только 446 байт кода, что очень мало).

Вот для них этот резерв и оставляют. Почему оставляют именно 2048 блоков (1MB) - это хорошее число, чтобы практически никогда не иметь проблем с выравниванием. Например, в СХД рекомендуют выравнивать начало раздела на размер кэш-слота, и выравнивание на 1MB с этим справляется.

bigbit ★★★★★ ()