The kernel has a utility, gen_init_cpio
, that creates a cpio
file based on format instructions set out in a text file, called a device table
, which allows a non-root user to create device nodes and to allocate arbitrary UID and GID values to any file or directory.
The same concept has been applied to tools that create other filesystem image formats:
jffs2
:mkfs.jffs2
ubifs
:mkfs.ubifs
ext2
:genext2fs
We will look at jffs2
and ubifs
in Chapter 7, Creating a Storage Strategy, when we look at filesystems for flash memory. The third, ext2
, is a fairly old format for hard drives.
They each take a device table file with the format <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
in which the following applies:
name
: Filenametype
: One of the following:f
: A regular filed
: A directoryc
: A character special device fileb
: A block special device filep
: A FIFO (named pipe)
uid
The...