Mknod

From LQWiki
Jump to: navigation, search

mknod is the command used to create device files, which can act strangely compared to normal files. Device files are kept in /dev, and unlike normal files, these are files the kernel knows about, and reads/writes to.

mknod follows the syntax

mknod device-name device-type major-number minor-number
  • device-name - full name of device, in this example /dev/random
  • device-type - device files can represent 2 types of device, a storage device (block) or a device use for other purpose (character) .. block devices are things like cd-roms, hard drives, etc . Character devices are things like /dev/zero, /dev/null, or any other device not used to store info ... as you probably have guessed, for mknod "b" means block, and "c" means character
  • major-number - a number usually referring to what ground the device is in
  • minor-number - the number of the device within the group

Examples

mknod /dev/random c 1 8

Creates the character device /dev/random and has it point to major number 1, minor number 8.


major and minor numbers are chosen by the writers of the Linux kernel. For a list of these devices, major and minor numbers, and type, look in the kernel documentation, adduming /usr/src/linux refers to the linux source codes: see the file /usr/src/linux/Documentation/devices.txt.

Here is an example of what it might look like (note: this is not a real snippet from the file, but the file has its info arranged in a similar way)

45 block   some hard disks
      0 /dev/nicedisk nice hard disk
      1 /dev/noisydisk noisy hard disk

in the example, 45 is the major number, block is the type, and 0 is the minor number, and /dev/nicedisk is the name .. so

mknod /dev/nicedisk b 45 0

Creates the block device /dev/nicedisk and points it to major number 45, minor number 0.

Provided by

Most (all?) Linux distributions incorporate this from the GNU Coreutils: man page

Related Commands

See also