我的/ tmp安装在哪里?


9
$ 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
输出看起来很斯巴达。您可以发布mount命令的输出吗?
Rui F Ribeiro

/tmp是安装点。您要问的问题是“ / tmp上安装了什么分区/设备?”
威廉·珀塞尔

这样说(我认为)可以澄清您的困惑。 /dev/root是安装在文件系统根目录上的设备(/
William Pursell,

Answers:


8

如果输出如上,则在硬盘上。您可以/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位于硬盘上。dfmountpoint 输出中的另一个赠品是/。如果您安装/tmp在RAM中,则会得到

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

7

的输出df /tmp给出了答案:“ Mounted on”列列出了/,这/tmp是挂载在的文件系统的一部分/,即根文件系统。它不是独立的文件系统。

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

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


df /tmp和+1 findmnt /
akhan

0

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

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

mount | grep target将显示包含名称目标的所有文件系统,如中所列/etc/mtab。如果目标文件夹不是单独的文件系统,则mount不会直接为您提供准确的信息。

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

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


-2

要检查这一点,mount更合适。您可以尝试一下,然后在“ tmp”上grep输出

例如

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

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


我期待看到tmpfs on /tmp
Vorac

相反,df直接提供信息,而mount | grep不能可靠地提供信息(它会丢失/tmp符号链接的情况,并且对于诸如此类的东西都不起作用,/var/tmp因为它们之一/var/var/tmp可能是安装点)。
吉尔(Gilles)“所以,别再邪恶了”

mount基本上打印mtab文件(/etc/mtab)的内容。这仅显示已挂载的文件系统。如果目标文件夹不是单独的文件系统,则无法使用mount来找到它。但是,如果使用df /path/to/target,它将肯定告诉您哪个块设备包含目标文件夹以及该设备的安装位置。然后,您可以使用mount或其他工具来确定文件系统是什么类型以及其他信息。在OP的示例中,您的建议将不会显示/ tmp /文件夹的安装位置,因为他的/ tmp /不是独立的文件系统,而是的一部分/
Xalorous
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.