使用 sfdisk 分区 eMMC 时出现的问题

使用 sfdisk 分区 eMMC 时出现的问题

我正在为基于 am335x 的定制板编写固件(MLO、u-boot.img、uImage(ver 3.12)、dtb、rootfs.tar.gz)编程脚本。
根文件系统将被放置到eMMC上。当板在编程站首次启动时,固件编程脚本作为 nfsroot 文件夹中的 init 脚本之一运行。

基本上是脚本
1. 对 eMMC 进行分区
2. 在第一个分区的原始区域写入 MLO、u-boot.img、uImage、dtb
3. 然后将其他分区格式化为 ext4 和
4. 挂载 ext4 分区并提取 rootfs .tar.gz。

现在脚本有两个问题,一个是备份内核内存区域问题。

脚本问题

  1. 我无法创建超过 7 个分区(包括逻辑分区),尽管 sfdisk 创建与分区相关的分区设备文件在 /dev 目录中不可用

这是我使用的 sfdisk 命令

#Partition emmc 
sfdisk -D -H 255 -S 63 -C 467 /dev/mmcblk0 -uM << EOF
,32,C,*
,200,L
,200,L
,,E
,100,L
,60,L
,200,L
;1269,L
;
EOF

当我列出分区 fdisk/sfdisk 报告 8 个分区,但我没有看到与第 8 个分区相关的分区文件。

这是 fdisk 的输出,

# fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 3841 MB, 3841982464 bytes
255 heads, 63 sectors/track, 467 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

        Device Boot      Start         End      Blocks  Id System
/dev/mmcblk0p1   *           1           5       40131   c Win95 FAT32 (LBA)
/dev/mmcblk0p2               6          31      208845  83 Linux
/dev/mmcblk0p3              32          57      208845  83 Linux
/dev/mmcblk0p4              58         467     3293325   5 Extended
/dev/mmcblk0p5              58          70      104391  83 Linux
/dev/mmcblk0p6              71          78       64228+ 83 Linux
/dev/mmcblk0p7              79         104      208813+ 83 Linux
/dev/mmcblk0p8             105         266     1301233+ 83 Linux
/dev/mmcblk0p9             267         467     1614501  83 Linux
  1. 有时,分区 eMMC 设备文件(/dev/mmcblk0p2、/dev/mmcblk0p3 等)后不会出现,mkfs 实用程序无法格式化分区且固件刷新失败。

eMMC内存问题

eMMC 的第一个分区的类型为“Win95 FAT32 (LBA)” 我们不会格式化该分区并将其用作原始分区。

该分区中有 3 个 MLO 副本、2 个 u-boot.img、uImage 和 dtb 副本。

现在,在尝试使用 dd 多次刷新后,uImage 第一个复制内存区域已损坏,并且主板抱怨该分区中的图像已损坏。

现在,如果 eMMC 具有处理磨损均衡和纠错机制的控制器,那么存储内核的内存区域是如何损坏的?

对上述问题有任何建议/想法/指示吗?

相关内容