我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 之后,该系统只有一个硬盘驱动器,没有分区。
- 我这里怎么有这么多文件系统?
- 它们各自的用途是什么?
- 这里如何查看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/1000
是systemd
相关的发明。两者都是 UNIX 套接字、PID 文件(如果需要)以及所有类似的目录,如果系统重新启动,这些目录就会失去意义,因此基于 RAM 的目录tmpfs
是它们的自然位置。第一个是系统服务;第二个是针对 UID 号为 1000 的用户的特定于用户的服务。这些服务可以具有更慷慨的最大大小分配,但比/run/lock
.
正如评论中提到的,您可以使用lsblk -f
(或我个人最喜欢的,lsblk -o +fstype
)来查看实际的(=非tmpfs
)文件系统及其列出的文件系统类型。