Resizing mtd partition
Ricard Wanderlof
ricard.wanderlof at axis.com
Mon Feb 23 00:14:02 PST 2015
On Sun, 22 Feb 2015, Alexander Aronsky wrote:
> Hi everyone,
>
> I have to resize an existing mtd partition on a NOR flash of an embedded
> device (PPC architecture) without losing the data on this partition.
>
> To be more specific, I have /dev/mtd0 and /dev/mtd1 devices on my flash,
> and I want to increase the size of the file system mounted on /dev/mtdblock0
> at the expense of the one on /dev/mtdblock1. For example, eliminate the
> /dev/mtd1 altogether and give the /dev/mtd0 all the available space on the
> flash.
>
> What is the proper way to do it?
I don't think there is a 'proper' way, i.e. a resize application.
However, if the file system on the partition is jffs2, then I believe one
could do the following:
- Unmount /dev/mtd0 (and /dev/mtd1)
- Erase /dev/mtd1
- Rewrite the partitioning info so that /dev/mtd0 now includes both
partitions.
- Mount /dev/mtd0 .
When /dev/mtd0 is mounted, jffs2 will now see that the size is
larger. Since there is no global file system information within a jffs2
file system, it will see the newly erased space as unused when scanning
the partition during the mount operation.
If you can't unmount /dev/mtd0 because it is the root file system,
you could do most operations with /dev/mtd0 mounted, and a reboot in
between:
- Unmount /dev/mtd1.
- Erase /dev/mtd1.
- Rewrite partitioning info so that /dev/mtd0 new includes both old
partitions.
- Reboot the system, when it starts it will use the new larger
/dev/mtd0 .
/Ricard
--
Ricard Wolf Wanderlöf ricardw(at)axis.com
Axis Communications AB, Lund, Sweden www.axis.com
Phone +46 46 272 2016 Fax +46 46 13 61 30
More information about the linux-mtd
mailing list