Parsing extracted i.MX NAND flash

Zhihao Cheng chengzhihao1 at huawei.com
Thu Nov 21 17:22:38 PST 2024


在 2024/11/22 2:15, Rogan Dawes 写道:
> On Thu, Nov 21, 2024 at 12:42:16PM +0800, Zhihao Cheng wrote:
>> ? 2024/11/20 23:51, Rogan Dawes ??:
>>> On Mon, Nov 18, 2024 at 07:39:39PM +0200, Rogan Dawes wrote:
>>>> Hi folks,
>>>>
>>>> I have an i.MX6 target I am trying to get a shell on. It is using High
>>>> Assurance Boot and various other configurations to prevent this. My
>>>> current approach is to remove the flash, extract the filesystems, modify
>>>> one that is not subject to HAB, then put it all back, in order to enable
>>>> a shell.
>>>>
>>>> I have removed the flash, and extracted its contents using an Xgecu
>>>> flash reader. Now I need to parse the FCB and extract the actual data
>>>> from the dump. I have found imx-nand-tools, but this doesn't work due to
>>>> bitrot (the bchlib dependency has moved on while imx-nand-tools has not
>>>> been updated).
>>>
>>> I was able to get imx-nand-tools working by pinning the version of the
>>> bchlib dependency to v0.14.0, and have been able to obtain a "clean"
>>> flash image. Still trying to mount the various UBI filesystems, as I get
>>> the following errors:
>>>
>>> [360972.710050] ubi0: default fastmap pool size: 8
>>> [360972.710055] ubi0: default fastmap WL pool size: 4
>>> [360972.710056] ubi0: attaching mtd5
>>> [360972.710099] ubi0 error: validate_ec_hdr [ubi]: bad VID header offset 2048, expected 512
>>
>> Hi Rogan,
>> How did you use ubiattach? ubiattach -O 512?  Try 'ubiattach -O2048'.
> 
> Hi,
> 
> I simply ran it without any specific offset options:
> 
> sudo ubiattach -m 5
> 
> which produced the panic in my previous mail..
> 
> If I try with -O 2048, this is what I get:
> 
> $ sudo ubiattach -O 2048 -m 5
> [sudo] password for rogan:
> ubiattach: error!: cannot attach mtd5
>             error 22 (Invalid argument)
> 
> [614006.620517] ubi0: default fastmap pool size: 8
> [614006.620520] ubi0: default fastmap WL pool size: 4
> [614006.620521] ubi0: attaching mtd5
> [614006.620749] ubi0: scanning is finished
> [614006.620787] ubi0 error: vtbl_check [ubi]: bad CRC at record 11: 0xc8e5abb1, not 0xf116c36b
> [614006.620816] Volume table record 11 dump:
> [614006.620818] 	reserved_pebs   0
> [614006.620819] 	alignment       0
> [614006.620820] 	data_pad        0
> [614006.620821] 	vol_type        0
> [614006.620834] 	upd_marker      0
> [614006.620835] 	name_len        0
> [614006.620836] 	name            NULL
> [614006.620838] ubi0 error: vtbl_check [ubi]: bad CRC at record 11: 0xc8e5abb1, not 0xf116c36b
> [614006.620848] Volume table record 11 dump:
> [614006.620849] 	reserved_pebs   0
> [614006.620850] 	alignment       0
> [614006.620851] 	data_pad        0
> [614006.620852] 	vol_type        0
> [614006.620852] 	upd_marker      0
> [614006.620853] 	name_len        0
> [614006.620854] 	name            NULL
> [614006.620855] ubi0 error: process_lvol [ubi]: both volume tables are corrupted
> [614006.620872] ubi0 error: ubi_attach_mtd_dev [ubi]: failed to attach mtd5, error -22
> 

Above messages means that:
1. The UBI has scanned all PEBs, which is failed in previous mail.
2. The UBI cannot find a valid layout volume, the layout volume has two 
LEBs, both of them are corrupted(data in LEB is not correct, crc 
verifying fails).
> Regards,
> 
> Rogan
> 
> .
> 




More information about the linux-mtd mailing list