Почему последние несколько секторов не могут быть включены в раздел?

430
Simon S

При разделении с fdiskнесколькими последними секторами не может быть включен в раздел, насколько я испытал. Я всегда думал, что это происходит из-за выравнивания блоков MiB или IO, но я только что понял, что последний сектор, который он позволяет мне использовать, не выровнен! Я пробовал несколько инструментов с несколькими жесткими дисками разных производителей, и это всегда последние 30 с чем-то секторов. Например:

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors last MiB-aligned sector: 976773119 last IO-block-aligned (4KiB) sector: 976773167 (the last one) last usable sector: 976773134 

Это, конечно, не большая проблема, но мне любопытно, почему. Связано ли это с плохими секторами?

6
Я сомневаюсь, что это связано с плохими секторами - я предполагаю, что это связано с GPT и / или защитным GPT - Хотя старый раздел стиля MBR использует только начало диска (последняя часть первых 512 байтов), GPT дополнительно использует последние 33 сектора диска для сопоставления разделов 5 - 128 - и в противном случае может показаться совершенно случайным, что последний используемый сектор на 33 сектора меньше, чем доступно на диске. davidgo 6 лет назад 2

1 ответ на вопрос

6
Deltik

Бьюсь об заклад, вы создали таблицу разделов GUID (GPT) на диске, чтобы получить номер «последнего используемого сектора».

Вы заметили, что последний используемый сектор на 34 сектора меньше, чем общее количество секторов?

Проверь это:

Схема таблицы разделов GUID ( источник )

Эти «неиспользуемые» 33 сектора фактически предназначены для резервного копирования GPT! (Это LBA -34 до конца.)


Мы также можем определить, почему последний сектор, выровненный по MiB, и последний сектор, выровненный по блоку ввода-вывода, являются такими, какие они есть.

Примечание. Вероятно, вы пришли к последним номерам секторов без использования GPT. Наследие MS-DOS таблица разделов занимает всего 512 байт (1 логический сектор) в начале диска ни с чем в конце.

Информация о диске

Logical sector size: 512 (used in calculations) Physical sector size: 4096 (used for I/O block alignment) 

Выравнивание физических блоков

Ваш последний выровненный сектор: 976773167

Physical sector size: 4096 Divide by logical sector size: ÷512 ---- Sectors for block alignment: 8  Total sector count: 976773168 Divide by alignment sectors: ÷8 --------- Max 4KiB blocks: 122096646 Unusable sectors remainder: 0  Total sector count: 976773168 Subtract remainder: -0 --------- First unalignable sector: 976773168 Your last aligned sector: 976773167 

1MiB Блок выравнивания

Ваш последний выровненный сектор: 976773119

1MiB in bytes: 1048576 Divide by logical sector size: ÷512 ------- Sectors for 1MiB alignment: 2048  Total sector count: 976773168 Divide by alignment sectors: ÷2048 --------- Max 1MiB blocks: 476940 Unusable sectors remainder: 48  Total sector count: 976773168 Subtract remainder: -48 --------- First unalignable sector: 976773120 Your last aligned sector: 976773119 
Вы правы, конечно, это был GPT. Simon S 6 лет назад 0