Finding which block 'contains' a missing inode

Thomas Gleixner tglx at linutronix.de
Thu Sep 23 03:10:56 EDT 2004


On Thu, 2004-09-23 at 02:43, Wookey wrote:
> Hello people, I have a JFFS2 NAND rootfs which is giving a single 
> 'Eep. Child "gpe-filemanager.desktop" (ino #3324) of dir ino #3035 doesn't
> exist!' error.
> 
> I'd like to know if there is a way of finding out either form the live fs or
> from the jffs2 image file which block the offending inode/file should have
> been on?

Get a binary image from the chip and process it with 
jffs2dump -vc binimg >img.dmp

The dump should tell you where which node/fragment resides

> Background: The kernel indicated one 'bad erase block' that is under this
> fs, but flasheraseall found no problem, and nandwrite did not skip that
> block. I worry that the block in question doesn't actually have the right
> data in it - if it corresponded to the above inode then I'd be sure I had
> located the problem.

What do you mean ? "kernel indicated one 'bad erase block'". 
How is it indicated ?

> There is also a 'normal' bad block (which gives an IO error when
> flasheraseall tries to erase it) - this _is_ skipped by nandwrite as expected.

Are you using current MTD code ?

The code checks the device for bad blocks when nand_scan is called. It
usually prints the bad block information. Is this your 'normal' bad
block ?

tglx






More information about the linux-mtd mailing list