[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
ftp://ftp.uk.linux.org/pub/people/dwmw2/jffs/jffs-15M-corrupted.bz2
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
repair?
--
dwmw2