UBIFS read-only rootfs needs 1 or more eraseblocks to mount

Artem Bityutskiy dedekind1 at gmail.com
Wed Dec 9 05:16:28 EST 2009


On Tue, 2009-12-08 at 16:09 -0800, Darwin Rambo wrote:
> On a read-only UBIFS rootfs, why do you need at least 1 eraseblock?
>  There is nothing to replace since nothing is ever written to this
> partition on the fly and a block that goes bad cannot be recovered
> anyways?
> 
> UBI error: ubi_eba_init_scan: no enough physical eraseblocks (0, need
> 1)
> UBI error: ubi_init: cannot attach mtd6
> UBI error: ubi_init: UBI error: cannot initialize UBI, error -28

This is UBI error, not UBIFS. UBI does not really have a notion of
read-only UBI device, so it always reserves some amount of eraseblocks.

There is a compile-time option about amount of eraseblocks to reserve,
in percent. You can make it 0%, then UBI will not reserve anything.
Probably it will not work out of the box (I never tried that), and
you'll need to do some small investigation / fixing.

> Note that adding room for a single bad block PEB allows the mount to
> work, and you get a warning like this:
> "UBI warning: ubi_eba_init_scan: cannot reserve enough PEBs for bad
> PEB handling, reserved 0, need 19"

This is again UBI warning, not UBIFS.

> It looks like the normal read/write code is reserving/requiring blocks
> that the read-only mode doesn't actually use?

R/O stuff is on UBIFS level, you get warning at UBI level, and UBI does
assumes everything is R/W.

>  All this is probably just a future suggestion to support read-only
> mode a little bit better with less block wastage.

Ok, you might as well just come up with a patch or patches!

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)




More information about the linux-mtd mailing list