Создание раздела GPT с использованием sgdisk на emmc 2GB

2360
Reddy

Я пытаюсь разделить мой 2GB emmc, используя sgdisk, чтобы получить таблицу разделов GPT. Команды показывают успех, а также таблица разделов GPT выглядит обновленной (даже при перезагрузке), но разделы не создаются вообще. Означает, что при проверке с использованием ls / dev / mmcblk0 не отображаются разделы, которые я создал. и мой sgdisk всегда пытается создать разделы на p1, но p2, p3, .... не отображаются.

Ниже приведены команды, которые я использую, и sgdisk -p показывает созданные мной разделы, но нет созданных разделов / dev / mmcblk0 (p1, p2, p3). Также в журналах видно, что он всегда пытается создать p1, который должен был быть p2 и p3 для последующих разделов. Не могли бы вы помочь с использованием sgdisk для создания разделов в emmc ...

# sgdisk -og /dev/mmcblk0 mmcblk0: p1 The operation has completed successfully. # sgdisk -p /dev/mmcblk0 Disk /dev/mmcblk0: 3751936 sectors, 1.8 GiB Logical sector size: 512 bytes Disk identifier (GUID): 27F5FD73-8C2A-4448-91F6-251B72C64843 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 3751902 Partitions will be aligned on 2048-sector boundaries Total free space is 3751869 sectors (1.8 GiB)  Number Start (sector) End (sector) Size Code Name  # sgdisk -n 1:2048:264191 -c 1:"kernel" /dev/mmcblk0 Setting name! partNum is 0 REALLY setting name! mmcblk0: p1 The operation has completed successfully.  # sgdisk -n 2:264192:395263 -c 2:"rootfs" /dev/mmcblk0 Setting name! partNum is 1 REALLY setting name! mmcblk0: p1 The operation has completed successfully.  # sgdisk -n 3:395263:460799 -c 3:"data" /dev/mmcblk0 Information: Moved requested sector from 395263 to 395264 in order to align on 2048-sector boundaries. Setting name! partNum is 2 REALLY setting name! mmcblk0: p1 The operation has completed successfully.  # sgdisk -p /dev/mmcblk0 Disk /dev/mmcblk0: 3751936 sectors, 1.8 GiB Logical sector size: 512 bytes Disk identifier (GUID): 27F5FD73-8C2A-4448-91F6-251B72C64843 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 3751902 Partitions will be aligned on 2048-sector boundaries Total free space is 3293117 sectors (1.6 GiB)  Number Start (sector) End (sector) Size Code Name 1 2048 264191 128.0 MiB 8300 kernel 2 264192 395263 64.0 MiB 8300 rootfs 3 395264 460799 32.0 MiB 8300 data  # ls /dev/mmcblk0 mmcblk0 mmcblk0boot0 mmcblk0boot1 mmcblk0p1  # cat /proc/partitions major minor #blocks name  179 0 1875968 mmcblk0 179 1 1875967 mmcblk0p1 179 16 1024 mmcblk0boot1 179 8 1024 mmcblk0boot0  No logical partitions created. 
0
Можете ли вы показать вывод команд, которые вы пробовали? Mokubai 9 лет назад 1
Мокубай: я обновил вопрос с выводом Reddy 9 лет назад 0
@RodSmith Это прямо по твоему переулку MariusMatutiae 9 лет назад 0

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

1
Reddy

Необходимо включить CONFIG_EFI_PARTITION в конфигурации ядра Linux.

make linux-menuconfig Включить блочный слой -> Типы разделов -> Выбрать «Поддержка разделов EFI GUID»

Благодаря этому я могу видеть, как созданные разделы записываются на диск ...

Также есть еще один параметр, который нужно посмотреть, если вы планируете создать более 8 разделов.

│ Символ: MMC_BLOCK_MINORS [= 8]
│ Тип: целое число │
Диапазон: [4 256]
│ Подсказка: количество минор на одно блочное устройство │
│ Определено в драйверах / mmc / карта / Kconfig: 17 │
│ Зависит от: MMC [= y] && MMC_BLOCK [= y] │
│ Расположение: │
│ -> Драйверы устройств │
│ -> Поддержка карт MMC / SD / SDIO (MMC [= y]) │
│ -> Драйвер блочного устройства MMC (MMC_BLOCK [= y])

Изменение значения будет поддерживать до 256 разделов ...

Это хорошее напоминание для тех, кто собирает свои ядра! IIRC, поддержка GPT не включена в настройках по умолчанию, поэтому проверка необходима при компиляции собственного ядра. Большинство людей используют предварительно скомпилированные ядра из дистрибутивов, таких как Ubuntu или Fedora, и в них всегда включена поддержка GPT, поэтому эта деталь часто не упоминается в пользовательской документации. Rod Smith 9 лет назад 0
@RodSmith Вы правы. Я нигде не нашел эту часть информации, и, как ни странно, нигде не отображается сообщение об отсутствующей поддержке, а sgdisk показывает таблицу GPT с обновленной информацией о разделе. Reddy 9 лет назад 0
GPT fdisk читает и записывает сектора на диске напрямую; оно не полагается на ядро ​​для интерпретации данных, поэтому `sgdisk` показывает разделы как существующие - они существуют, даже если ядро ​​не может их прочитать. Необходимость поддержки ядра * упоминается * в документации GPT по fdisk, хотя и не так заметно, на странице [Загрузка из GPT] (http://www.rodsbooks.com/gdisk/booting.html). (Ищите «EFI GUID», чтобы найти его.) Rod Smith 9 лет назад 0
Спасибо РодСмит. Моя проблема не полностью решена. с вышеупомянутой поддержкой конфигурации ядра я могу создать разделы, но только 7 разделов (после того, как эта таблица GPT показывает, что она имеет правильную запись для всех (10), но они не созданы. У вас есть какие-либо подсказки по этому поводу?. При необходимости я могу создать новый вопрос об этом ... FYI: я пытаюсь это на 2GB emmc Reddy 9 лет назад 0
У очень старых ядер были ограничения на количество разделов, которые вы можете создать на диск. Эти ограничения были связаны с основными и младшими номерами узла устройства. Возможно, вы столкнулись с этой древней проблемой из-за другой опции ядра, которую вы пропустили, или, возможно, из-за отсутствующей или неправильно настроенной утилиты пользовательского пространства (IIRC, udev играет в этом роль). Честно говоря, я так долго не сталкивался с этим, что не помню деталей, но поиск по этим направлениям может быть продуктивным. Rod Smith 9 лет назад 0

Похожие вопросы