Photo by chansu shin on Unsplash

On this page

This chapter follows Linux filesystems.

Storage controllers, network cards, and USB keyboards all enter the kernel as devices. User space discovers them through /dev, sysfs under /sys, and tools such as lsblk and lspci. On Debian, missing firmware or udev rules is a common reason Wi-Fi or graphics fail after install.

Device files in /dev

Character and block device nodes live in /dev. Names like /dev/sda (whole disk) and /dev/sda1 (partition) are conventions; /dev/disk/by-uuid/ provides stable symlinks for fstab.

Modern systems use devtmpfs: the kernel creates nodes early; udev adjusts permissions and symlinks afterward. Static /dev on disk is obsolete on Debian.

Terminal window
ls -l /dev/disk/by-uuid/
lsblk -f

udev and hotplug

udev reacts to kernel uevents: when a USB drive arrives, udev sets ownership, applies rules in /etc/udev/rules.d/ and /usr/lib/udev/rules.d/, and may mount via desktop helpers or leave that to you.

Debugging a missing device:

Terminal window
udevadm monitor --property
udevadm info -a -n /dev/sdb
journalctl -k -b | tail

Rules match attributes (vendor, serial) to actions (symlink, group plugdev). Keep custom rules minimal—overly broad matches can surprise you on every boot.

Block devices, partitions, and GPT

lsblk shows the tree of disks, partitions, and mountpoints. parted or gdisk manage GPT partition tables on UEFI systems. Legacy MBR still appears on older disks.

Tool Role
lsblk, blkid Discovery and filesystem types
parted, gdisk Partition editing
smartctl Disk health (SMART)

LVM and LUKS layers sit between partitions and filesystems; initramfs unlocks them at boot—see Booting Linux and systemd.

Drivers and kernel modules

Hardware needs a driver in the kernel or as a module. lspci -k and lsusb list devices and bound drivers:

Terminal window
lspci -nn
lspci -k | grep -A3 Ethernet
modinfo e1000e

If no driver binds, you may need a newer kernel (backports), DKMS build, or firmware. Proprietary GPU drivers often ship as separate Debian packages with their own kernel module builds.

Firmware on Debian

Many devices load firmware blobs at probe time. Debian splits firmware into non-free-firmware on official mirrors so DFSG-free main stays clean. Install metapackages such as firmware-linux or device-specific packages when dmesg reports “failed to load firmware.”

Without firmware, the kernel may still bind a driver but the device stays inactive—common with Wi-Fi chipsets and some GPUs.

Buses: PCI, USB, and discovery

PCI connects internal cards; USB hot-plugs peripherals. lsusb -t shows topology; dmesg logs enumeration order. I2C/SPI appear on embedded boards; the same pattern holds—kernel driver, device node or sysfs entry, udev policy.

Network interface naming (enp0s31f6, wlan0) comes from udev and predictable naming rules; Networking on Linux picks up from there.

Processes and communication between them are next: Processes and inter-process communication.

The next chapter is Processes and inter-process communication.

Check your understanding

Question 1 of 6

0 of 6 checked

  1. 1. Where does the article point for stable disk symlinks?

Search articles

Type a word to search published articles.

Open the search page