Docudjeex
Linux tips for dummies

Folders and partitions

How the Debian filesystem is organised, what each top-level folder holds, how partitions differ from folders, and the habits that keep a server tidy.

Windows gives every disk its own letter. Linux doesn't: there is exactly one tree, it starts at /, and everything else hangs off it, including your other disks. A second drive isn't D:, it's mounted at a folder of the tree, /mnt/data for example, and from that point on it looks like any other folder. Odd at first, very practical afterwards, since a program never has to care which physical disk it's writing to.

The tree

That tree isn't arbitrary either. Every Debian install has the same folders in the same places, which is why a tutorial written for someone else's server applies to yours.

FolderWhat's in it
/homeUsers' files. Yours is /home/username, also written ~
/rootThe root account's own home, not to be confused with /
/etcSystem configuration, all of it plain text files
/varData that grows: logs in /var/log, Docker in /var/lib/docker
/tmpTemporary files, emptied at every reboot
/usrThe installed programs themselves, managed by apt
/optSoftware installed outside the package manager
/mnt and /mediaWhere extra disks get mounted, /media for removable ones
/bootThe kernel and the bootloader, on a small partition of its own
/devYour hardware, exposed as files (/dev/sda is a disk)
/proc and /sysThe kernel's live state, invented on the fly, not real files

Folders are not partitions

Partitions are a different question from folders. A minimal Debian install typically creates two, one for / and one for swap, so every folder above except /boot lives on the same partition and shares the same free space. Two commands to see the reality of it: lsblk draws the tree of disks and partitions, df -h shows how full each one is.

Terminal
lsblk
Output
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 465.8G  0 disk
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0 461.3G  0 part /
└─sda3   8:3    0     4G  0 part [SWAP]
sdb      8:16   0   3.6T  0 disk
└─sdb1   8:17   0   3.6T  0 part /mnt/data

A few habits worth taking

  • Give your Docker stacks one home, and keep them there. /srv is the folder the standard reserves for data served by the machine, which makes it the tidiest choice for compose files and their bind mounts. Serveex puts everything in /srv/docker, one folder per stack. What matters is picking one place and staying there, rather than scattering half of them into your home folder.
  • Your own files go in your home. Scripts in ~/bin, notes, downloads, anything personal. /root is the root account's home, not a convenient place to drop things.
  • Never edit anything under /usr or /bin by hand. apt owns those, and your changes disappear at the next upgrade. What you're allowed to configure lives in /etc.
  • In /etc, prefer a drop-in file over editing the main one. Many services read every .conf in a something.d/ folder next to their main config, /etc/ssh/sshd_config.d/ for instance. Your file then survives a package upgrade that rewrites the original.
  • Mount data disks by UUID, not by /dev/sdb. Device letters are assigned in the order the kernel finds the disks, so they can swap after a reboot or a new drive. lsblk -f gives you the UUID to put in /etc/fstab.
  • Keep an eye on /var. Docker images, container logs and system logs all pile up there, on the same partition as the rest. du -sh /var/lib/docker tells you what the containers weigh, df -h whether you should worry.
  • Don't create your files with sudo when you don't have to. A file created as root inside your home stays owned by root, and you'll be fighting permission errors over it for weeks.
Everything here assumes you can already move around a terminal. If cd, ls and sudo don't mean much yet, start with the command line basics.
Contributor:Djeex
Copyright © 2026