GENEXT2FS(8)

NAME
genext2fs - ext2 filesystem generator for embedded systems

SYNOPSIS
genext2fs [ options ] [ output-image ]

DESCRIPTION
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.

OPTIONS

-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.

-i, --number-of-inodes inodes
    Maximum number of inodes.

-r, --reserved-blocks reserved
    Number of reserved blocks. 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.

-h, --help
    Display help.

EXAMPLES

    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.

SEE ALSO
mkfs(8), genromfs(8), mkisofs(8), mk.jffs2

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