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:
We will look at
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 ...