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.
ls -l /dev/disk/by-uuid/lsblk -fudev 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:
udevadm monitor --propertyudevadm info -a -n /dev/sdbjournalctl -k -b | tailRules 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:
lspci -nnlspci -k | grep -A3 Ethernetmodinfo e1000eIf 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