Nhiều người cứ nói rằng Linux không giữ thông tin về các liên kết gắn kết, vì vậy không có cách nào để có được danh sách về chúng và các nguồn của chúng. Dưới đây là một số ví dụ:
từ một trong những ý kiến ở đây :
IIRC thông tin này không được lưu giữ ở bất cứ đâu: sau đó
mount --bind
, hai bản sao tương đương nhau, không có bản nào có nhiều bản gốc của bản gốc hơn bản kia. Rốt cuộc, không thể có bản gốc nếu bạn đã không đếm được/mnt
.từ một câu trả lời trên trang web này :
Vì vậy, cách duy nhất để nhớ những gì mount là mount mount là nhật ký của các lệnh mount còn lại
/etc/mtab
. Một hoạt động gắn kết liên kết được chỉ định bởi tùy chọn gắn kết liên kết (làm cho loại hệ thống tập tin bị bỏ qua). Nhưng mount không có tùy chọn để liệt kê chỉ các hệ thống tập tin được gắn với một bộ tùy chọn cụ thể.từ báo cáo lỗi Debian :
Đây là cố ý. Cả hai điểm gắn kết hoàn toàn bằng nhau theo mọi cách để hạt nhân không giữ bất kỳ cờ nào để phân biệt chúng.
Trên đây là vô nghĩa. Công cụ findmnt
có thể liệt kê các đường dẫn nguồn của các liên kết gắn kết (ở dạng device[source-path]
; tôi cũng đang cố gắng để nó liệt kê chỉ đường dẫn nguồn chứ không phải thiết bị). Nếu hạt nhân Linux là để duy trì một liên kết gắn kết, thì thông tin đó phải được lưu trữ ở đâu đó , nếu không thì không thể biết đó /home
là ràng buộc /users
. Vậy dữ liệu này ở đâu? Có phải nó được lưu trữ trong một số vùng tối nghĩa trong RAM? Có findmnt
nhìn vào /proc
đâu đó không?
/proc/self/mountinfo
tương đối gần đây đã được cơ cấu lại. Tôi đã sử dụng máy RHEL6 trước đó nhưng không có thông tin đường dẫn nhưng máy RHEL7 của tôi thì có và như được đề cập trong liên kết của bạn Wheezy cũng vậy.
/dev/A
được gắn vào /B
và bạn làm mount --bind /B /C
, các hạt nhân cũ chỉ nhớ /B → /dev/A
và /C → /dev/A
, họ không nhớ bất kỳ mối quan hệ nào giữa /B
và /C
. Vì vậy, unmounting /B
tự nhiên không có hiệu lực trên /C
. Các hạt nhân mới hơn nhớ rằng đó /C
là một liên kết gắn kết /B
, nhưng theo cách không ngăn cản việc /C
tiếp tục hoạt động nếu /B
không được kết nối, tôi không biết chính xác làm thế nào.
findmnt
nào bạn đang chạy và bạn đang cung cấp tùy chọn nào? Của tôi không in nó ra như thế và nhìn vào mã nguồn mà nó dường như đang sử dụng_PATH_PROC_MOUNTINFO
mà dường/proc/self/mountinfo
như không có thông tin này trong đó.