My / tmp được gắn ở đâu?


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

Tôi muốn kiểm tra xem cài đặt Debian mặc định của tôi có /tmptrong RAM hoặc trên đĩa không, nhưng bây giờ tôi hoàn toàn bối rối. Tại sao một thiết bị không tồn tại sẽ được báo cáo là một loại hệ thống tập tin? Doe "gắn trên /" nghĩa là gì?

Đây là đầu ra của 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
Đầu ra có vẻ rất spartan. Bạn vui lòng gửi đầu ra của mountlệnh?
Rui F Ribeiro

/tmplà một điểm gắn kết. Câu hỏi bạn muốn hỏi là "Phân vùng / thiết bị nào được gắn trên / tmp?"
William Pursell

Và phrasing nó theo cách đó (tôi nghĩ) làm rõ sự nhầm lẫn của bạn. /dev/rootlà thiết bị được gắn ở thư mục gốc của hệ thống tập tin ( /)
William Pursell

Câu trả lời:


8

Nếu đầu ra như trên, nó nằm trên đĩa cứng. Bạn có thể nhận được /dev/rootbằng cách nhìn vào dòng lệnh kernel:

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

Vì vậy, /dev/roottương đương với phân vùng với UUID được in ở trên; của bạn sẽ khác nhau. Để tra cứu UUID này, hãy sử dụng

$ 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" 

Như bạn có thể thấy, phân vùng phù hợp là /dev/sda1. Vì vậy, bạn /tmpđang ở trên đĩa cứng. Một giveaway khác trong đầu ra của dflà mountpoint /. Nếu bạn gắn /tmpvào RAM, thay vào đó bạn sẽ nhận được

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

7

Đầu ra của việc df /tmpđưa ra câu trả lời: các danh sách cột được gắn trên các cột trong danh sách cột /, vì vậy /tmplà một phần của hệ thống tệp được gắn vào /, tức là hệ thống tệp gốc. Nó không phải là một hệ thống tập tin riêng biệt.

Để chính xác hơn, bạn nên chạy df /tmp/: nếu /tmplà một liên kết tượng trưng, ​​sau đó df /tmpliệt kê thông tin về vị trí của liên kết tượng trưng, ​​trong khi df /tmp/liệt kê thông tin về thư mục đích.

Việc đề cập đến /dev/roottrong cột thiết bị là do nó được liệt kê trong /etc/mtab. Bạn có thể tìm thấy những thiết bị thực bằng cách nhìn vào /proc/mountsvới </proc/mounts awk '$2 == "/" {print $1}'hoặc findmnt /.


+1 cho df /tmpfindmnt /.
akhan

0

df /path/to/target hiển thị hệ thống tập tin nào chứa mục tiêu thư mục, tổng byte, byte được sử dụng, tỷ lệ phần trăm khả dụng và điểm gắn kết.

Trong ví dụ được ghi lại trong câu hỏi này, thư mục /tmp/nằm trong hệ thống tệp có nhãn root, nằm trên thiết bị khối /dev/sda1.

mount | grep targetsẽ hiển thị bất kỳ hệ thống tập tin có chứa mục tiêu tên như được liệt kê trong /etc/mtab. Nếu thư mục đích không phải là một hệ thống tập tin riêng biệt, mount sẽ không trực tiếp cung cấp cho bạn thông tin chính xác.

Tuy nhiên, để biết thiết bị nào chứa /tmp/, hãy sử dụng dfđể lấy tên hệ thống tệp, ( /dev/root) và điểm gắn kết, ( /), sau đó tìm kiếm đầu ra của mountthiết bị để tìm thiết bị hoặc điểm gắn kết và xác định thiết bị khối nào giữ hệ thống tệp đó.

Điều quan trọng là phải phân biệt giữa thiết bị và hệ thống tập tin vì không phải lúc nào cũng có mối tương quan 1: 1. Thiết bị khối có thể được phân vùng và mỗi phân vùng sẽ có một hệ thống tập tin. Mỗi phân vùng có thể có một loại hệ thống tập tin khác nhau. Mỗi phân vùng tên riêng và UUID của riêng nó và có thể có bí danh.


-2

Để kiểm tra điều này, mountlà thích hợp hơn. Bạn có thể thử nó và grep đầu ra của nó trên 'tmp'

Ex :

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

Ở đây nó nói rằng phân vùng của tôi /dev/shmđược gắn với tmpfs (lưu trữ tệp tạm thời, tức là trong RAM). Nếu phân vùng của bạn không được gắn với tmpfs thì nó không có trong bộ nhớ dễ bay hơi.


Tôi đã mong đợi để xem tmpfs on /tmp.
Vorac

Ngược lại, dfcung cấp cho các thông tin trực tiếp, trong khi mount | grepkhông cung cấp thông tin đáng tin cậy (nó sẽ bỏ lỡ trường hợp /tmplà một liên kết tượng trưng, và nó không phải sẽ làm việc cho một cái gì đó giống như /var/tmpkể từ khi một trong hai /varhoặc /var/tmpcó thể là một điểm gắn kết).
Gilles 'SO- ngừng trở nên xấu xa'

mountvề cơ bản in nội dung của tệp mtab ( /etc/mtab). Điều này chỉ hiển thị các hệ thống tập tin gắn kết. Nếu thư mục đích không phải là một hệ thống tập tin riêng biệt, bạn sẽ không tìm thấy nó bằng cách sử dụng mount. Tuy nhiên, nếu bạn sử dụng df /path/to/target, nó sẽ cho bạn biết một cách tích cực thiết bị khối nào chứa thư mục đích và nơi thiết bị đó được gắn kết. Sau đó, bạn có thể sử dụng mounthoặc các công cụ khác để xác định loại hệ thống tập tin đó và thông tin khác. Trong ví dụ của OP, đề xuất của bạn sẽ không hiển thị nơi thư mục / tmp / được gắn kết, vì / tmp / không phải là một hệ thống tệp riêng biệt, mà là một phần của /.
Xalious 8/11/18
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.