Linux 文件系统多年来在不断发展,让我们来看一下文件系统类型。
虽然对于普通用户来说可能并不明显,但在过去十年左右的时间里,Linux 文件系统已经发生了显著的变化,这使它们能够更好对抗损坏和性能问题。
如今大多数 Linux 系统使用名为 ext4 的文件系统。 “ext” 代表“扩展”,“4” 表示这是此文件系统的第 4 代。随着时间的推移添加的功能包括:能够提供越来越大的文件系统(目前大到 1,000,000 TiB)和更大的文件(高达 16 TiB),更抗系统崩溃,更少碎片(将单个文件分散为存在多个位置的块)以提高性能。
ext4 文件系统还带来了对性能、可伸缩性和容量的其他改进。实现了元数据和日志校验和以增强可靠性。时间戳现在可以跟踪纳秒级变化,以便更好地对文件打戳(例如,文件创建和最后更新时间)。并且,在时间戳字段中增加了两个位,2038 年的问题(存储日期/时间的字段将从最大值翻转到零)已被推迟到了 400 多年之后(到 2446)。
文件系统类型
要确定 Linux 系统上文件系统的类型,请使用 df
命令。下面显示的命令中的 -T
选项显示文件系统类型。 -h
显示“易读的”磁盘大小。换句话说,调整报告的单位(如 M 和 G),使人们更好地理解。
$ df -hT | head -10
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs tmpfs 596M 1.5M 595M 1% /run
/dev/sda1 ext4 110G 50G 55G 48% /
/dev/sdb2 ext4 457G 642M 434G 1% /apps
tmpfs tmpfs 3.0G 0 3.0G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 3.0G 0 3.0G 0% /sys/fs/cgroup
/dev/loop0 squashfs 89M 89M 0 100% /snap/core/7270
/dev/loop2 squashfs 142M 142M 0 100% /snap/hexchat/42
请注意,/
(根)和 /apps
的文件系统都是 ext4,而 /dev
是 devtmpfs 文件系统(一个由内核填充的自动化设备节点)。其他的文件系统显示为 tmpfs(驻留在内存和/或交换分区中的临时文件系统)和 squashfs(只读压缩文件系统的文件系统,用于快照包)。
还有 proc 文件系统,用于存储正在运行的进程的信息。
$ df -T /proc
Filesystem Type 1K-blocks Used Available Use% Mounted on
proc proc 0 0 0 - /proc
当你在整个文件系统中游览时,可能会遇到许多其他文件系统类型。例如,当你移动到目录中并想了解它的文件系统时,可以运行以下命令:
$ cd /dev/mqueue; df -T .
Filesystem Type 1K-blocks Used Available Use% Mounted on
mqueue mqueue 0 0 0 - /dev/mqueue
$ cd /sys; df -T .
Filesystem Type 1K-blocks Used Available Use% Mounted on
sysfs sysfs 0 0 0 - /sys
$ cd /sys/kernel/security; df -T .
Filesystem Type 1K-blocks Used Available Use% Mounted on
securityfs securityfs 0 0 0 - /sys/kernel/security
与其他 Linux 命令一样,这里的 .
代表整个文件系统的当前位置。
这些和其他独特的文件系统提供了一些特殊功能。例如,securityfs 提供支持安全模块的文件系统。
Linux 文件系统需要能够抵抗损坏,能够承受系统崩溃并提供快速、可靠的性能。由几代 ext 文件系统和新一代专用文件系统提供的改进使 Linux 系统更易于管理和更可靠。