这些 tmpfs 分区/文件夹是什么以及如何删除它们?

5Yr*_*DBA 9 linux partitioning

我正在运行 Fedora 20。我得到以下输出 $df -h

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/fedora-root   11G  8.0G  2.1G  80% /
devtmpfs                 3.5G     0  3.5G   0% /dev
tmpfs                    3.5G   76K  3.5G   1% /dev/shm
tmpfs                    3.5G  676K  3.5G   1% /run
tmpfs                    3.5G     0  3.5G   0% /sys/fs/cgroup
tmpfs                    3.5G  164K  3.5G   1% /tmp
/dev/sda1                477M   90M  358M  20% /boot
/dev/mapper/fedora-home   45G   26G   17G  60% /home
none                     224G  114G  111G  51% /media/sf_VBShared
Run Code Online (Sandbox Code Playgroud)

我不明白为什么很少tmpfs,而且devtmpfs. 他们为什么在这里?我可以删除它们并取回这些磁盘空间吗?

Jde*_*eBP 10

评论和其他答案解决了您对 tmpfs 的误解。在这里,我要解决

他们为什么在这里?
我可以删除它们吗?
如所问。

在 systemd 俚语中,所有这些都是API 文件系统。它们是基于 systemd 的系统运行的基础,systemd 程序在系统初始化时挂载它们,然后再执行几乎任何其他操作。在system-managerNOSH确实大同小异,除了(目前)/sys/fs/cgroup/tmp

/dev/shm

在(仅)Debian Linux 操作系统上,这实际上是/run/shm. 此 tmpfs 具有在您的操作系统上实现POSIX 共享内存的特定目的。删除它会导致使用 POSIX 共享内存的应用程序失败。

/sys/fs/cgroup

这是 systemd(和其他人)安装操作系统上可用的各种控制组控制层次结构的地方。删除它会停止操作系统中依赖于控制组的部分工作。

/tmp

这当然是用户希望能够放置短期临时文件的地方。删除它会使大量使用临时文件的应用程序非常不满意。

/run

这曾经是/var/run。它是放置(特定类型的)临时文件的地方,它们可能会持续到下一个系统引导程序。您会发现其中充满了 PID 文件、systemd 非持久性日志、UNIX 域套接字、FIFO 和其他类似的东西。删除它会使 systemd 日志哭泣;打破对大量令人沮丧的守护进程的(错误)管理,即使在今天,这些守护进程仍然使用 PID 文件;并破坏 udev,systemd“多座”系统,以及一大堆其他子系统。

在 nosh 系统上,删除它同样会破坏所有具有 FIFO 和套接字的相同子系统。它还将破坏服务管理器的控制 API、服务管理器的关联记录器守护程序以及任何“早期监督”守护程序的控制/状态 API。

/dev

传统上,字符设备和块设备的所有设备文件都存储在 Unices 和 Linux 上。很多程序和子系统想到传统的名称,如/dev/tty/dev/null/dev/zero/dev/console/dev/fd/0/dev/sda,等工作。删除它会破坏你的系统,我怀疑它是否可用。这是一个devtmpfs而不是一个tmpfs。不同之处在于前者由内核本身自动填充和取消填充设备文件条目,因为设备在内核中加载/启用和禁用/卸载。

进一步阅读


Dan*_*Dan 0

tmpfs 简称为(一种)ramdisk。我们的想法不是用临时的小东西来破坏硬盘驱动器,如今内存不再是溢价,并且基于 RAM 的块设备增加了速度优势。

很长一段时间你可以阅读例如http://en.wikipedia.org/wiki/Tmpfs

引用文章中的话

tmpfs 中存储的所有内容都是临时的,因为不会在硬盘上创建任何文件;但是,在内存不足的情况下,交换空间可用作后备存储。重新启动时,tmpfs 中的所有内容都将丢失。

tmpfs 使用的内存会增长和收缩以容纳它包含的文件,并且可以交换到交换空间。