我正在使用带有 Linux 的 BeagleBone 板。
当我输入命令“df-h" ,我看到 tmpfs 被安装了几次。
这是否意味着所有这些条目都安装在同一位置,或者 tmpfs 的不同部分?
这让我想到了另一件事我不太明白。这个 tmpfs 文件系统实际上是在哪里创建的?我猜它是在 Linux 启动时发生的。我应该能够找到创建此文件系统的脚本吗?
tmpfs 242.4M 0 242.4M 0% /dev/shm
tmpfs 242.4M 8.3M 234.2M 3% /run
tmpfs 242.4M 0 242.4M 0% /sys/fs/cgroup
tmpfs 242.4M 36.0K 242.4M 0% /tmp
tmpfs 242.4M 16.0K 242.4M 0% /var/volatile
tmpfs 242.4M 16.0K 242.4M 0% /var/lib
答案1
它们都是不同的文件系统。它们的共同点是文件系统类型:它们使用tmpfs
驱动程序,将数据存储在内存中。不存在它们都是其中一部分的“超级 tmpfs”:所有实例都是独立的。
显示“设备列”是tmpfs
因为许多配置缺乏想象力,并且使用与文件系统类型相同的字符串作为设备名称。 tmpfs 驱动程序会忽略“设备名称”,因为它不会从任何地方加载数据。
这些文件系统是通过安装它们来创建的,并通过卸载它们来销毁它们。例如,以下命令创建一个 tmpfs 文件系统,其内容只是根目录(所有 tmpfs 文件系统都以这种方式开始),由 root 拥有并具有权限rwxrwxrwt
,最大大小为 100MB:
mount -t tmpfs -o size=100Mi,mode=1777 some_arbitrary_name /mnt
挂载调用是在引导脚本中完成的。在过去,您可以mount
在启动期间执行的 shell 脚本中找到对该命令的调用。/var/lib
作为 tmpfs 挂载点并不常见,可以通过 进行配置/etc/fstab
。如今,大多数(如果不是全部)都是由 systemd 挂载的。
1这就是虚拟内存:RAM 或交换区。