imx6ull EMMC分区 sfdisk命令

使用mfgtools烧录imx6ull时,如何对emma进行分区?根据查看ucl2.xml得知

在Profiles\linux\OS Firmware下有一个mksdcard.sh文件,正是这个脚本对EMMC设备进行的分区。

内容如下:

#!/bin/sh

# partition size in MB
BOOT_ROM_SIZE=10
PARTITION_KERNEL_START=10
KERNEL_SIZE=40
PARTITION_ROOTFS0_START=60
ROOTFS0_SIZE=300
PARTITION_ROOTFS1_START=400
ROOTFS1_SIZE=300
PARTITION_DATA_START=750

# wait for the SD/MMC device node ready
while [ ! -e $1 ]
do
sleep 1
echo “wait for $1 appear”
done

# call sfdisk to create partition table
# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=1024 count=1

sfdisk --force ${node} << EOF
${PARTITION_KERNEL_START}M, ${KERNEL_SIZE}M, 0c
${PARTITION_ROOTFS0_START}M, ${ROOTFS0_SIZE}M, 83
${PARTITION_ROOTFS1_START}M, ${ROOTFS1_SIZE}M, 83
${PARTITION_DATA_START}M,,83
EOF

下面解释下上面的语句

dd if=/dev/zero of=${node} bs=1024 count=1

这一句是清空EMMC的分区表

sfdisk命令进行了分区:

sfdisk命令的Unnamed-fields format输入格式如下:

<start> <size> <type> <bootable>

对应的还有Named-fields format格式,就是field=value

上述参数没有赋值的话会有默认值,具体请参考sfdisk(8) - Linux manual page

 每一行上述的参数集合表示一个分区,在我们的例子中就是有4个分区。

选取1个进行说明:

${PARTITION_KERNEL_START}M, ${KERNEL_SIZE}M, 0c 替换完参数就是:

10M, 40M, 0c

10M对应<start>,表示分区起始偏移值

40M对应<size>,表示分区大小

0c对应<type> 0c表示windows FAT分区,83表示linux分区

猜你喜欢

转载自blog.csdn.net/MashiMaroJ/article/details/128790429