Почему между каждым логическим разделом 2048 секторов?

8

Я знаю о расширенном формате и настройке 2048 свободных секторов в начале диска. Но я просто преобразовал таблицу разделов моего диска из MS-DOS в GPT, и я заметил это:

Перед:

Number  Start   End     Size    Type      File system     Flags
        32,3kB  1049kB  1016kB            Free Space
 1      1049kB  31,5GB  31,5GB  primary   ntfs            
 2      31,5GB  43,0GB  11,5GB  primary
 3      43,0GB  44,1GB  1074MB  primary   linux-swap(v1)
 4      44,1GB  80,0GB  36,0GB  extended
 5      44,1GB  54,6GB  10,5GB  logical
 6      54,6GB  65,0GB  10,5GB  logical   ext4            boot
 7      65,0GB  80,0GB  15,0GB  logical
        80,0GB  80,0GB  56,8kB            Free Space

После:

Number  Start   End     Size    File system     Name                  Flags
        17,4kB  1049kB  1031kB  Free Space
 1      1049kB  31,5GB  31,5GB  ntfs            Microsoft basic data  msftdata
 2      31,5GB  43,0GB  11,5GB                  Linux filesystem
 3      43,0GB  44,1GB  1074MB  linux-swap(v1)  Linux swap
        44,1GB  44,1GB  1049kB  Free Space
 5      44,1GB  54,6GB  10,5GB                  Linux filesystem
        54,6GB  54,6GB  1049kB  Free Space
 6      54,6GB  65,0GB  10,5GB  ext4            Linux filesystem
        65,0GB  65,0GB  1049kB  Free Space
 7      65,0GB  80,0GB  15,0GB                  Linux filesystem
        80,0GB  80,0GB  39,9kB  Free Space

Как видите, здесь есть 3 дополнительных пробела (2048 секторов), каждый для одного расширенного раздела. Между 1-м и 2-м и 2-м и 3-м разделами нет пробелов.

Кто-нибудь знает, почему существуют разрывы только между логическими разделами?

Михаил Морфиков
источник
Как именно вы конвертировали диск "из MBR в GPT"? Тип таблицы разделов MBR отсутствует. Может быть, вы имели в виду DOS, но все же, как вы конвертировали?
phunehehe
Я просто использовал gdisk.
Михаил Морфиков
Как вы конвертируете, используя gdisk? Это важно, потому что вы (или программа, которую вы используете), возможно, сделали что-то не так при конвертации.
phunehehe
1
Я следовал этим шагам - wiki.archlinux.org/index.php/…
Михаил Морфиков
Невозможно определить, не увидев таблицу разделов с единицами, установленными для секторов диска (2048 512-байтовых секторов составляют 1 МБ, что меньше точности перечисленных десятичных чисел). Перегородки MS-DOS имеют странный эмоциональный багаж, который заставляет выравниваться по различным (теперь произвольным) числам, иногда оставляя неиспользованные сектора в конце. Я понятия не имею, почему это относится только к логическим разделам.
Алексиос

Ответы:

8

В наши дни разделители любят выравнивать разделы на границе mebibyte. Для разбиения MBR существует 4 основных раздела, а для остальных вам нужны расширенные и логические разделы.

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

Все эти таблицы разделов занимают всего несколько байтов за пределами разделов, но из-за выравнивания в мегабайтах для них необходимо использовать полный мегабайт.

GPT на другом конце хранит всю информацию о разделах в начале диска (с резервной копией в конце), поэтому после преобразования то пространство, которое использовалось для таблиц разделов логических разделов, становится свободным.

Обратите внимание, что вам нужен только один сектор для хранения этих таблиц логических разделов MBR, так что строго говоря, в разделах MBR было бы 2047 свободных секторов, если бы разделитель хотел не выравнивать разделы по границам в мегабайтах.

Стефан Шазелас
источник
Теперь я понял, что есть один EBR для каждого логического диска, и «Вторая запись таблицы разделов EBR будет содержать ноль байтов, если это последний EBR в расширенном разделе; в противном случае он указывает на следующий EBR в цепочке EBR. "
Михаил Морфиков