Erstellen einer GPT-Partition mit sgdisk auf emmc 2GB

2169
Reddy

Ich versuche, meine 2 GB emmc-Partition mit sgdisk zu partitionieren, um eine GPT-Partitionstabelle zu erhalten. Die Befehle zeigen den Erfolg an und auch die GPT-Partitionstabelle sieht aktualisiert aus (auch beim Neustart), aber die Partitionen werden überhaupt nicht erstellt. Bedeutet, wenn ich mit ls / dev / mmcblk0 überprüfe, werden die von mir erstellten Partitionen nicht angezeigt. und die meine sgdisk versuchen immer die partition auf p1 zu erstellen aber es werden keine p2, p3, .... angezeigt.

Im Folgenden sind die Befehle, die ich verwende, und sgdisk -p zeigt die Partitionen, die ich erstellt habe. Es werden jedoch keine Partitionen erstellt / dev / mmcblk0 (p1, p2, p3). Auch in den Protokollen kann man immer versuchen, p1 zu erstellen, das für spätere Partitionen p2 und p3 sein sollte. Können Sie bitte mit sgdisk beim Erstellen der Partitionen in emmc helfen?

# 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
Können Sie die Ausgabe der Befehle anzeigen, die Sie versucht haben? Mokubai vor 8 Jahren 1
Mokubai: Ich habe die Frage mit der Ausgabe aktualisiert Reddy vor 8 Jahren 0
@RodSmith Das ist genau in Ihrer Gasse MariusMatutiae vor 8 Jahren 0

1 Antwort auf die Frage

1
Reddy

CONFIG_EFI_PARTITION muss in der Linux-Kernel-Konfiguration aktiviert werden.

make linux-menuconfig Block-Layer aktivieren -> Partitionstypen -> "EFI GUID Partition Support" auswählen

Damit kann ich sehen, dass erstellte Partitionen auf die Festplatte geschrieben werden ...

Es ist auch eine andere Einstellung erforderlich, wenn mehr als 8 Partitionen erstellt werden sollen.

│ Symbol: MMC_BLOCK_MINORS [= 8]
│ Typ: Ganzzahl │
Range: [4 256]

│ │ │ │ │ │ │ │ │ │ │ │ │ at at at at at drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers drivers │
│ │ Abhängig von: MMC [= y] && MMC_BLOCK [= y] │
│ Ort: │
│ -> Gerätetreiber │
│ -> Unterstützung für MMC / SD / SDIO-Karten (MMC [= y]) │
│ -> MMC-Blockgerätetreiber (MMC_BLOCK [= y])

Das Ändern des Werts unterstützt bis zu 256 Partitionen ...

Dies ist eine gute Erinnerung für diejenigen, die ihren eigenen Kernel zusammenstellen! Die Unterstützung von IIRC und GPT ist in den Standardeinstellungen nicht aktiviert. Sie müssen daher beim Kompilieren Ihres eigenen Kernels überprüft werden. Die meisten Benutzer verwenden vorkompilierte Kernel von Distributionen wie Ubuntu oder Fedora, und diese haben immer GPT-Unterstützung aktiviert, sodass dieses Detail in der Benutzerdokumentation oft nicht erwähnt wird. Rod Smith vor 8 Jahren 0
@RodSmith Du hast recht. Ich habe diese Information nirgends gefunden und seltsamerweise wird über die fehlende Unterstützung nirgendwo ein Fehler angezeigt. Die sgdisk zeigt die GPT-Tabelle mit den aktualisierten Partitionsinformationen. Reddy vor 8 Jahren 0
GPT fdisk liest und schreibt die Sektoren direkt auf die Festplatte. Es ist nicht darauf angewiesen, dass der Kernel die Daten interpretiert, weshalb `sgdisk` die Partitionen als vorhanden anzeigt - sie existieren, obwohl der Kernel sie nicht lesen kann. Die Notwendigkeit für die Kernel-Unterstützung * wird * in der GPT-Dokumentation von fdisk * erwähnt, jedoch nicht prominent auf der Seite [Booting from GPT] (http://www.rodsbooks.com/gdisk/booting.html). (Suchen Sie nach "EFI GUID", um es zu finden.) Rod Smith vor 8 Jahren 0
Danke, RodSmith. Mein Problem ist nicht vollständig gelöst. Mit der obigen Kernelkonfigurationsunterstützung kann ich zwar Partitionen erstellen, aber nur 7 Partitionen (nach der GPT-Tabelle wird angegeben, dass alle Einträge korrekt sind (10), aber sie werden nicht erstellt. Haben Sie einen Hinweis darauf?) Bei Bedarf kann ich dies tun Neue Frage dazu erstellen ... FYI: Ich versuche es auf 2 GB emmc Reddy vor 8 Jahren 0
Sehr alte Kernel hatten ein Limit für die Anzahl der Partitionen, die Sie pro Platte erstellen konnten. Diese Grenzwerte bezogen sich auf die Haupt- und Nebenzahlen der Geräteknoten. Es könnte sein, dass Sie auf dieses uralte Problem stoßen, weil Sie eine andere Kerneloption übersehen haben oder ein fehlendes oder falsch konfiguriertes Dienstprogramm für den Benutzerraum (IIRC, udev spielt dabei eine Rolle). Um ehrlich zu sein, es ist schon so lange her, dass ich mich damit auseinandersetzen musste, dass ich mich nicht an die Details erinnere, aber eine Suche in diese Richtung könnte produktiv sein. Rod Smith vor 8 Jahren 0