ubifs mount problem: UBIFS error (pid 1152): validate_sb: bad superblock, error 8
Adrian Hunter
adrian.hunter at nokia.com
Thu Aug 20 07:10:08 EDT 2009
Aras Vaichas wrote:
> I've got UBI + UBIFS running as my root partition with 2.6.30, and I'm
> using mtd-utils from git downloaded just last week.
>
> I'm building my UBI image as per the instructions at:
> http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mkfubifs
>
> I have successfully created UBI images, formatted, attached and
> mounted them. I'm not an expert, but I'm familiar with the procedure
> now.
>
> For some reason, I am now having problems mounting a known working
> image. The image contains 1 file with a "hello world" text string in
> it. I used to be able to mount it to my 8MB spare partition, but now
> it fails with:
>
> /root # mount -t ubifs ubi1:spareubi /mnt
> UBIFS error (pid 791): validate_sb: bad superblock, error 8
> mount: mounting ubi1:spareubi on /mnt failed: Invalid argument
>
> The strange thing is that I can format, attach and mount this *same*
> image to my other spare partition. It's like the NAND in this
> partition has some problem.
>
> Here are the details:
>
> # cat /proc/mtd
> dev: size erasesize name
> mtd0: 00a00000 00020000 "Bootloader Area"
> mtd1: 03600000 00020000 "Main root filing system partition"
> mtd2: 00800000 00020000 "Spare Partition 1"
> mtd3: 1b800000 00020000 "Spare Partition 2"
> mtd4: 03310800 0001f800 "rootubi"
>
> (*) Attempt to write to the first partition (this fails)
>
> /root # ubiformat /dev/mtd2 -f ubi.img
> ubiformat: mtd2 (nand), size 8388608 bytes (8.0 MiB), 64 eraseblocks
> of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
> libscan: scanning eraseblock 63 -- 100 % complete
> ubiformat: 64 eraseblocks have valid erase counter, mean value is 1
> ubiformat: flashing eraseblock 15 -- 100 % complete
> ubiformat: formatting eraseblock 63 -- 100 % complete
>
> /root # ubiattach /dev/ubi_ctrl -m 2
> UBI: attaching mtd2 to ubi1
> 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: volume 0 ("spareubi") re-sized from 17 to 58 LEBs
> UBI: attached mtd2 to ubi1
> UBI: MTD device name: "Spare Partition 1"
> UBI: MTD device size: 8 MiB
> UBI: number of good PEBs: 64
> UBI: number of bad 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: 0
> UBI: total number of reserved PEBs: 64
> UBI: number of PEBs reserved for bad PEB handling: 2
> UBI: max/mean erase counter: 4/2
> UBI: background thread "ubi_bgt1d" started, PID 807
> UBI device number 1, total 64 LEBs (8257536 bytes, 7.9 MiB), available
> 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)
>
> /root # mount -t ubifs ubi1:spareubi /mnt
> UBIFS error (pid 823): validate_sb: bad superblock, error 8
> mount: mounting ubi1:spareubi on /mnt failed: Invalid argument
The journal is too big for the partition - see below where it
says:
UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
You will need to force the journal smaller using mkfs.ubifs -j
option.
>
> /root # ubidetach /dev/ubi_ctrl -m 2
> UBI: mtd2 is detached from ubi1
>
> (*) Attempt to write to the second partition (this works)
>
> /root # ubiformat /dev/mtd3 -f ubi.img
> ubiformat: mtd3 (nand), size 461373440 bytes (440.0 MiB), 3520
> eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
> libscan: scanning eraseblock 3519 -- 100 % complete ock 2048 -- 58 % complete
> ubiformat: 3519 eraseblocks have valid erase counter, mean value is 1
> ubiformat: 1 bad eraseblocks found, numbers: 989
> ubiformat: flashing eraseblock 15 -- 100 % complete
> ubiformat: formatting eraseblock 3519 -- 100 % complete aseblock 3422
> -- 97 % complete
>
> /root # ubiattach /dev/ubi_ctrl -m 3
> UBI: attaching mtd3 to ubi1
> 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: volume 0 ("spareubi") re-sized from 17 to 3410 LEBs
> UBI: attached mtd3 to ubi1
> UBI: MTD device name: "Spare Partition 2"
> UBI: MTD device size: 440 MiB
> UBI: number of good PEBs: 3519
> UBI: number of bad PEBs: 1
> 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: 3519
> UBI: number of PEBs reserved for bad PEB handling: 105
> UBI: max/mean erase counter: 3/2
> UBI: background thread "ubi_bgt1d" started, PID 835
> UBI device number 1, total 3519 LEBs (454035456 bytes, 433.0 MiB),
> available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)
>
> /root # mount -t ubifs ubi1:spareubi /mnt
> UBIFS: mounted UBI device 1, volume 0, name "spareubi"
> UBIFS: file system size: 262692864 bytes (256536 KiB, 250 MiB, 2036 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)
>
> # cat /mnt/README.txt
> Hello World!
More information about the linux-mtd
mailing list