Linux 文件系统采用单一树状层次结构,所有分区、设备、虚拟文件系统都挂载在统一的根目录 / 之下,没有 Windows 式的 C:、D: 盘概念。这一设计遵循 Filesystem Hierarchy Standard(FHS),由 Linux 基金会(早期)维护,最新版本为 3.0(2015 年发布,2025 年由 FreeDesktop.org 重新发布并接管维护)。
FHS 的核心目标是:
现代主流发行版(Ubuntu 24.04+、Fedora 40+、Arch、Debian bookworm+、Rocky/Alma 9+)基本遵循 FHS 3.0,同时大量采用 merged-/usr(/bin → /usr/bin 的符号链接),少数仍保留传统分离布局。
FHS 将目录按两个维度分类:
这四个象限组合决定了目录的典型位置。
以下表格按重要程度和实际使用频率排序,包含用途、是否 merged-/usr 影响、典型大小、是否可卸载到独立分区、现代变化点。
| 目录 | 主要用途 | 是否必须在根分区 | 典型占用 | 可独立分区 | 现代趋势与备注 |
|---|---|---|---|---|---|
| / | 整个文件系统根起点 | 是 | — | — | — |
| /boot | 内核、initramfs、引导加载器(GRUB、systemd-boot)配置文件 | 强烈推荐 | 几百 MB–2GB | 是(常见) | EFI 系统下常为 /boot/efi(FAT32);某些发行版放 /boot/efi/boot |
| /etc | 主机特定系统和服务配置文件中心 | 是 | 几十–几百 MB | 否 | 几乎所有手工修改集中在此;docker/kubernetes 配置常放 /etc/xxx |
| /bin | 基础必需命令(单用户模式也能用)→ 已 merged 到 /usr/bin | 是(符号链接) | — | 否 | 2025–2026 Fedora/Arch/Ubuntu/Debian 均为 symlink |
| /sbin | 系统管理命令(传统上 root 专用)→ 已 merged 到 /usr/sbin | 是(符号链接) | — | 否 | 同上;systemd 时代 /usr/sbin 内容越来越少 |
| /usr | 只读、可共享的用户与系统软件主目录 | 推荐 | 5–20+ GB | 是(常见) | 现代 merged-/usr 布局下成为实际软件存储根;/usr/local 放手工编译软件 |
| /var | 运行时可变数据:日志、缓存、队列、数据库文件、Docker/Podman 数据 | 推荐 | 可达数十 GB | 是(强烈推荐) | /var/log、/var/lib/docker、/var/cache 是磁盘爆满头号嫌疑人 |
| /home | 用户个人数据、家目录 | 推荐 | 用户决定 | 是(常见) | 企业服务器常单独分区,便于系统重装不丢数据 |
| /root | root 用户家目录 | 是 | 小 | 否 | 与普通用户 /home 分开,避免混淆 |
| /tmp | 临时文件(很多发行版用 tmpfs,重启清空) | — | 几百 MB–几 GB | 可(但多为 tmpfs) | systemd-tmpfiles 自动清理;/var/tmp 保留跨重启临时文件 |
| /dev | 设备节点(由 udev 动态创建) | — | 很小 | 否(devtmpfs) | 现代为 devtmpfs + tmpfs 混合 |
| /proc | 进程与内核运行时信息(procfs,纯内存文件系统) | — | 很小 | 否 | /proc/cpuinfo、/proc/meminfo、/proc/<pid>/ 实时数据 |
| /sys | 设备、驱动、内核参数暴露(sysfs,纯内存) | — | 很小 | 否 | /sys/class/net/、/sys/block/、/sys/module/ 常用 |
| /run | 运行时临时数据(取代旧 /var/run,tmpfs) | — | 小 | 否(tmpfs) | systemd、lock 文件、pid 文件集中 |
| /mnt | 管理员临时挂载点 | — | — | — | 手动 mount 用;不建议长期使用 |
| /media | 自动挂载可移动介质(U 盘、光盘) | — | — | — | udisks/桌面环境使用 |
| /opt | 第三方独立软件包(非包管理器安装) | — | 可大 | 可 | 如 Google Chrome、某些商业软件 |
| /srv | 服务提供的数据(www、ftp、rsync 等) | — | 可大 | 可 | 逐渐被 /var/www、/var/lib/gitea 等取代 |
| /lost+found | ext4 文件系统修复时孤立文件恢复目录 | — | — | — | fsck 自动生成 |
这五个目录最常被新手混淆,以下是核心区别:
理解 Linux 文件系统结构,就是理解了“系统把什么放在哪里,为什么这么放”。一旦建立这个地图,后续排查问题、优化性能、写自动化脚本都会事半功倍。