Query: UBIFS: How to detect empty volumes
richard.weinberger at gmail.com
Sun Jun 27 04:42:10 EDT 2021
On Thu, Jun 24, 2021 at 6:09 PM Pintu Agarwal <pintu.ping at gmail.com> wrote:
> I have one basic query related to UBIFS volumes on a system with NAND partition.
There is no such thing as a UBIFS volume. Do you mean UBI volumes?
> In short, how to detect a particular empty volume inside a system
> partition while flashing the partition image?
What do you mean by system partition? A MTD partition?
> Suppose I have one big system partition that consists of 4-5 ubi
> volumes inside it with varying sizes.
> Lets say:
> -- System Partition (ubi image)
> - rootfs volume (ro, squashfs)
> - data volume (rw, ubifs)
> - firmware volume (ro, ubifs)
> - some-other volume (ro, squashfs)
So by system partition you mean the MTD partition that hosts UBI itself?
> Consider that all these could be flashed together as part of
> system.ubi image in a single shot from the bootloader.
> Now, suppose, one of the volume image (say firmware) is missing or
> remains empty (as you know we can have empty volumes).
> So, during system image flashing, we wanted to detect if one of the
> volume (firmware) is empty.
> Since this is an important volume, so we wanted to detect if this
> volume is empty/missing we will abort flashing the system partition.
> As there is no point in booting the system without this partition.
> So, I am exploring options, how can this be detected ?
Read from the volume after flashing. If you get only 0xFF bytes it is empty.
> I mean is there any kind of magic number or header information which
> we can read to detect a particular empty volume ?
> Can we get any information from just "system.ubi" image to indicate
> about the volume information ?
You'll need to perform a proper UBI scan on all blocks.
If for the sad volume no LEBs have been found it is empty.
> Also it could be possible that 2 or more volumes are empty, but we are
> only concerned about one particular volume (firmware), so how to
> detect particular volume ?
I don't understand the use case. Is your image creation process so error prone
that you can't be sure whether critical parts got included or not?
More information about the Kernelnewbies