SF.net Project Page
Section: Maintenance Commands (8)
Updated: 19 Jan 2007
build_it - reads directory entries to obtain information about the
physical location of files on a block device along with file access permissions
and saves the data to external inode table file.
build_it [-qvVnsafp] directory inode_table
OS filesystem drivers to recursively read directory entries in order to obtain
information about all of the filesystem inodes.
The information is then saved to an external inode table. The original block
device can then be mounted along with the external inode table to recover data
from the device.
For this utility to work best, the user must have the appropriate filesystem
driver (maybe read-only) for
OS available along with
From 0.84.9 version utility use effective identificator
if it's binary file has SUID bit set to call this syscall.
So you can run its without root permissions.
utility has been tested on the following filesystems:
EXT2FS/EXT3FS, XFS, ReiserFS, VFAT, JFS, ISO9660, ntfs-3g.
The best results were obtained from those systems with full
support in FUSE
driver begining from 0.20061212-BETA version.
At that if you need mount filesystem with
if you need to mount FS image (not block device).
Bear in mind, that all enough small files on
keeps in packed format and it reflects in inode table
as sparse-files. Also as sparse files reflects
all crypted/compressed at filesystem level files.
calls ioctl UNPACK to avoid "tail-packing" and get right files map.
You can use
option if you don't want any changes at filesystems (it maybe important
for recovering) but in this case you may get not quite right inode table.
Don't print any messages.
Print some additional information.
Print the version number and exit.
Don't unpack ReiserFS and Reiser4 files.
Print to stdout all sparse-files list.
It used by
utility to form rescue-list with converting from
Use absolute addressing on the entire drive, not its separate partition.
Keep in mind when using this option, that then to mount output inode table
you must specify the entire disk (for example, /dev/hda), and not
the separate partition (as /dev/hda1, /dev/hdb7).
In addition, it means setting inode table blocksize to sector size (512 bytes),
because measure units of partition offsets in partition table is sectors.
Process other filesystems located on the partiotions of the same device as
the specified directory filesystem. So if /dev/hda1 mounted on /mnt/root,
/dev/hda3 on /mnt/root/home and /dev/hdb1 on /mnt/root/usr, and you
specify /mnt/root as the
to inode table will also include all the contents of /mnt/home,
but the contents of /mnt/usr was still will not be included to it.
Use the option only with -a.
Add to inode table also all parent directories from the specified
to the root directory.
Directory, usually root_directory/mount_point of filesystem,
will then make an inode table of this mounted filesystem.
File for saving of external inode table.
Building an external inode table of filesystem on device mounted at home
directory of user:
# build_it /home/user /tmp/inode.table
Note: will better if future inode.table file will on other device (or in
directory which doesn't located in recursively processed tree)
Note: if mount point in this example /home (not /home/user) then built
external inode table will not include files from other directory than
/home/user -- it will particular inode table of device.
Note: if there are will other mount points in recursively processed trees
(e.g. /home/user/mount/point) -- it will not processed (an inode table
can't keep information from various devices)
Nikolaj Krivchenkov aka unDEFER <email@example.com>
Translation correction by Adrian Shaw
Messages about any problem with using
package send to
You can obtain the last version of package at
- USAGE EXAMPLES
- BUG REPORTS
- SEE ALSO
This document was created by
man2html (from man 1.5o1),
using the manual pages.
Time: 21:52:21 GMT, August 16, 2008