$ 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)
出力が上記の場合、それはハードディスクにあります。カーネルのコマンドラインを見ると/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
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があり、エイリアスを持つことができます。