i.MX8M Plus EXT4-fs エラー
EXT4-fs エラー (デバイス dm-6): ext4_find_dest_de:2030: inode #228492: ブロック 918033: comm Binder:296_3: ディレクトリ内のエントリが不正です: rec_len が最小値より小さい - offset=0、inode=0、rec_len=0、lblk=0、size=4096 fake=1
追加のトレースは、パニックがdm-6のEXT4メタデータエラーに対する設定された応答であることを確認できます。Binderはおそらく、EXT4が破損したディレクトリブロックを検出した際にファイルを作成・開いたユーザースペースのThreadだと思います。
どうしたの:
つまり、直近の問題はdm-6の背後にあるブロックデバイスのファイルシステムの破損であって、Binderドライバーの故障ではありません。
DM-6が暗号化されたユーザーデータデバイスであれば、最も可能性の高い場所はAndroid /data / userdataです。NXP i.MX Linuxのドキュメントによると、EXT4ファイルシステムはデバイスマッパー型のクリプトデバイス上で作成可能であり、クリプトターゲットはブロックI/Oをインターセプトします。NXPのAndroidノートは、ユーザーデータを消去した後、Androidが初回起動時にEXT4ファイルシステムと暗号化設定を再作成し、通常の起動時にe2fsckを呼び出してファイルシステムを確認できると記載しています。
推奨デバッグ手順:
adb root
adb shell mount | grep dm-6
adb shell cat /proc/mounts | grep dm-6
adb shell ls -l /dev/block/mapper
adb shell ls -l /dev/block/by-name
adb shell dmctl list devices
adb shell dmsetup テーブル
次に、EXT4パニックが発生する前に、下位レイヤーの本当の原因を確認します。
adb shell dmesg | grep -Ei "mmc|cqhci|timeout|I/O error|Buffer I/O|dm-|verity|ext4|jbd2"
dm-6 が /data / userdata にマッピングされる場合:
e2fsck -f -y /dev/block/by-name/userdata
または、意図したアンマウントファイルシステムのターゲットが正しいマッピングされたノードである場合に限り、そのノードで実行します。
e2fsck -f -y /dev/block/dm-6
NXPコミュニティのガイドラインでは、類似のEXT4破損に対してfsck / e2fsckでファイルシステムの確認・修復を行うことが推奨されています。報告されたEXT4の破損事例1件はe2fsckで解決されました。
ユニットが開発ボードであり、データ保存が不要な場合、よりクリーンな復旧は通常以下の通りです:
fastbootでユーザーデータを消去
fastboot reboot
またはAndroidイメージセットを再フラッシュする。Androidは通常のユーザーデータ暗号化フローで、初回起動時にユーザーデータを再作成します。
根本原因を突き止めるには、以下の点に注目してください。
要点:dm-6 をマップします。それがユーザーデータの場合は、オフラインで e2fsck を実行するか、ユーザーデータを消去/再作成し、eMMC の電源喪失/リセット、低レベルの MMC I/O エラー、および DDR の安定性を根本原因として調査します。