[U-Boot] ubifsmount reports "Error reading superblock", but linux can mount FS

Stefan Roese sr at denx.de
Wed Mar 7 16:38:51 CET 2012


Hi Alex,

On Wednesday 07 March 2012 16:14:28 Alex Zeffertt wrote:
> On 7 March 2012 14:42, Alex Zeffertt <azeffertt at cambridgesys.com> wrote:
> > Hi u-booters,
> > 
> > I have a short script in my u-boot environment which chooses which of
> > two ubifs partitions to boot
> > by attempting to read a release file in each one.
> > 
> > Unfortunately, after an unclean shutdown sometimes the ubifsmount
> > fails.  (By "unclean shutdown"
> > I mean that the board was power cycled while doing some low bandwidth
> > logging.)
> > 
> > The strange thing is that Linux has no problem mounting the partition
> > as its root filesystem.  This is
> > very confusing because it looks like the ubifs implementation in
> > u-boot is just a copy of the one in Linux.

Correct. The U-Boot version is mainly a copy of the Linux version. With minor 
changes. But its based on an older Linux version. Many changes have gone into 
the UBI Linux code.
 
> > Has anyone else seen this problem?
> > 
> > Regards,
> > 
> > Alex
> > 
> > PS My kernel is linux-3.0.0/armv5tel and the full u-boot trace is below:
> >> U-Boot 2011.06 (Feb 10 2012 - 12:29:06)
> >> OpenRD-Base
> >> SoC:   Kirkwood 88F6281_A1
> >> DRAM:  128 MiB
> >> NAND:  512 MiB
> >> *** Warning - bad CRC, using default environment
> >> In:    serial
> >> Out:   serial
> >> Err:   serial
> >> Net:   egiga0
> >> 88E6351 Initialized on egiga0
> >> Hit any key to stop autoboot:  0
> >> Creating 1 MTD partitions on "nand0":
> >> 0x000001000000-0x000010000000 : "mtd=2"
> >> UBI: attaching mtd1 to ubi0
> >> UBI: physical eraseblock size:   131072 bytes (128 KiB)
> >> UBI: logical eraseblock size:    126976 bytes
> >> UBI: smallest flash I/O unit:    2048
> >> UBI: sub-page size:              512
> >> UBI: VID header offset:          2048 (aligned 2048)
> >> UBI: data offset:                4096
> >> UBI: attached mtd1 to ubi0
> >> UBI: MTD device name:            "mtd=2"
> >> UBI: MTD device size:            240 MiB
> >> UBI: number of good PEBs:        1913
> >> UBI: number of bad PEBs:         7
> >> UBI: max. allowed volumes:       128
> >> UBI: wear-leveling threshold:    4096
> >> UBI: number of internal volumes: 1
> >> UBI: number of user volumes:     1
> >> UBI: available PEBs:             0
> >> UBI: total number of reserved PEBs: 1913
> >> UBI: number of PEBs reserved for bad PEB handling: 19
> >> UBI: max/mean erase counter: 7/1
> >> UBIFS: recovery needed
> >> Error reading superblock on volume 'ubi:rootfs'!
> >> UBI: mtd1 is detached from ubi0
> 
> I've been comparing the linux and u-boot implementations, and it looks
> like the following fix is in the kernel
> but not in u-boot.  I don't really understand it, but it looks like a
> candidate.  Might porting this change to
> u-boot fix the issue?

Hard to tell. Might be worth a try, if its not too complicated. It would be 
great if you could report the outcome of this. And best to send this patch to 
the list as well.

Thanks,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de


More information about the U-Boot mailing list