@@ -915,12 +915,19 @@ mount -t ubifs /dev/ubi0_0 /mnt/ubifs
<h2><a name="L_ubifs_extract">How do I extract files from an UBI/UBIFS image?</a></h2>
-<p>Unfortunately, at the moment there are no user-space tools which can
-unwrap UBI and UBIFS images. UBIFS cannot be loop-back mounted either,
-because it does not work with block devices.</p>
+<p>
+ There are a couple of python tools for extracting and analyzing UBI images.
+ <ul>
+ <li><a href="https://github.com/jrspruitt/ubi_reader/">ubi_reader</a> - Collection of Python scripts for reading information about and extracting data from UBI and UBIFS images.</li>
+ <li><a href="https://github.com/nlitsme/ubidump/">ubidump</a> - Tool for viewing and extracting files from an UBIFS image.</li>
+ </ul>
+ There is also a company selling a closed source windows tool to do the same.
+</p>
-<p>However, kernel modules exist that allow you to create a virtual MTD
-onto which UBIFS can be mounted. You have two options:
+<p>
+ UBIFS cannot be loop-back mounted because it does not work with block devices.
+ However, kernel modules exist that allow you to create a virtual MTD
+ onto which UBIFS can be mounted. You have two options:
<ol>
<li><code>nandsim</code>, which can simulate various NAND devices.
You can find an incomplete list of those devices
@@ -971,7 +978,7 @@ ubimkvol /dev/ubi0 -N "My UBIFS volume name" -s $VOLSIZE
ubiupdatevol /dev/ubi0_0 ubifs.img
# Mount it to any desired mount point
-mount /dev/ubi0_0 /mnt/ubifs
+mount -t ubifs /dev/ubi0_0 /mnt/ubifs
</pre>
<p>Now you have the filesystem in <code>/mnt/ubifs</code>. Use
@@ -987,9 +994,13 @@ the process is simpler.
Write the image to the MTD via <code>ubiformat -f ubi.img</code>
(assuming that is the name of your image file).
You should be able to skip the instructions above after
-<code>modprobe ubi mtd=0</code>, since
+<code>modprobe ubi mtd=/dev/mtd0,2048</code>, since
the UBI image should take care of the volume(s) itself.
-
+<p>
+ Note that the <i>vidhdrofs</i> ( the second argument after <code>mtd=</code>) is important,
+ for images with a larger eraseblock size this will also be a larger value.
+ With 256K eraseblocks you would need 4096 there.
+</p>
<h2><a name="L_smaller_jrn">I need more space - should I make UBIFS journal smaller?</a></h2>