mkfs.ubifs / ubiformat: Bad UBI magic

Tobias Wahlström tobias.tanke at gmail.com
Tue Oct 6 07:00:06 EDT 2009


Hi!

This is my first post at this list - I hope it makes (at least) some
sense anyway. I have looked through the mailing archive and searched
using google without finding anything useful on the topic. I hope I
provided the information you need - if not, just tell me what you are
missing!

I'm working on a project where we would like to use ubi and ubifs as
root filesystem since it seems to be the best choise in many ways. But
I have a problem which I can't find anything about either the mail
archive nor using google etc. I currently use linux 2.6.26 with some
patches. My target is the freescale imx255 pdk board. My build system
is Ubuntu 9.04 (run within vmware).

I have cloned the mtd-utils.git (today 2009-09-05) and compiled the
tools both for my build system and my target (both without xattr
support). Then I created a ubifs image using mkfs.ubifs on my build
system and tried to flash it to the nand using ubiformat. The commands
I used was:

build> mkfs.ubifs -m 2048 -e 256KiB -c 384 -U --root rootfs -o rootfs.ubifs
target> flash_eraseall /dev/mtd2
target> ubiformat /dev/mtd2 -s 2048 -v -f rootfs.ubifs

The output from ubiformat is:

ubiformat: mtd2 (nand), size 100663296 bytes (96.0 MiB), 384
eraseblocks of 262144 bytes (256.0 KiB), min. I/O size 2048 bytes
libscan: start scanning eraseblocks 0-384
libscan: scanning eraseblock 0: empty
[...]
libscan: scanning eraseblock 383: empty
libscan: finished, mean EC 0, 0 OK, 0 corrupted, 384 empty, 0 alien, bad 0
ubiformat: 384 eraseblocks are supposedly empty
ubiformat: will write 13 eraseblocks
ubiformat: eraseblock 0: erase, change EC to 0ubiformat: error!: bad
UBI magic 0x31181006, should be 0x55424923
ubiformat: error!: bad EC header at eraseblock 0 of "/rootfs.ubifs"

If I look into the source code I see that UBI_EC_HDR_MAGIC is defined
twice in the source both in include/mtd/ubi-media.h and seems to be
used by all tools except for mkfs.ubifs. The command mkfs.ubifs use
UBIFS_NODE_MAGIC in mkfs.ubifs/ubifs-media.h. The values do not match
at all. And it also seems like mkfs.ubifs use little endian to encode
the magic number and the other tools use big endian... Strange!

/Tobias



More information about the linux-mtd mailing list