Mounting issue with old rootfs and new kernel

Jaap de Jong jaap.dejong at nedap.com
Mon Dec 4 06:54:03 PST 2017



On 01-12-17 15:26, Jaap de Jong wrote:
> 
> 
> On 30-11-17 17:20, Richard Weinberger wrote:
>> Jaap,
>>
>> Am Donnerstag, 30. November 2017, 16:42:33 CET schrieb Jaap de Jong:
>>> Hi Richard,
>>>
>>> On 30-11-17 16:28, Richard Weinberger wrote:
>>>> Jaap,
>>>>
>>>> On Thu, Nov 30, 2017 at 4:22 PM, Jaap de Jong <jaap.dejong at nedap.com>
>> wrote:
>>>>> Hi
>>>>>
>>>>> I'm hoping for some pointers.
>>>>>
>>>>> I have this a created with openembedded classic.
>>>>>
>>>>> It works just fine when running with an old kernel (2.6.35)
>>>>>
>>>>> Now with the same rootfs and a newer kernel (4.9.28) it damages the 
>>>>> old
>>>>> rootfs in such a way that it becomes unusable.
>>>>>
>>>>> This is the error it shows:
>>>>>                           [    1.523437] ubi0 error:
>>>>>                           ubi_read_volume_table: the layout volume was
>>>>>                           not found [    1.531250] ubi0 error:
>>>>>                           ubi_attach_mtd_dev: failed to attach mtd3,
>>>>>                           error -22>
>>>> Are these really the only erros/warnings from UBI?
>>>
>>> Yes. Also ran it without 'quiet' as kernel parameter and that also does
>>> not show extra errors.
>>
>> Hm, but U-Boot comes first? Maybe it damaged the UBI image already.
> That is the same U-Boot as before which didn't damage the rootfs.
> Also U-boot is still able to mount and read files from it even after it 
> has been damaged by the new kernel.
> 
> So what do I have so far?
> 1) flash a unit with uboot, old kernel and old rootfs, boot it --> fine
> 2) flash a unit with uboot, new kernel and new rootfs, boot it --> fine
> 3) flash a unit with uboot, new kernel and old rootfs, boot it --> fine
> 4) as with 1) but afterwards boot it with new kernel --> rootfs damaged
> 
>>
>>> If I boot u-boot and try to mount it there, some other errors are show
>>> although basically the same
>>>
>>>      U-Boot> ubi part rootfs
>>>      UBI: mtd1 is detached from ubi0
>>>      Creating 1 MTD partitions on "nand0":
>>>      0x000000100000-0x000020000000 : "mtd=3"
>>>      UBI: attaching mtd1 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: attached mtd1 to ubi0
>>>      UBI: MTD device name:            "mtd=3"
>>>      UBI: MTD device size:            511 MiB
>>>      UBI: number of good PEBs:        4088
>>>      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:             40
>>>      UBI: total number of reserved PEBs: 4048
>>>      UBI: number of PEBs reserved for bad PEB handling: 40
>>>      UBI: max/mean erase counter: 2/0
>>>
>>>      U-Boot> ubifsmount rootfs
>>>      UBIFS error (pid 0): ubifs_read_node: bad node type (255 but 
>>> expected 6)
>>> UBIFS error (pid 0): ubifs_read_node: bad node at LEB 0:0
>>>      Error reading superblock on volume 'ubi:rootfs'!
>>>
>>>>>                           [    1.539062] UBI error: cannot attach mtd3
>>>>>                           [    1.546875] Kernel panic - not 
>>>>> syncing: VFS:
>>>>>                           Unable to mount root fs on 
>>>>> unknown-block(0,0) [
>>>>>                              1.546875] Rebooting in 1 seconds..RomBOOT
>>>>>
>>>>> As far as I can see the kernel configuration seems to be ok.
>>>>>
>>>>> Any ideas?
>>>>
>>>> If the MTD layout had changed I'd expect more errors from UBI.
>>>> Is this NAND?
>>>
>>> Yes nandflash
>>>
>>>> Did you compare the MTD partition layout and number of bad blocks?
>>>
>>> Do you mean before and after?
>>
>> Yes. Something must be different.
>> Page size? Sub pages? Number or erase blocks, etc...
> Will come back on this, need some more time...
Ok mtd partition is the same for both
	kernel cmdline:
root=ubi0 rw ubi.mtd=3 rootfstype=ubifs 
mtdparts=atmel_nand:128K(bootstrap),256K(u-boot-env),640K(u-boot),-(rootfs)

As mentioned before (all with the saem parameters)
1) old kernel and old rootfs, boot it --> fine
2) new kernel and new rootfs, boot it --> fine
3) new kernel and old rootfs, boot it --> fine
If I run 1) and then boot the old rootfs with a new kernel --> rootfs 
damaged



	



More information about the linux-mtd mailing list