device-table.pl(1) parses simple device tables and passes to mknod

Synopsis

 device-table.pl [-n|--dry-run] [-d DIR] [-f FILE]
 device-table.pl -?|-h|--help|--version

Options

By default, device-table.pl writes out the device nodes in the current working directory. Use the directory option to write out elsewhere.

multistrap contains a default device-table file, use the file option to override the default /usr/share/doc/multistrap/examples/device_table.txt

Use the dry-run option to see the commands that would be run.

Device nodes need fakeroot or another way to use root access. If device-table.pl is already being run under fakeroot or equivalent, the existing fakeroot session will be used, alternatively, use the no-fakeroot option to drop the internal fakeroot usage.

Note that fakeroot does not support changing the actual ownerships, for that, run the final packing into a tarball under fakeroot as well, or use "sudo" when running device-table.pl

Device table format

Device table files are tab separated value files (TSV). All lines in the device table must have exactly 10 entries, each separated by a single tab, except comments - which must start with #

Device table entries take the form of:

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

where name is the file name, type can be one of:

 f A regular file
 d Directory
 s symlink
 h hardlink
 c Character special device file
 b Block special device file
 p Fifo (named pipe)

symlinks and hardlinks are extensions to the device table, just for device-table.pl, other device table parsers might not handle these types. The first field of the symlink command is the existing target of the symlink, the third field is the full path of the symlink itself. e.g.

 /proc/self/fd/0 s /dev/stdin - - - - - - -

See http://wiki.debian.org/DeviceTableScripting