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.

[参考译文] Linux:由于 NOR 闪存断电而导致 ubifs 损坏

Guru**** 2614265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/581487/linux-ubifs-corruption-due-to-power-cut-on-nor-flash

工具/软件:Linux

您好!

目前、我面临着停电期间的 ubifs 腐败问题。
在下一个下电上电期间、我无法安装支架。
是否有人可以建议一些指示来解决此损坏问题。

请在下面找到闪存详细信息和调试日志-

以下不是 FLAH 的详细信息
NOR 闪存大小= 64MB
NOR 闪存 = MX29GL512F
我们使用3.10内核。

调试日志
[1.302436]   UBIFS:需要恢复
[   3.2331933] UBIFS 错误(pid 1):ubifs_read_node:错误节点类型(160、但预期为3)
[3.239651]   UBIFS 错误(pid 1):ubifs_read_node:LEB 19:68712处节点错误、LEB 映射状态1
[3.248398]   不是节点,前24个字节:
[3.252051]   00000000:C0 06 be 00 20 08 be 00 80 09 be 00 e0 0A be 00 40 0c be 00 a0 0d be 00                         … 三 @…
[3.265047]   CPU:1 PID:1 Comm:swapper/0未被污染3.10.37-LTSI-rt37-n脏#141
[3.272619]   [<8001480c>](eLOG_backtrace+0x0/0xf4)、来自[<800119fc>](show_stack+0x10/0x14)
[3.281122]   [<800119fc>](show_stack+0x10/0x14)来自[<80175ab8>](ubifs_read_node +0x224/0x290)
[3.289795]   [<80175ab8>](ubifs_read_node +0x224/0x290)来自[<80191ba0>](ubifs_TNC 读取节点+0x4c/0x13c)
[3.299329]   [<80191ba0>](ubifs_TNC 读取节点+0x4c/0x13c)来自[<801769e4>](TNC 读取节点 nm+0x5c/0x1dc)
[3.308864]   [<801769e4>](TNC 读取节点 nm +0x5c/0x1dc)来自[<8017a2c0>](ubifs_TNC 下一步_ent+0x130/0x194)
[3.318398]   [<8017a2c0>](ubifs_TNC next _ent+0x130/0x194)来自[<8017a3a0>](ubifs_TNC _remove_ino+0x7c/0x114)
[3.328277]   [<8017a3a0>](ubifs_TNC _remove_ino+0x7c/0x114)、从[<8017cc28>](ubifs_replay_journal+0xdf8/0x1384)
[3.338415]   [<8017cc28>](ubifs_replay_journal+0xdf8/0x1384)来自[<801720c8>](ubifs_mount+0x1190/0x17e8)
[3.348039]   [<801720c8>](ubifs_mount+0x1190/0x17e8)、从[<800c623c>](mount_fs+0x14/0xcc)
[3.356366]   [<800c623c>](LOAD_FS+0x14/0xcc)、来自[<800dd780>](vfs_kern_LOAD+0x48/0xc8)
[3.364606]   [<800dd780>](vfs_kern_mount+0x48/0xc8)、来自[<800dfa24>](do_mount+0x190/0x87c)
[3.373017]   [<800dfa24>](DO_LOAD+0x190/0x87c)来自[<800e0194>](SYS_LOAD+0x84/0xb8)
[3.381004]   [<800e0194>](SYS_MOUNT+0x84/0xb8)来自[<8045af2c>](MOUNT_BLOCK_ROT+0x144/0x2d0)
[3.389675]   [<8045af2c>](mount_block_root+0x144/0x2d0)(从[<8045b2b0>](Prepare_namespace +0xa8/0x1c8)
[3.399123]   [<8045b2b0>](preping_namespace + 0xa8/0x1c8)、来自[<8045accc>](kernel_init_freeed+0x288/0x298)
[3.408921]   [<8045accc>](kernel_init_freeed+0x288/0x298)从[<80352144>](kernel_init+0xc/0x160)
[3.418112]   [<80352144>](kernel_init+0xc/0x160)来自[<8000df98>](ret_farn+0x14/0x3c)
[3.428012]   UBIFS:后台线程"ubifs_bgt0_0"停止
[3.433797]   所有分区列表:
[3.437289]   1f00          61440 mtdblock0 (驱动程序?)
[3.442337]   1f01          60612 mtdblock1 (驱动程序?)
[3.447378]   No filesystem could mount root,tryed: ubifs
[3.452784]   内核紧急情况-未同步:VFS:无法在未知块(0、0)上安装根 FS
[3.452789]   CPU0:正在停止
[3.452797]   CPU:0 PID:0 Comm:swapper/0未被污染3.10.37-LTSI-rt37-脏#141
[3.452826]   [<8001480c>](elee_backtrace+0x0/0xf4)、来自[<800119fc>](show_stack+0x10/0x14)
[3.452838]   [<800119fc>](show_stack+0x10/0x14)、从[<80012f00>](handle_ipi+0x108/0x168)
[3.452848]   [<80012f00>](handle_ipi+0x108/0x168)来自[<80008540>](GIC_handle_IRQ+0x58/0x5c)
[3.452858]   [<80008540>](GIC_Handle_IRQ+0x58/0x5c)从[<8000dac0>](_IRQ_Svc+0x40/0x84)
[3.452862]   异常堆栈(0x80481f68至0x80481fb0)
[3.452869]   1f60:                  805d4a70 00000000 00001444 00000000 80480000 8048a67c
[3.452877]   1f80:80480000 8035edac 804a687d 00000001 804a687d 80480000 00000000 80481fb0
[3.452881]   1fa0:8000f164 8000f168 60000113 ffff
[3.452892]   [<8000dac0>](_IRQ_Svc+0x40/0x84)从[<8000f168>](arch_cpu_didle+0x2C/0x30)
[3.452912]   [<8000f168>](arch_cpu_didle+0x2C/0x30)来自[<80055c7c>](cpu_startup_entry+0x100/0x140)
[3.452932]   [<80055c7c>](CPU_STARTUP_END+0x100/0x140)来自[<8045aa38>](START_kernel+0x2c8/0x2d4)
[3.452942]   [<8045aa38>](start_kernel+0x2c8/0x2d4)从[<00008074>](0x8074)

此致、

Ashwin Rase

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ashwin、

    如果重新启动不干净,则您将观察到预期的崩溃,然后将主节点从可能由于而发生的损坏中恢复
    不干净的卸载。 您可以通过在中的 ubifs_recup_master_node 函数中添加调试消息来进行进一步调查 中的/fs/ubifs/recovery.c 和 mount_ubifs 函数 /fs/ubifs/super.c

    BR
    Tsvetolin Shulev