
Я использовал fdisk для перемещения разделов Ubuntu Mate с границы в 1 МБ на границу в 4 МБ на SD-карте.
Раздел «boot» теперь начинается с блока 8192.
Именно так настроены дистрибутивы Raspbian, что вполне логично для разделов, согласующихся с Erase Block Group.
Все работает нормально, но gparted показывает неиспользуемый блок размером 4 МБ перед разделом «boot», который не отображается для Raspbian.
Мой вопрос в том, как система «узнает», что первые 4 МБ зарезервированы для загрузки на одном диске, но я думаю, что на моем модифицированном диске зарезервирован только 1 МБ.
РЕДАКТИРОВАТЬ
Я только что купил совершенно новую карту памяти SDHC объемом 8 ГБ с разделом FAT32Lba, начинающимся с блока 8192. Я выгрузил первые 4 МБ, содержащие 00, за исключением 16 байт, содержащих таблицу разделов, так что, похоже, здесь нет ничего особенного.
решение1
Я рекомендую вам:
- Выровняйте
DOS-partitions
так, чтобы начать с сектора64
. - Если нужен только один раздел и нет загрузочного сектора, избегайте использования таблиц разделов.
Для 62
загрузчиков DOS-partition tables
. С моей точки зрения, нет веских причин выравнивать раздел по 4M
, только по 4K
.
Мой вопрос в том, как система «узнает», что первые 4 МБ зарезервированы для загрузки на одном диске, но я думаю, что на моем модифицированном диске зарезервирован только 1 МБ.
Технически 4M
не зарезервированы для загрузки. Они не используются. (кроме первого 32256 bytes
).
Я только что купил совершенно новую карту памяти SDHC объемом 8 ГБ с разделом FAT32Lba, начинающимся с блока 8192. Я выгрузил первые 4 МБ, содержащие 00, за исключением 16 байт, содержащих таблицу разделов, так что, похоже, здесь нет ничего особенного.
Для определения таблицы разделов полезны только параметры Master Boot Record
require и .512 bytes
16 bytes
В дополнение к этому 512 bytes
, 62 sectors
может использоваться bootloader
, так что не больше, чем 32256 bytes (63 sectors)
требуется для , DOS bootloader with MBR
а остальное технически unused
.