web-dev-qa-db-ja.com

/ 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 in 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)
9
Vorac

出力が上記の場合、それはハードディスクにあります。カーネルのコマンドラインを見ると/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の出力のもう1つの特典は、マウントポイント/です。 RAMに/tmpをマウントした場合は、代わりに

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

df /tmpの出力は答えを示します。「マウントされた」列には/がリストされているため、/tmp/にマウントされているファイルシステムの一部、つまりルートファイルシステムです。独立したファイルシステムではありません。

より正確にするには、df /tmp/を実行する必要があります。/tmpがシンボリックリンクの場合、df /tmpはシンボリックリンクの場所に関する情報をリストし、df /tmp/はターゲットディレクトリ。

デバイス列での/dev/rootの言及は、/etc/mtabにリストされているためです。 /proc/mountsまたは</proc/mounts awk '$2 == "/" {print $1}'findmnt /を検索すると、実際のデバイスを見つけることができます。

df /path/to/targetは、フォルダーターゲット、合計バイト数、使用バイト数、使用可能な割合、およびマウントポイントを含むファイルシステムを示します。

この質問に記載されている例では、フォルダー/tmp/は、ブロックデバイス/dev/sda1にあるrootというラベルの付いたファイルシステム内にあります。

mount | grep targetは、/etc/mtabにリストされている名前ターゲットを含むファイルシステムを表示します。ターゲットフォルダが個別のファイルシステムでない場合、mountは正確な情報を直接提供しません。

ただし、/tmp/が含まれているデバイスを確認するには、dfを使用してファイルシステム名(/dev/root)とマウントポイント(/)を取得し、検索します。 mountの出力は、デバイスまたはマウントポイントを見つけ、そのファイルシステムを保持しているブロックデバイスを特定します。

常に1対1の相関関係があるわけではないため、デバイスとファイルシステムを区別することが重要です。ブロックデバイスはパーティション化でき、各パーティションにはファイルシステムがあります。各パーティションは、異なるタイプのファイルシステムを持つことができます。各パーティションには独自の一意の名前とUUIDがあり、エイリアスを持つことができます。

0
Xalorous