U-boot 2016.07:ext4fs_devreadは外部パーティションを読み込みます

U-boot 2016.07:ext4fs_devreadは外部パーティションを読み込みます

U-Bootの最新リリース(2016.07)では、突然次の不明なエラーメッセージが生成され始めました。

U-Boot> ext4load mmc 0:2 ${ramdisk_addr_r} /initramfs.uImage
invalid extent block
ext4fs_devread read outside partition 4294967294

Google検索結果一部2014年に完了した実際のU-Boot修正に関する以前のメーリングリストの交換。したがって、この情報はこの問題とは関係がないようです。

ホストは問題のあるファイルシステムを正常にマウントできます。時々、ubootはファイルを正常に読み込んでいましたが、主な影響要因がわかりません。

答え1

(答えを見つけるのに3日かかったので、Googleユーザーのためにここに答えを残します。)

最新および最高(> 1.43)では、EXT4ファイルシステム機能がe2fsprogs有効になっています。64bitを見ると、これがあなたのシステムに該当することを確認できます/etc/mke2fs.conf。私はこれを持っています:

[fs_types]
        ext4 = {
                features = has_journal,extent,huge_file,flex_bg,64bit,dir_nlink,extra_isize
                inode_size = 256
        }

したがって、生成されたすべてのファイルシステムでは、次の機能が有効にmkfs.ext4なります。64bit

$ sudo tune2fs -l /dev/sda1 | grep 'Filesystem features:'
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize

U-Bootはそれまでこのファイルシステムを理解していません。これ上記のメッセージでコミットが終了します。

64bit修正は、EXT4ファイルシステムを作成し、その機能を明示的に無効にすることです。

$ sudo mkfs.ext4 -O ^64bit /dev/sda1

関連情報