[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Killing JFFS under 2.2

I can fairly reproducibly kill JFFS on 2.2 by removing the power while 
concurrently copying in a large directory and removing another.

I now have an image of the flash chips after the following operations:

[root@xxxxxxx./eraseall /dev/mtd3
[root@Linux /root]$mount /dev/mtdblock3 /mnt
[root@Linux /root]$cd /mnt
[root@Linux /mnt]$cp -a /usr usr1
[root@Linux /mnt]$cp -a /usr usr2
[root@Linux /mnt]$ls
[root@Linux /mnt]$cp -a /lib lib1 & rm -r usr1

I removed the power during the final operations, then took a snapshot of 
the contents of the flash before remounting it.

I can put this image into an mtdram MTD device (15Mb, 128Kb erase size, to 
match the actual flash on which it was created) on any machine, and it will 
reliably fail to mount it.

The image is available at

There's also a log in that directory, showing all the output of the kernel 
as it was being created.

I suppose the first step is to check whether the image is currently valid - 
is the fault with the jffs_scan_flash() routines which should be able to 
recover from this state, or is the filesystem image really already beyond