Linux presents files through one directory tree beginning at /, but the data underneath that tree can live on different disks, partitions, virtual devices, or network storage. Understanding how those layers connect is essential before you start resizing disks, editing /etc/fstab, or troubleshooting storage problems.
The key is to separate four concepts that beginners often treat as the same thing: a disk provides storage, a partition can divide that storage, a filesystem organizes data, and a mount point places that filesystem into the Linux directory tree.
A Linux storage path often looks conceptually like this:
disk → partition → filesystem → mount point → files and directories.
Not every system uses every layer exactly this way, but this model explains a large share of ordinary server storage. Commands such as lsblk, findmnt, and df let you inspect different parts of that chain without changing the system.
- What block devices, disks, and partitions represent.
- Why a filesystem is different from the storage device beneath it.
- What mounting means in Linux.
- Why one directory tree can contain data from several devices.
- What
lsblk,findmnt, anddfeach tell you. - What role
/etc/fstabplays in persistent mount configuration.
- 💾 Start with the Storage Layers
- Disk / Block Device
- Partition
- Filesystem
- Mount Point
- 💽 What Is a Block Device?
- 🧩 What Is a Partition?
- 🗂️ What Is a Filesystem?
- 📍 What Does Mounting Mean?
- 🌳 One Directory Tree Can Use Several Filesystems
- 🔍 Inspect Block Devices with lsblk
- Find the device
- Look for child partitions
- Check where storage appears
- 🔎 Inspect Mounted Filesystems with findmnt
- 📊 Where df Fits In
- 🔄 Put the Entire Path Together
- The block device provides storage
- A partition can define a region
- A filesystem organizes data
- The mount exposes it in the directory tree
- ⚙️ What Is /etc/fstab?
- 🧠 Why UUIDs Appear in Storage Configuration
- 🧪 Mini Lab: Map Your Server’s Storage
- ⚠️ Common Storage Mistakes
- 💡 A Better Storage Troubleshooting Model
- What You Should Remember
💾 Start with the Storage Layers
A common beginner mistake is to use the words disk, partition, and filesystem interchangeably. They describe different layers.
Disk / Block Device
A storage device or device-like block storage resource exposed to Linux.
Partition
A defined region of a disk. A disk can contain several partitions or sometimes be used without partitioning.
Filesystem
A structure that organizes files, directories, metadata, and free space on storage.
Mount Point
A directory where a filesystem becomes accessible inside the Linux directory hierarchy.
The simplified relationship is:
Real systems can be more complex. Storage may involve LVM, RAID, encryption, device mapper layers, network filesystems, containers, or filesystems that span multiple devices. The simple model is still the right place to begin because it makes those advanced layers easier to add later.
💽 What Is a Block Device?
Linux represents many storage devices through block device interfaces. Instead of applications having to understand every physical disk controller directly, the kernel exposes devices that software can access as blocks of data.
You commonly see device paths under /dev. Depending on the environment, examples might resemble:
/dev/sda
/dev/sda1
/dev/vda
/dev/vda1
/dev/nvme0n1
/dev/nvme0n1p1
These names are examples of common naming patterns, not universal guarantees. A virtual machine, cloud server, physical host, and NVMe system can expose storage differently.
A device name tells you about the storage object Linux exposes, not necessarily the complete physical architecture behind it. A VPS disk may ultimately be backed by a storage system far more complex than the single block device visible inside the guest operating system.
🧩 What Is a Partition?
A partition describes a region of a storage device. Partition tables let one disk be divided into separately addressable areas.
Conceptually, a disk might look like this:
Each partition can then potentially be used for a different purpose. One could contain a filesystem mounted as the root filesystem, another could be used for boot-related data, swap, or another storage role.
Partitions are not mandatory in every possible Linux storage design. A filesystem can also be created on certain whole block devices, and more advanced storage stacks can introduce additional layers between the physical device and filesystem.
The important idea is that a partition is a boundary in storage; it is not itself the filesystem that stores ordinary directories and files.
🗂️ What Is a Filesystem?
A raw storage region does not automatically provide familiar objects such as filenames and directories. A filesystem defines how data and metadata are organized so that the operating system can work with files.
Within a filesystem, names and file objects are related but not identical. Hard links and symbolic links in Linux illustrate the difference: two hard-linked names share an inode, while a symlink stores a pathname that Linux resolves.
Linux supports multiple filesystem types. Examples commonly encountered on Linux systems include ext4 and XFS, while other filesystem types are used in particular environments and workloads.
At the conceptual level, a filesystem is responsible for things such as:
- organizing files and directories;
- tracking metadata;
- tracking which storage space is allocated or available;
- supporting filesystem-specific features and limits.
This is why the phrases “the disk is full” and “the filesystem is full” are not perfectly interchangeable. The operating system usually reports file usage within a mounted filesystem, while the underlying device may participate in a larger storage arrangement.
📍 What Does Mounting Mean?
Linux does not normally assign independent drive letters such as C: or D:. Instead, accessible files are presented through one hierarchy rooted at /.
Mounting attaches a filesystem to a location in that hierarchy.
That location is the mount point.
For example, imagine a separate filesystem mounted at:
/data
After the mount is active, accessing files below /data accesses the mounted filesystem.
This design allows multiple filesystems to appear as parts of the same directory tree.
🌳 One Directory Tree Can Use Several Filesystems
The Linux directory tree is a namespace: it describes where files appear. It does not mean every directory necessarily belongs to the same storage device.
A simplified server might look conceptually like this:
/
├── etc
├── home
├── var
└── data
But underneath, the storage could be arranged as:
| Path | Possible Storage | Meaning |
|---|---|---|
/ |
Root filesystem | Provides the main directory hierarchy. |
/boot |
Separate filesystem on some systems | Can contain boot-related files independently of the root filesystem. |
/data |
Additional disk or logical storage | Can expose application or user data through a dedicated mount point. |
The exact layout is system-specific. The lesson is that directory location and physical storage location are related through mounts rather than being the same concept.
🔍 Inspect Block Devices with lsblk
The lsblk command lists block devices and is one of the fastest ways to understand a server’s visible storage structure.
Run:
lsblk
A simplified example might look like:
NAME SIZE TYPE MOUNTPOINTS
vda 40G disk
├─vda1 1G part /boot
└─vda2 39G part /
The exact columns and output depend on the system and tool version, so treat this only as an illustrative shape.
Read the hierarchy from the top downward:
Find the device
A row with type disk represents a disk-like block device visible to the system.
Look for child partitions
Indented child entries can show partitions or other dependent block devices.
Check where storage appears
Mount-point information can connect a block device with paths such as / or /boot.
To include filesystem-related information, a useful observational command is:
lsblk -f
This can display filesystem type, labels, UUID information, and mount points when available.
🔎 Inspect Mounted Filesystems with findmnt
lsblk starts from block devices. findmnt approaches the problem from the mounted-filesystem side.
Run:
findmnt
The command can list mounted filesystems in a tree-like form, making it easier to see how filesystems are attached beneath the Linux directory hierarchy.
You can also ask which filesystem contains a particular path:
findmnt --target /var/log
This is useful because a path such as /var/log does not tell you by itself which mounted filesystem ultimately contains it.
lsblk answers “what block storage exists and how is it structured?” while findmnt answers “what filesystems are mounted and where do they appear?” Looking at both views is often more informative than relying on either command alone.
📊 Where df Fits In
The df command answers a different question: how much space is available and used on mounted filesystems.
For a human-readable view:
df -h
You might see a filesystem associated with a mount point such as /, /boot, or another directory.
This creates a useful distinction:
| Command | Main Question | Think About |
|---|---|---|
lsblk |
What block devices exist? | Disks, partitions, device relationships |
findmnt |
What is mounted where? | Filesystem sources and mount points |
df -h |
How much space is used? | Mounted filesystem capacity |
If df reports a filesystem at 95% usage, that tells you about space consumption. It does not by itself fully explain the underlying block-device topology.
🔄 Put the Entire Path Together
Imagine a server with an additional storage device. A simplified storage path could be:
Each stage answers a different question:
The block device provides storage
The operating system sees a disk-like storage resource.
A partition can define a region
Part of the device is represented as a separately addressable storage region.
A filesystem organizes data
The storage region gains structures that Linux can use for files, directories, and metadata.
The mount exposes it in the directory tree
The filesystem becomes accessible through a path such as /data.
⚙️ What Is /etc/fstab?
Mounting a filesystem once and configuring it to be mounted during normal system startup are separate concepts.
Linux systems commonly use /etc/fstab to describe filesystems and mount configuration that system tools should know about.
You can safely inspect the file without modifying it:
cat /etc/fstab
An entry can describe information such as:
- the filesystem source;
- the target mount point;
- filesystem type;
- mount options;
- additional filesystem-check or dump-related fields.
Sources are often identified using stable identifiers such as filesystem UUIDs rather than relying only on device names.
Reading /etc/fstab is safe; editing it changes storage configuration. An invalid or inappropriate entry can prevent an expected filesystem from mounting and can create boot or service problems. Do not modify production mount configuration until you understand the fields and have a recovery path.
🧠 Why UUIDs Appear in Storage Configuration
Device paths such as /dev/sdb1 are convenient for humans, but administrators often want a more persistent way to identify a particular filesystem.
A filesystem UUID provides an identifier that tools can use to refer to that filesystem.
You may see UUID information with:
lsblk -f
And findmnt can work with filesystem identifiers as well as device paths and mount points.
The important concept is not memorizing UUID syntax. It is understanding that the filesystem identity and its current device pathname are separate pieces of information.
🧪 Mini Lab: Map Your Server’s Storage
Goal: trace storage from block devices to mounted filesystems without changing anything.
1. List block devices.
lsblk
What to observe: identify disk-like devices, child partitions, sizes, and any visible mount points.
2. Add filesystem information.
lsblk -f
What to observe: look for filesystem types, UUID information, and mount points. Not every device necessarily contains a directly visible filesystem.
3. Inspect the mount tree.
findmnt
What to observe: notice how mounted filesystems appear beneath paths in the Linux directory hierarchy.
4. Identify the filesystem behind a familiar path.
findmnt --target /var/log
How to interpret it: the result shows which mounted filesystem contains that path. On many systems, /var/log will simply belong to the root filesystem, but systems with separate mounts can differ.
5. Compare capacity.
df -h
What to observe: compare the mounted filesystems with their used and available space.
Result: you have now viewed the same storage environment from three angles: block-device topology, mount relationships, and filesystem capacity.
⚠️ Common Storage Mistakes
A disk provides block storage, while a filesystem organizes data on storage. Other layers such as partitions, RAID, encryption, or LVM may sit between them.
A partition can exist without currently being mounted. Likewise, not every mounted filesystem must correspond directly to one ordinary disk partition.
A path such as /data is part of the directory namespace. You need mount information to determine which filesystem supplies the contents beneath it.
df is excellent for mounted filesystem capacity, but lsblk and findmnt answer different structural questions.
Persistent mount configuration affects startup and filesystem availability. First inspect devices and active mounts, then understand the existing configuration before changing it.
💡 A Better Storage Troubleshooting Model
When storage behaves unexpectedly, work through the layers instead of jumping directly to random commands.
- Does Linux see the block device? Inspect the device layer with
lsblk. - What structure exists on it? Look for partitions and filesystem information.
- Is the filesystem mounted? Inspect the mount tree with
findmnt. - Where is it mounted? Identify the mount point that exposes it in the directory hierarchy.
- How much capacity is available? Use
df -hfor mounted filesystem usage. - Should the mount persist? Inspect configuration such as
/etc/fstabwhen persistent mounting is relevant.
Storage troubleshooting becomes much easier when you identify which layer is failing. “The disk is missing,” “the filesystem is not mounted,” and “the filesystem is full” describe three different problems and should lead you to different evidence.
What You Should Remember
Linux storage is easier to understand when you separate the physical or virtual storage resource from the filesystem namespace that applications see.
The common mental model is:
Then choose your inspection tool based on the question. Use lsblk for block-device structure, findmnt for mount relationships, and df for mounted filesystem capacity.
- What is the conceptual difference between a partition and a filesystem?
- What does a mount point do?
- Why can two directories in the same Linux directory tree reside on different storage devices?
- When would
lsblkbe more useful thandf? - What question does
findmnt --target /var/loghelp answer? - Why should
/etc/fstabbe treated more carefully than an observational command such aslsblk?
🎓 Check Your Answers
- A partition defines a region of a storage device, while a filesystem provides the data structures used to organize files, directories, metadata, and free space. A partition can exist without containing an ordinary mounted filesystem.
- A mount point connects a filesystem to a directory in Linux’s single filesystem hierarchy. Once mounted, files from that filesystem become accessible through the mount-point path.
- The Linux directory tree is a unified namespace rather than a one-disk-per-tree model. Different filesystems can be mounted at different directories while still appearing beneath the same root directory.
lsblkis more useful when you need to understand visible block devices, partitions, and their relationships.dffocuses primarily on capacity information for mounted filesystems.findmnt --target /var/loghelps determine which mounted filesystem contains that path. This is useful because the pathname alone does not reveal its underlying mount relationship.lsblkonly observes device information, while changing/etc/fstabmodifies persistent mount configuration. A bad configuration can prevent expected filesystems from mounting and can affect normal startup or services.
Do not think of Linux storage as “a disk full of folders.” Think in layers: storage provides blocks, partitions can divide the device, filesystems organize data, and mounts place those filesystems into the directory tree.
When something goes wrong, identify the layer first. lsblk, findmnt, and df answer different questions, and using the right one turns storage troubleshooting from guesswork into a structured investigation.








