Có gì /etc/mtab
trong Linux?
Tại sao nó cần thiết và lợi thế của việc có nó?
man 5 mtab
mất tích.
Có gì /etc/mtab
trong Linux?
Tại sao nó cần thiết và lợi thế của việc có nó?
man 5 mtab
mất tích.
Câu trả lời:
% tệp / etc / mtab / etc / mtab: liên kết tượng trưng đến ../proc/elf/mounts % tập tin / Proc / mount / Proc / mounts: liên kết tượng trưng đến tự / mount %
/etc/mtab
là một cơ chế tương thích. Nhiều thập kỷ trước, Unix không có lệnh gọi hệ thống để đọc thông tin gắn kết hiện có. Thay vào đó, các chương trình gắn hệ thống tập tin được dự kiến sẽ hợp tác và tự nguyện duy trì một bảng trong /etc/mtab
đó được gắn ở đâu.
Vì lý do rõ ràng, đây không phải là một cơ chế lý tưởng.
Linux đã đạt được khái niệm về một "Procfs" và một trong những thứ mà nó thu được là một phiên bản duy trì kernel của bảng này, dưới dạng một mounts
tệp giả thông thường. "Cuộc gọi hệ thống" để đọc thông tin gắn kết ra khỏi nhân đã trở thành một chuỗi mở-đọc-đóng đối với tệp đó, sau đó phân tích kết quả từ dạng có thể đọc được của con người sang dạng có thể đọc được bằng máy (một cái gì đó có một số điểm tinh tế, như bạn có thể thấy từ các báo cáo lỗi từ hơn một hai tuần trước).
/etc/mtab
do đó, đã trở thành một liên kết tượng trưng /proc/mounts
, cho phép các chương trình đã cố gắng đọc tên bảng đó từ tệp đó, mà các chương trình gắn và không kết nối các hệ thống tệp không còn phải tự làm bất cứ điều gì để cập nhật. (Tuy nhiên, một số trong số chúng vẫn sẽ /etc/mtab
là một tệp thông thường có thể ghi. Và có một vài trường hợp góc mà thông tin được chuẩn hóa trong mounts
đó thiếu tất cả các công cụ không phải là kernel không phải là điều cần thiết; mặc dù chúng không vượt trội những vấn đề chung với /etc/mtab
.)
Mỗi quá trình hiện nay có thể có cái nhìn cá nhân riêng của mình về những gì đang gắn, và có kết quả là giờ đây từng mounts
file cho mỗi quá trình trong procfs, bảng riêng của mỗi quá trình đang tiếp cận với nó thông qua các self
liên kết tượng trưng như self/mounts
, và /proc/mounts
là cũng bây giờ là một khả năng tương thích cơ chế. (Điều thú vị là, cả quy trình mounts
và định dạng mounts
đều không được ghi lại trong tài liệu Linux hiện tại, mặc dù mountinfo
tệp giả thông thường tương tự là.)
SunOS / Solaris có cơ chế tương tự. Các /etc/mnttab
tập tin thực sự là một single-file hệ thống tập tin, và ngoài việc đọc bàn, thông qua một bộ mô tả tập tin mở rộng cho tập tin đó, với các read()
cuộc gọi hệ thống, người ta có thể xem cho gắn những thay đổi quan điểm với poll()
và có được mảnh thêm thông tin khác nhau với ioctl()
.
Trong HP-UX, /etc/mnttab
tương tự như tên của tệp, nhưng cho đến phiên bản 11, nó vẫn là một tệp thông thường có nội dung được duy trì liên tục bởi các chương trình tiện ích hệ thống.
AIX không xuất bảng văn bản có thể đọc được mà các chương trình phải phân tích cú pháp và không có tệp tương đương. Các BSD, tương tự, có các cuộc gọi hệ thống chính thức, getfsstat()
trên FreeBSD và OpenBSD, cho các chương trình để lấy bảng gắn kết từ hạt nhân ở dạng có thể đọc được bằng máy mà không cần xử lý thông qua hình thức trung gian có thể đọc được của con người.
/proc/self/mountinfo
với \ r trong đường dẫn gắn kết . # 35137. GNU coreutils lỗi./proc/mounts
. Tài liệu / hệ thống tập tin / Proc.txt . Linux 5.1.fstab-decode
. Lỗi # 567071. Lỗi Debian.getfsstat()
. Hướng dẫn gọi hệ thống FreeBSD . 2016-12-27.mtab(5)
từ ngày xưa: man.cat-v.org/unix_8th/5/mtab .
/proc/mounts
, mà /proc/self/mounts
bản thân nó còn là một cơ chế tương thích; nó chỉ hiển thị một tập hợp con của thông tin có sẵn trong /proc/self/mountinfo
. Định dạng của /proc/self/mounts
tài liệu này proc(5)
giống hệt nhưfstab(5)
Theo man mount
:
Các chương trình gắn kết và umount theo truyền thống duy trì một danh sách các hệ thống tệp hiện được gắn kết trong tệp / etc / mtab. Tệp mtab thực này vẫn được hỗ trợ, nhưng trên các hệ thống Linux hiện tại, tốt hơn là đặt nó thành một liên kết tượng trưng đến / Proc / mounts, vì một tệp mtab thông thường được duy trì trong không gian người dùng không thể hoạt động đáng tin cậy với không gian tên, bộ chứa và các tính năng nâng cao khác của Linux.
Khi lắp mà không ghi vào /etc/mtab
:
-n, --no-mtab
Gắn mà không cần viết trong / etc / mtab. Điều này là cần thiết, ví dụ khi / etc nằm trong hệ thống tệp chỉ đọc.
Nhiều sắc thái hơn được đưa ra trong trang hướng dẫn.