Заголовок GPT (обычно в LBA 1) имеет поле PartitionEntryLBA
(см. 5.3.2 Заголовок GPT в спецификации). В различных ссылках (таких как запись GPT в Википедии) есть язык, описывающий это поле, которое говорит, что оно должно указывать на LBA 2.
В спецификации говорится: «Первичный массив ввода разделов GPT должен располагаться после основного заголовка GPT и заканчиваться перед первым используемым LBA».
В этом контексте, кажется, есть некоторая комната для маневра, связанная с "после". Это не обязательно означает, что сразу после - первая запись раздела может быть некоторым количеством LBA после заголовка и все же соответствовать этому руководству в спецификации.
Я использую встроенный процессор, который ищет таблицу векторов 4k во втором секторе карты памяти (например, SD). Поэтому я не могу поместить туда записи раздела GPT. Поэтому я хотел бы написать записи раздела GPT после этой таблицы (смещение 5 Кбайт при условии 512 байт секторов). Я думаю, что это разумно, но я не смотрел ни на какие стандартные инструменты разметки GPT (например, parted на linux), чтобы посмотреть, будет ли / как это поддерживаться. Также не смогут ли стандартные загрузчики (например, u-boot) найти таблицу записей разделов в таком месте.
Поэтому мне интересно услышать о практическом опыте с нетипичными местоположениями таблицы записей разделов GPT (т. Е. Не на LBA 2 для основной копии таблицы) с различными инструментами разбиения и загрузчиками. Предпочтение bsd/linux, но мне интересно услышать и о других средах (даже анекдоты о некоторых коммерческих операционных системах).
Это что-то вроде открытого расследования. Если говорить более конкретно, есть ли какие-либо известные случаи сбоев с нетипичными местоположениями таблицы записей разделов GPT и существующими инструментами разбиения и / или загрузчиками?
Вы можете ознакомиться со спецификациями UEFI здесь: http://www.uefi.org/specifications. Я смотрел последнюю версию (ревизия 2.4, опечатки C).
У меня пока нет членства в UEFI (http://www.uefi.org/join), поэтому у меня нет доступа к форуму там (http://www.uefi.org/FWOSForum).
п.с. Кажется, есть еще более сильное требование (?) что заголовок первичного ГПТА быть в LBA 1 , даже если есть поле StartingLBA
в PMBR (при LBA 0). В спецификации это специально пишется, что поле StartingLBA
должно быть LBA 1. Но зачем беспокоиться о поле, если оно должно быть на LBA 1? Почему бы не позволить заголовку GPT находиться на LBA 10, если ситуация требует этого? Это не является необходимым в моем текущем случае использования, и вопросы на этом форуме несколько риторически (вероятно, лучше задавать на официальных форумах UEFI).