This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm3730 加mmc ,EXT4系统 mount 大的分区后 JBD: no valid journal superblock found,找不到超级块,小分区没问题

Other Parts Discussed in Thread: DM3730

我用DM3730芯片,系统外部sd启动是可以的,我加入了emmc芯片,我在uboot下格式化了,在uboot下把EXT4文件系统拷贝到其中的分区,

制作命令是

dd if=/dev/zero of=./system.img bs=1M count=100

 $mkfs.ext4 system.img

dd if=/dev/zero of=./userdata.img bs=1M count=30
$mkfs.ext4 userdata.img

我把system.img 拷贝到system分区,把userdata.img拷贝到data分区,都是在uboot下拷贝的。

我在内核中把支持ext4  选项打开  efi选项打开。
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
+CONFIG_EFI_PARTITION=y
系统启动后,mount  DATA(30M)分区可以。成功,但是挂载system(100m)失败,log如下

jbd2/journal.c JBD: no valid journal superblock found
[    7.319427] JBD: unrecognised superblock format ID
[    7.330566] JBD: Journal too short (blocks 0-0).
[    7.335418] JBD: recovery failed
[    7.338836] EXT4-fs (mmcblk1p6): error loading journal

我如果在system分区拷贝也拷贝30m的文件系统,mount system分区也是正常的,我实验发现mount大的emmc(大于30m)分区就失败,mount小的分区(30m内的)就成功,大家有遇到吗

我用dumpe2ft命令查看30m的文件系统和100M的文件系统,他们的journal length 是不同的,30m的是1024,100M的是4096,其他也有些不一样,。我的emmc块都是1024字节

大家遇到这样的问题吗?给指个解决办法把

  • 你的dd会不会有问题,可以先用sd卡启动系统,然后format emmc,再把数据copy进去,看行不行。

  • Yaoming Qin,你好,,谢谢你的回复。我是参考这个链接做的emmc操作    http://59.124.231.13/index.php/Android_gingerbread_eMMC_booting

    现在遇到的问题是做的system。img文件 系统mount一直有问题,大家有还的方法吗

    你的想法是在ANDROID系统下格式化EMMC,在系统下格式化emmc的命令都不识别,请问那要怎么操作亚。linux的命令在android下都不识别。格式化、修复emmc的命令在ADB SHELL中都不支持

    http://59.124.231.13/index.php/Android_gingerbread_eMMC_booting这个链接是在UBOOT下分区emmc,和实现烧录,但是别的命令如擦除命令都没实现。在host机做各个IMG文件,然后再mkfs.ext4   格式化IMG文件,在UBOOT下烧录到emmc的各个分区

    我是参考这个链接做的emmc操作    http://59.124.231.13/index.php/Android_gingerbread_eMMC_booting   ,链接里操作分区是在uboot下操作的,

    制作system。img文件是这样的  :

    $cd <YOUR_PATH>/images
    /* creating 250MB, it can be configure as per need */
    $dd if=/dev/zero of=./system.img bs=1M count=250
    $mkfs.ext4 system.img
    $mkdir mnt-point
    $sudo mount -t ext4 -o loop system.img mnt-point/
    $cp -rfp <ANDROID_SOURCE>/out/target/product/omap3evm/system/* mnt-point/
    $sudo umount mnt-point


    这样操作做的system.img 文件,有250M,系统不识别,当bs=1M count=30  时,可以识别,但这太小不能用

    bd2/journal.c JBD: no valid journal superblock found
    [    7.316619] JBD: unrecognised superblock format ID
    [    7.327758] JBD: Journal too short (blocks 0-0).
    [    7.332611] JBD: recovery failed
    [    7.335998] EXT4-fs (mmcblk1p6): error loading journal

    我 后来用./make_ext4fs -s -l 512M -a system system_new.img system   命令产生system.img文件,但是用DUMPE2FS命令查看,说是没有超级块。我把 -s选项去掉了,有超级块,烧录后,系统mount时出现新的错误

    EXT4-fs error (device mmcblk1p6): ext4_mb_generate_buddy:736: group 1, 25600 blocks in bitmap, 27955 in gd
    Aborting journal on device mmcblk1p6-8.
    EXT4-fs (mmcblk1p6): Remounting filesystem read-only
    EXT4-fs error (device mmcblk1p6) in ext4_reserve_inode_write:5641: Journal has aborted
    EXT4-fs error (device mmcblk1p6) in ext4_evict_inode:215: Journal has aborted