我的 /tmp 安装在哪里?

我的 /tmp 安装在哪里?
$ df /tmp
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root      480589544 42607368 413546516  10% /

$ ls /dev/root
ls: cannot access /dev/root: No such file or directory

我想检查我的默认 Debian 安装是/tmp在 RAM 中还是在磁盘上,但现在完全困惑了。为什么不存在的设备会被报告为文件系统类型? “安装在/”是什么意思?

这是输出mount

/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=811520k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=1013960,mode=755)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1623020k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
none_debugfs on /sys/kernel/debug type debugfs (rw,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,size=12k)
cgmfs on /run/cgmanager/fs type tmpfs (rw,relatime,size=100k,mode=755)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/run/cgmanager/agents/cgm-release-agent.systemd,name=systemd)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=811520k,mode=700,uid=1000,gid=1000)

答案1

如果输出如上,则它在硬盘上。您可以/dev/root通过查看内核命令行来获取:

$ cat /proc/cmdline | grep root
BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=0cde5cf9-b15d-4369-b3b1-4405204fd9ff ro

所以/dev/root相当于上面打印了UUID的分区;你的会有所不同。要查找此 UUID,请使用

$ sudo blkid
/dev/sda1: UUID="0cde5cf9-b15d-4369-b3b1-4405204fd9ff" TYPE="ext4" 
/dev/sda5: UUID="37bc6a9c-a27f-43dc-a485-5fb1830e1e42" TYPE="swap" 
/dev/sdb1: UUID="177c3cec-5612-44a7-9716-4dcba27c69f9" TYPE="ext4" 

如您所见,匹配的分区是/dev/sda1.所以你的/tmp在硬盘上。输出中的另一个赠品df是 mountpoint /。如果你安装/tmp在 RAM 中,你会得到

$ df /tmp
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs            3640904    20   3640884   1% /tmp

答案2

的输出df /tmp给出了答案:“Mounted on”列列出了/,因此/tmp是安装在 上的文件系统的一部分/,即根文件系统。它不是一个单独的文件系统。

为了更准确,您应该运行df /tmp/: if/tmp是符号链接,则df /tmp列出有关符号链接位置的信息,而df /tmp/列出有关目标目录的信息。

设备列中提及/dev/root是因为它列在 中/etc/mtab。您可以/proc/mounts通过使用</proc/mounts awk '$2 == "/" {print $1}'或查找来找到真实设备findmnt /

答案3

df /path/to/target显示哪个文件系统包含文件夹目标、总字节数、已用字节数、可用百分比和安装点。

在此问题中记录的示例中,该文件夹/tmp/位于标记为 的文件系统内root,该文件系统位于块设备 上/dev/sda1

mount | grep target将显示包含 中列出的名称目标的任何文件系统/etc/mtab。如果目标文件夹不是一个单独的文件系统,mount将不会直接给你准确的信息。

但是,要了解设备包含什么/tmp/,请使用df获取文件系统名称 ( /dev/root) 和安装点 ( /),然后搜索 的输出以mount查找设备或安装点并确定哪个块设备保存该文件系统。

区分设备和文件系统很重要,因为并不总是存在 1:1 的相关性。块设备可以分区,每个分区都有一个文件系统。每个分区可以有不同类型的文件系统。每个分区都有自己唯一的名称和 UUID,并且可以有别名。

答案4

检查一下这个,mount比较合适。您可以尝试一下,然后在“tmp”上 grep 其输出

前任:

$  mount | grep tmp
tmpfs on /dev/shm type tmpfs ...

这里说我的分区/dev/shm挂载了临时文件系统(临时文件存储,即在 RAM 中)。如果您的分区未使用 tmpfs 挂载,则它不在易失性内存中。

相关内容