.TH UNUBI 1 "NOVEMBER 2006" FSP "FSP Flashutils"
.SH NAME
unubi \- extract volumes/eraseblocks from a raw\-UBI image
.SH SYNOPSIS
\fBunubi [\-aevEV] [\-d \fIout\-dir\fB] [\-r \fIvolume\-id\fB]
[\-b \fIblock\-size\fB] \fIimage\-file
.SH DESCRIPTION
.PP
\fBunubi\fR reads an image file containing blocks of UBI headers and data
(such as produced from \fBnand2bin\fR) and rebuilds the volumes within.
The default operation (when no flags are given) is to rebuild all valid
volumes found in the image. \fBunubi\fR can also read straight from the
onboard MTD device (ex. /dev/mtdblock/NAND).
.SH OPTIONS
.IP "\-a, \-\-analyze"
When flagged, analysis files are generated within the output directory. These
may include tables and or graphs detailing statistics gathered from the
eraseblock data. Files are prefixed `analysis_'.

See \fBANALYSIS\fR.
.IP "\-b, \-\-blocksize \fIblock\-size\fR"
Specify in bytes the \fIimage\-file\fR eraseblock size. Sizes may be
postfixed with `KiB' or `MiB' to indicate mebibytes or kibibytes
respectively. Default is 128KiB.
.IP "\-d, \-\-dir \fIoutput\-dir\fR"
Specify the output directory. If no directory is specified, the default
is `unubi_\fIimage\-file\fR' within the curent working directory. If the
attempt to create the output directory fails,
.B unubi
will try to create it in /tmp before aborting.
.IP "\-e, \-\-eb\-split"
When flagged, images are created for each eraseblock in \fIimage\-file\fR
regardless of its validity. Each image is the complete eraseblock, including
headers and any space to the end of the eraseblock after where the data may
end.

Invalid images are named `ebEEEE', where EEEE is the physical index of the
eraseblock in the image. Valid images are named `ebEEEE_VVV_NNN_RRR' where
VVV is the known volume ID, NNN is the logical number and RRR is the version
of the eraseblock data. Note that the version number is in hexadecimal.

Invalid images may also contain this postfix, if the data in the header
could be valid (ie. the header contains a resonable volume ID, but the
header and/or data CRCs are not valid). If this is the case, images are named
`ebEEEE_VVV_NNN_RRR.reason', so as to distinguish known values from
non\-definite ones.

See \fBREASON SUFFIXES\fR.
.IP "\-r, \-\-rebuild \fIvolume\-id\fR"
Specify a volume to rebuild. Can be used successively to specify
several volumes to be rebuilt.

Images are named `volumeVVV' where VVV is the volume ID. For each missing
eraseblock, an error message will be printed.
.IP "\-v, \-\-vol\-split"
When flagged, images are created for each valid eraseblock in
\fIimage\-file\fR. Since a vaild eraseblock will have a defined data start and
data length, only this range will make up the image.

Images are named `volVVV_NNN_RRR_EEEE', where, for the data in the eraseblock,
VVV is the volume ID, NNN is the logical number, RRR is the version and EEEE
is the phyisical index of the eraseblock in the image.
.IP "\-V, \-\-vol\-split!"
Same as above, only all images are the complete eraseblock (including headers,
and raw data, even past the point where the data is supposed to end).
Overrides \-v when both \-v and \-V are flagged.
.SH ANALYSIS
The following files will be generated during the analysis:
.IP "analysis_ec_hdr.data"
A space delimited table with these two columns for each eraseblock: the
eraseblock's index or physical position in the image, and the eraseblock's
erase count. The third column contains the erase count data sorted.
.IP "analysis_vid_hdr.data"
A space delimited table with these four colums for each eraseblock: the
volume ID, the volume logical number, the leb version, and the data size.
In addition there are a normalized column representing the volume ID and
volume logical number, a normalized column representing the leb version, and
a normalized column representing the data_size. These normalized columns are
used to better draw the the gnuplot image.
.IP "analysis_ec_hdr.plot"
A gnuplot script for quickly viewing a sample output from the respective .data
file.
.IP "analysis_vid_hdr.plot"
A gnuplot script for quickly viewing a sample output from the respective .data
file.
.SH REASONS SUFFIXES
When \-\-eb\-split produces possibly invalid, though usable, eraseblocks, the
known reason suffixes are:
.IP ".ec_magic"
The erase counter header did not contain a valid magic field.
.IP ".ec_hdr_crc"
The erase counter header did not contain a vaild header CRC field.
.IP ".vid_magic"
The volume ID header did not contain a valid magic field.
.IP ".vid_hdr_crc"
The volume ID header did not contain a valid header CRC field.
.IP ".data_crc"
The volume ID header did not contain a valid data CRC field.
.SH EXAMPLES
To extract and rebuild all valid volumes from demo.img (note the output
directory will be /home/user/unubi_demo.img):
.sp 1
.RS
.B /home/user# unubi demo.img
.sp 1
.RE
To analyze demo.img as well as extract and rebuild volume 7:
.sp 1
.RS
.B /home/user# unubi \-a \-r 7 demo.img
.sp 1
.RE
To split demo.img into raw images for each eraseblock into the folder
/var/eraseblocks:
.sp 1
.RS
.B /home/user# unubi \-e \-d /var/eraseblocks demo.img
.SH AUTHORS
Frank Haverkamp <haver@vnet.ibm.com>
.sp 0
Drake Dowsett <dowsett@de.ibm.com>
.SH CONTACT
Andreas Arnez <arnez@de.ibm.com>
