OneNAND - Cannot mount jffs2 partition
Artem B. Bityutskiy
dedekind at yandex.ru
Mon Aug 14 11:03:36 EDT 2006
Hi Catherine,
Catherine Smith wrote:
> If I don't use the -j, it seems to work, though with a few warnings.
> For example:
> $ flash_eraseall /dev/mtd5
> Eraseing 64 Kibyte @ 7f0000 -- 99 % complete
> $ mount -t jffs2 /dev/mtdblock5 /mnt/onenand
> Eep. no valid nodes for ino #1
That's harmless.
-j option means to put so-called clean marker at each etaseblock. The
cleanmarker just means that the eraseblock is clean ant it is safe to
write data at it. This is needed to guaranty data consistency - it is
not enough to just check that the eraseblock contains only 0xFF bytes.
For example, due to unclean reboots which may interrupt an erase
operation, some bits may become unstable and be read sometimes as 1, and
sometimes as 0.
If you don't use -j option, JFFS2 will re-erase empty eraseblocks
itself, and put the clean marker. It may also complain about absence of
the root inode (which isn't a brilliant idea), but it creates the root
node automatically.
> Then I can create files in /mnt/onenand, and copy them around or calculate a
> few signatures. All is well.
> Once, when I tried to mount after a power cycle, it said:
> jffs2_get_inode_nodes(): CRC failed on node at 0x002dd7c8: Read
> 0xffffffff, calculated 0x20f0e445
Did you unmount it cleanly? Or just pushed reset? If you didn't unmount
- it may be harmless.
> Are these warnings, the Eep and the CRC failure, typical and harmless,
> or should I take a keen interest?
If you didn't cleanly unmount, you could have been interrupted a delayed
wbuf flush and just lost some last-written data. This could cause CRC
failure. And as JFFS2 cannot distinguish between real corruption and
corruptions due to unclean reboots - it issued a warning.
--
Best Regards,
Artem B. Bityutskiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list