Error when mounting ubi image
Patrick
kpa_info at yahoo.fr
Mon Feb 27 10:20:13 EST 2012
On 02/27/2012 12:18 PM, Patrick wrote:
> Dear mailing-list,
>
> I am still facing some trouble with UBI and UBIFS. I am working on an
> OMAP4 processor with a 3.0.21 kernel and a Micron MT29F4G08ABBDAH4 1GB
> NAND Flash.
>
> I generate the ubi image of my rootfs using the following command:
>
> mkfs.ubifs -r my_rootfs -o my_image.ubifs -m 2048 -e 129024 -c 4060
> ubinize -o my_rootfs.ubi -m 2048 -p 128KiB -s 512 ubinize.cfg
>
> And the following ubinize.cfg file:
>
> [ubifs]
> mode=ubi
> image=my_image.ubifs
> vol_id=0
> vol_type=static
> vol_name=my_rootfs
>
> Then I flash this image and mount it with the following commands:
>
> ubiformat /dev/mtd4 -f my_rootfs.ubi
> ubiattach -p /dev/mtd4
> mount -t ubifs ubi0_0 /media/test/
>
> I then have the following error:
>
> mount: block device ubi0_0 is write-protected, mounting read-only
>
> And from the kernel (dmesg):
>
> UBI warning: ubi_eba_read_leb: CRC error: calculated 0x34afeca5, must be
> 0x74215933
> UBI warning: ubi_open_volume: volume 0 on UBI device 0 is corrupted
> UBIFS warning (pid 226): init_constants_early: UBI volume is corrupted -
> read-only mode
> UBIFS: static UBI volume - read-only mode
> UBIFS error (pid 226): mount_ubifs: cannot mount read-write - read-only
> media
> UBIFS warning (pid 226): init_constants_early: UBI volume is corrupted -
> read-only mode
> UBIFS: static UBI volume - read-only mode
> UBIFS: mounted UBI device 0, volume 0, name "my_rootfs"
> UBIFS: mounted read-only
> UBIFS: file system size: 42190848 bytes (41202 KiB, 40 MiB, 327 LEBs)
> UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
> UBIFS: media format: w4/r0 (latest is w4/r0)
> UBIFS: default compressor: lzo
> UBIFS: reserved for root: 0 bytes (0 KiB)
>
> I couldn't find what I am doing wrong. Any help will be really
> appreciated !
>
> Thanks in advance
>
> Patrick
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
I reply myself to add some informations:
I have tried to add the following flags to the ubinize.cfg:
vol_type=dynamic
vol_flags=autoresize
With those flags I could mount the image successfully. But when I detach
the volume an reattach it I have some ECC errors:
ubiattach -p /dev/mtd4
UBI device number 0, total 4057 LEBs (523450368 bytes, 499.2 MiB),
available 3371 LEBs (434939904 bytes, 414.8 MiB), LEB size 129024
bytes (126.0 KiB)
mount -t ubifs ubi0_0 /media/card/
ls /media/card
...
umount /media/card
ubidetach -p /dev/mtd4
ubiattach -p /dev/mtd4
I have the following error message in the kernel debug and then it start
an infinite error loop.
UBI: attaching mtd4 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI error: ubi_io_read: error -74 (ECC error) while reading 64 bytes
from PEB 605:0, read 64 bytes
UBI error: ubi_io_read: error -74 (ECC error) while reading 512 bytes
from PEB 605:512, read 512 bytes
UBI warning: process_eb: valid VID header but corrupted EC header at PEB 605
UBI: max. sequence number: 2
UBI: attached mtd4 to ubi0
UBI: MTD device name: "root"
UBI: MTD device size: 507 MiB
UBI: number of good PEBs: 4057
UBI: number of bad PEBs: 3
UBI: number of corrupted PEBs: 0
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: 3371
UBI: total number of reserved PEBs: 686
UBI: number of PEBs reserved for bad PEB handling: 80
UBI: max/mean erase counter: 4/2
UBI: image sequence number: 218161718
Again any help would be really appreciated.
Patrick
More information about the linux-mtd
mailing list