RedHat 红帽系统管理(二):Linux 文件系统详解
在 Red Hat Enterprise Linux(RHEL)中,文件系统管理是系统管理员最核心、最日常的工作之一。本节重点讲解:
- Linux 文件系统层次结构标准(FHS)
- RHEL 默认支持的文件系统(XFS / ext4 等)
- 常见目录含义(FHS 标准)
- 磁盘/分区查看与挂载管理
- 常用命令:df、du、mount、umount、fdisk、parted、LVM 简介
基于 RHEL 9 / RHEL 10(2025–2026 年主流版本),参考官方文档《Managing File Systems》和《Storage Administration Guide》。
1. Linux 文件系统层次结构标准(FHS)
FHS(Filesystem Hierarchy Standard)是 Linux 基金会维护的标准,RHEL 完全遵循 FHS 3.0(最新版 2015 年发布,至今仍是主流参考)。
FHS 的核心目的:
- 让不同 Linux 发行版目录结构统一
- 便于软件安装、系统维护、脚本编写跨平台兼容
FHS 把目录分为四大类(按是否可变、是否系统专用):
| 类别 | 是否共享(多主机) | 是否只读(系统) | 典型目录 | 说明 |
|---|---|---|---|---|
| 静态 / 系统 | 是 | 是 | /bin、/sbin、/lib、/usr | 系统核心、可共享、可只读 |
| 静态 / 本地 | 否 | 是 | /etc、/boot | 本机配置、启动文件 |
| 动态 / 系统 | 是 | 否 | /var、/tmp | 日志、临时文件、变化频繁 |
| 动态 / 本地 | 否 | 否 | /home、/root、/opt | 用户数据、可安装软件 |
RHEL 最重要目录详解(FHS + RHEL 实际用法)
| 目录 | 内容说明(RHEL 重点) | 是否可卸载到单独分区 | 常见命令/操作 |
|---|---|---|---|
| / | 根目录,整个文件系统起点,必须包含开机所需文件 | — | — |
| /bin | 基本命令(ls、cp、mv、cat、mkdir 等),RHEL 9+ 软链接到 /usr/bin | 建议放根分区 | — |
| /sbin | 系统管理命令(fdisk、ifconfig、reboot 等),RHEL 9+ 软链接到 /usr/sbin | 建议放根分区 | — |
| /boot | 内核、initramfs、grub2 配置文件(vmlinuz、initrd.img、grub.cfg) | 强烈建议单独分区 | grub2-mkconfig、dracut |
| /dev | 设备文件(/dev/sda、/dev/nvme0n1、/dev/null 等),动态生成 | — | udevadm |
| /etc | 系统配置文件(/etc/passwd、/etc/fstab、/etc/sysconfig 等) | 建议放根分区 | vi、systemctl edit |
| /home | 普通用户家目录(/home/redhatuser) | 可单独分区 | useradd -m |
| /root | root 用户家目录 | — | — |
| /lib /lib64 | 共享库(libc.so 等),RHEL 9+ 软链接到 /usr/lib | 建议放根分区 | — |
| /media | 自动挂载点(U盘、光盘) | — | — |
| /mnt | 管理员临时挂载点 | — | mount /dev/sdb1 /mnt |
| /opt | 第三方软件安装目录(如 oracle、google-chrome) | 可单独分区 | — |
| /proc | 虚拟文件系统(进程、内核参数、/proc/cpuinfo、/proc/meminfo) | — | cat /proc/cpuinfo |
| /run | 运行时数据(PID 文件、锁文件),tmpfs | — | — |
| /srv | 服务数据(如 www、ftp 站点根目录) | 可单独分区 | — |
| /sys | sysfs 虚拟文件系统(硬件信息、设备树) | — | — |
| /tmp | 临时文件(重启清空,tmpfs 或磁盘) | 可单独分区 | tmpwatch |
| /usr | 用户程序和数据(/usr/bin、/usr/share、/usr/local) | 可单独分区 | — |
| /var | 变量数据(日志 /var/log、邮件 /var/spool/mail、缓存 /var/cache) | 强烈建议单独分区 | journalctl、logrotate |
RHEL 9/10 新变化(与老版本对比):
- /bin、/sbin、/lib、/lib64 → 软链接到 /usr 对应目录(统一管理)
- 默认文件系统:XFS(高性能、大文件友好)
- 支持 ext4、XFS、NFS、SMB、Stratis(高级存储管理)
2. 常用文件系统查看与管理命令
| 命令 | 作用 | 常用用法示例 | 说明 |
|---|---|---|---|
| df -h | 查看已挂载文件系统使用情况 | df -hT | -h 人类可读,-T 显示类型 |
| du -sh | 查看目录/文件占用空间 | du -sh /var/log du -sh * | -s 汇总,-h 人类可读 |
| lsblk | 列出块设备(磁盘、分区、LVM、挂载点) | lsblk -f | -f 显示文件系统类型 |
| mount | 查看当前挂载情况 / 挂载文件系统 | mount /dev/sdb1 /mnt/data | 无参数 → 列出所有挂载 |
| umount | 卸载文件系统 | umount /mnt/data umount /dev/sdb1 | 目标可以是挂载点或设备 |
| fdisk -l | 查看分区表(MBR/GPT) | fdisk -l /dev/sda | 交互分区用 fdisk /dev/sda |
| parted | 高级分区工具(支持 GPT、大于2TB 磁盘) | parted /dev/sdb mklabel gpt mkpart primary xfs 1MiB 100% | 脚本友好,非交互更安全 |
| blkid | 查看设备 UUID / 文件系统类型 | blkid /dev/sda1 | 常用于 /etc/fstab 写入 UUID |
自动挂载配置:/etc/fstab(最重要文件!)
格式示例:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults 0 0
/dev/mapper/vg_data-lv_data /app ext4 defaults 0 0
3. LVM 逻辑卷管理快速入门(RHEL 生产标配)
LVM(Logical Volume Manager)允许动态调整分区大小、无需停机扩容。
核心概念:
- PV(Physical Volume)→ 物理磁盘/分区
- VG(Volume Group)→ 卷组(多个 PV 组成池)
- LV(Logical Volume)→ 逻辑卷(从 VG 切出来的“分区”)
常用命令流程:
# 1. 创建 PV
pvcreate /dev/sdb /dev/sdc
# 2. 创建 VG
vgcreate vg_data /dev/sdb /dev/sdc
# 3. 创建 LV
lvcreate -L 50G -n lv_data vg_data
# 4. 格式化
mkfs.xfs /dev/vg_data/lv_data
# 5. 挂载(写入 fstab)
mkdir /data
mount /dev/vg_data/lv_data /data
# 6. 后续扩容(在线扩容!)
lvextend -L +20G /dev/vg_data/lv_data
xfs_growfs /data # XFS 在线扩展
# 或 resize2fs /data # ext4
查看命令:
pvs / vgs / lvs
pvdisplay / vgdisplay / lvdisplay
4. 快速记忆口诀 & 面试高频
- FHS 核心三目录:根(/)必须小、/usr 可共享只读、/var 必须可写且大
- RHEL 默认 FS:XFS(企业级首选)
- 挂载三要素:设备 / 挂载点 / 文件系统类型(可省略类型,mount 会自动识别)
- 生产建议:/boot、/、/home、/var、/data 尽量单独分区
- 面试题:df 与 du 显示大小不一致的原因?(已删除但进程占用的文件)
下一期想看什么?
- 文件权限/SELinux 详解
- XFS vs ext4 性能对比与调优
- Stratis 高级存储管理(RHEL 9+ 新特性)
- RAID + LVM 生产实战配置
告诉我,我继续写~