使用 sgdisk 在 emmc 2GB 上创建 GPT 分区

使用 sgdisk 在 emmc 2GB 上创建 GPT 分区

我正在尝试使用 sgdisk 对我的 2GB emmc 进行分区,以获得 GPT 分区表。命令显示成功,并且 GPT 分区表看起来已更新(即使在重新启动时),但根本没有创建分区。这意味着当我使用 ls /dev/mmcblk0 检查时,它不会显示我创建的分区。并且我的 sgdisk 总是尝试在 p1 上创建分区,但没有显示 p2、p3、....。

下面是我正在使用的命令,sgdisk -p 显示我创建的分区,但没有创建分区 /dev/mmcblk0 (p1、p2、p3)。此外,在日志中,您可以看到它总是尝试创建 p1,而 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.

答案1

需要在 Linux 内核配置中启用 CONFIG_EFI_PARTITION。

make linux-menuconfig 启用块层 –> 分区类型 -> 选择“EFI GUID 分区支持”

通过这个,我就能看到创建的分区被写入磁盘......

如果您计划创建超过 8 个分区,还需要查看另一个设置。

│ 代號:MMC_BLOCK_MINORS [=8]
│ 类型:整数 │
范围:[4 256]
│ 提示:每个块设备的次要设备数量 │
│ 定义于 drivers/mmc/card/Kconfig:17 │
│ 取决于:MMC [=y] && MMC_BLOCK [=y] │
│ 位置:│
│ -> 设备驱动程序 │
│ -> MMC/SD/SDIO 卡支持(MMC [=y]) │
│ -> MMC 块设备驱动程序(MMC_BLOCK [=y])

更改该值将支持最多 256 个分区...

相关内容