sfdisk를 사용하여 eMMC를 분할할 때 발생하는 문제

sfdisk를 사용하여 eMMC를 분할할 때 발생하는 문제

나는 am335x 기반의 커스텀 보드용 펌웨어(MLO, u-boot.img, uImage(ver 3.12), dtb, rootfs.tar.gz) 프로그래밍 스크립트를 작성 중입니다.
루트 파일 시스템은 eMMC에 배치됩니다. 보드가 프로그래밍 스테이션에서 처음 부팅되면 펌웨어 프로그래밍 스크립트는 nfsroot 폴더에 있는 init 스크립트 중 하나로 실행됩니다.

기본적으로 스크립트
1. eMMC 파티션
2. 첫 번째 파티션의 raw 영역에 MLO, u-boot.img, uImage, dtb 작성
3. 그런 다음 다른 파티션을 ext4로 포맷하고
4. ext4 파티션 마운트 및 추출 rootfs.tar.gz.

현재 스크립트에는 두 가지 문제가 있습니다. 하나는 커널 메모리 영역을 백업하는 문제입니다.

스크립트 문제

  1. sfdisk가 /dev 디렉터리에서 사용할 수 없는 파티션과 관련된 파티션 장치 파일을 생성하지만 7개 이상의 파티션(논리 파티션 포함)을 생성할 수 없습니다.

이것은 내가 사용하는 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)" 유형입니다. 이 파티션을 포맷하지 않고 원시 파티션으로 사용합니다.

이 파티션에는 MLO 복사본 3개, u-boot.img, uImage 및 dtb 복사본 2개가 있습니다.

이제 dd를 사용하여 여러 번 새로 고침을 시도한 후 uImage가 처음 복사한 메모리 영역이 손상되고 마더보드에서 해당 파티션의 이미지가 손상되었다고 불평합니다.

이제 eMMC에 마모 평준화 및 오류 수정 메커니즘을 처리하는 컨트롤러가 있는 경우 코어가 저장된 메모리 영역은 어떻게 손상됩니까?

위 문제에 대한 제안/아이디어/포인터가 있습니까?

관련 정보