Man Linux: Main Page and Category List


       genext2fs - ext2 filesystem generator for embedded systems


       genext2fs [ options ] [ output-image ]


       genext2fs  generates an ext2 filesystem as a normal (non-root) user. It
       does not require you to mount the image file to copy files on  it,  nor
       does it require that you become the superuser to make device nodes.

       The  filesystem  image  is  created  in  the  file output-image. If not
       specified, it is sent to stdout.

       By default, the maximum number of  inodes  in  the  filesystem  is  the
       minimum  number  required to accommodate the initial contents.  In this
       way, a minimal filesystem (typically read-only)  can  be  created  with
       minimal  free inodes.  If required, free inodes can be added by passing
       the relevant options.  The filesystem  image  size  in  blocks  can  be
       minimised by trial and error.


       -x, --starting-image image
              Use this image as a starting point.

       -d, --root directory[:path]
              Add  the  given  directory and contents at a particular path (by
              default the root).

       -D, --devtable spec-file[:path]
              Use spec-file to specify inodes to be added, at the  given  path
              (by  default the root), including files, directories and special
              files like devices.  If the specified files are already  present
              in  the  image,  their  ownership  and  permission modes will be
              adjusted accordingly.  Furthermore, you can use a  single  table
              entry  to create many devices with a range of minor numbers (see
              examples below).  All specified  inodes  receive  the  mtime  of
              spec-file itself.

       -b, --size-in-blocks blocks
              Size of the image in blocks.

       -N, --number-of-inodes inodes
              Maximum number of inodes.

       -i, --bytes-per-inode ratio
              Used  to  calculate  the  maximum  number  of  inodes  from  the
              available blocks.

       -m, --reserved-percentage
              Number of reserved blocks as a percentage of size.  Reserving  0
              blocks will prevent creation of the "lost+found" directory.

       -g, --block-map path
              Generate a block map file for this path.

       -e, --fill-value value
              Fill unallocated blocks with value.

       -z, --allow-holes
              Make files with holes.

       -f, --faketime
              Use  a timestamp of 0 for inode and filesystem creation, instead
              of the present. Useful for testing.

       -q, --squash
              Squash permissions and owners (same as -P -U).

       -U, --squash-uids
              Squash ownership of inodes added using  the  -d  option,  making
              them all owned by root:root.

       -P, --squash-perms
              Squash   permissions  of  inodes  added  using  the  -d  option.
              Analogous to "umask 077".

       -v, --verbose
              Print resulting filesystem structure.

       -V, --version
              Print genext2fs version.

       -h, --help
              Display help.


       genext2fs -b 1440 -d src /dev/fd0

       All files in the src directory will be written to  /dev/fd0  as  a  new
       ext2 filesystem image. You can then mount the floppy as usual.

       genext2fs -b 1024 -d src -D device_table.txt flashdisk.img

       This example builds a filesystem from all the files in src, then device
       nodes are created based on the contents of the  file  device_table.txt.
       Entries in the device table take the form of:

       <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>

       where name is the file name and type can be one of:
              f    A regular file
              d    Directory
              c    Character special device file
              b    Block special device file
              p    Fifo (named pipe)
       uid  is  the  user  id for the target file, gid is the group id for the
       target file.  The rest of the entries (major, minor, etc) apply only to
       device special files.

       An example device file follows:

              # name    type mode uid gid major minor start inc count

              /dev      d    755  0    0    -    -    -    -    -
              /dev/mem  c    640  0    0    1    1    0    0    -
              /dev/tty  c    666  0    0    5    0    0    0    -
              /dev/tty  c    666  0    0    4    0    0    1    6
              /dev/loop b    640  0    0    7    0    0    1    2
              /dev/hda  b    640  0    0    3    0    0    0    -
              /dev/hda  b    640  0    0    3    1    1    1    16
              /dev/log  s    666  0    0    -    -    -    -    -

       This  device  table creates the /dev directory, a character device node
       /dev/mem (major 1, minor 1), and also creates /dev/tty,  /dev/tty[0-5],
       /dev/loop[0-1],  /dev/hda, /dev/hda1 to /dev/hda15 and /dev/log socket.


       mkfs(8), genromfs(8), mkisofs(8), mkfs.jffs2(1)


       This manual page was written by David Kimdon <>,  for
       the  Debian  GNU/Linux  system  (but  may be used by others).  Examples
       provided by Erik Andersen <>.

                                August 19, 2006