为什么我的 ubuntu 服务器上有这么多文件系统,每个文件系统的用途是什么?

为什么我的 ubuntu 服务器上有这么多文件系统,每个文件系统的用途是什么?

df -H在系统上发出命令并看到以下输出

Filesystem      Size  Used Avail Use% Mounted on
tmpfs            95M  3.1M   92M   4% /run
/dev/mmcblk0p2   32G  3.2G   27G  11% /
tmpfs           475M     0  475M   0% /dev/shm
tmpfs           5.3M     0  5.3M   0% /run/lock
/dev/mmcblk0p1  265M  156M  110M  59% /boot/firmware
tmpfs            95M  4.1k   95M   1% /run/user/1000

我在这里想了解的是在我的系统上安装了 ubuntu 之后,该系统只有一个硬盘驱动器,没有分区。

  1. 我这里怎么有这么多文件系统?
  2. 它们各自的用途是什么?
  3. 这里如何查看ubuntu安装的各个文件系统的类型呢?

答案1

首先是“真正的”文件系统:

  • mmcblk0p2是你的根文件系统,它很可能使用一些 Unix 风格的文件系统,如 ext4、XFS 或类似的。

  • 既然mmcblk0p1挂载到了/boot/firmware,显然与启动过程有关;也许您的系统架构(我猜是 RasPi 或其他一些 ARM?)需要具有特定文件系统类型(如 FAT32?)的分区来启动、更新固件或类似的东西?

然后是tmpfs基于 - 的,大致按照它们引入的顺序:

(tmpfs是一个基于 RAM 的文件系统,只要系统重新启动,其内容就会丢失。它的内存使用量会根据需要自动增长和收缩:指定的大小实际上是最大大小限制。如果不使用,tmpfs文件系统占用的内存量绝对很小。 )

  • /run/lock是更早的/var/lock,并且由于它包含锁定文件和类似的文件,如果系统重新启动,这些文件就会变得毫无用处,在第一个基于固态内存的系统开发出来后不久,甚至在 2.6.x 内核系列之前,有人就有了一个想法将此目录放入 RAM 磁盘以节省固态介质上的写入周期。它仍然是一个单独的文件系统,以允许独立调整其大小,因为在某些情况下可能需要(某些)用户可以访问它,并且由于锁定文件是微小的,这可以限制为非常小的最大尺寸。

  • 在开发一个简单、节省空间的通用 RAM 磁盘文件系统之前tmpfs,有一个更受限制的版本,称为shmfs.它被用来实现一种特定风格的共享内存访问/dev/shm。现在,完全通用的tmpfs可以完成相同的工作甚至更多,但安装位置仍然存在。

  • /run似乎/run/user/1000systemd相关的发明。两者都是 UNIX 套接字、PID 文件(如果需要)以及所有类似的目录,如果系统重新启动,这些目录就会失去意义,因此基于 RAM 的目录tmpfs是它们的自然位置。第一个是系统服务;第二个是针对 UID 号为 1000 的用户的特定于用户的服务。这些服务可以具有更慷慨的最大大小分配,但比/run/lock.


正如评论中提到的,您可以使用lsblk -f(或我个人最喜欢的,lsblk -o +fstype)来查看实际的(=非tmpfs)文件系统及其列出的文件系统类型。

相关内容