/etc/mtab
리눅스에는 무엇이 있나요?
왜 필요하며, 이를 가지면 어떤 이점이 있습니까?
답변1
% 파일/etc/mtab /etc/mtab: ../proc/self/mounts에 대한 심볼릭 링크 % 파일/프로시저/마운트 /proc/mounts: self/mounts에 대한 심볼릭 링크 %
/etc/mtab
이는 호환성 메커니즘입니다. 수십 년 전, Unix에는 기존 마운트 정보를 읽기 위한 시스템 호출이 없었습니다. 대신, 파일 시스템을 마운트하는 프로그램은 /etc/mtab
마운트된 내용과 위치를 기록하는 테이블을 협력하고 자발적으로 유지해야 합니다 .
분명한 이유로 이는 이상적인 메커니즘이 아닙니다.
mounts
Linux는 "procfs"라는 개념을 얻었고 그 중 하나는 의사 정규 파일 형태로 해당 테이블의 커널 유지 버전이었습니다. 커널에서 마운트 정보를 읽는 "시스템 호출"은 파일에 대한 열기-읽기-닫기 시퀀스가 되고 그 결과는 사람이 읽을 수 있는 형식에서 기계가 읽을 수 있는 형식으로 구문 분석됩니다. 2주 전의 버그 보고서를 통해 알 수 있습니다.)
/etc/mtab
결과적으로, 이는 /proc/mounts
해당 이름으로 하드와이어된 프로그램이 해당 파일에서 마운트 테이블을 계속 읽을 수 있도록 하는 기호 링크로 인기를 얻었으며, 파일 시스템을 마운트하고 마운트 해제한 프로그램은 더 이상 최신 상태를 유지하기 위해 명시적으로 어떤 작업도 수행할 필요가 없었습니다. (그러나 /etc/mtab
결과가 쓰기 가능한 일반 파일 인 경우 일부는 여전히 그럴 것입니다 . 그리고 mounts
커널이 아닌 모든 항목에 대한 정규화 정보가 부족하여 꼭 필요한 것은 아니지만 일부 극단적인 경우도 있습니다. 하지만 중요하지는 않습니다. 일반적인 문제에 /etc/mtab
.)
이제 각 프로세스는 설치된 항목에 대한 별도의 보기를 가질 수 있으므로 이제 mounts
각 프로세스는 procfs에 별도의 파일을 가지며 각 프로세스의 자체 테이블은 심볼릭 링크 를 self
통해 액세스 할 수 있습니다.self/mounts
/proc/mounts
반품이제 호환성 메커니즘이 있습니다. (흥미롭게도 현재 Linux doco에는 모든 프로세스에 대한 문서나 문서 형식이 없지만 mounts
비슷한 유사 정규 파일이 있습니다.)mounts
mountinfo
SunOS/Solaris에도 비슷한 메커니즘이 있습니다. 이 /etc/mnttab
파일은 실제로 테이블을 읽는 것 외에도 read()
마운트 지점 변경을 모니터링 poll()
하고 파일의 열린 파일 설명자를 통한 시스템 호출을 통해 다양한 추가 정보를 얻는 데 사용할 수 있는 단일 파일 파일 시스템입니다 ioctl()
.
HP-UX에서는 /etc/mnttab
파일 이름이기도 하지만 버전 11부터는 여전히 시스템 유틸리티에서 내용을 공동으로 유지 관리하는 일반 파일입니다.
AIX는 프로그램이 구문 분석해야 하는 사람이 읽을 수 있는 텍스트 테이블을 내보내지 않으며 이에 상응하는 파일이 없습니다. 마찬가지로 BSD에는 getfsstat()
프로그램이 사람이 읽을 수 있는 중간 형식을 통해 마샬링할 필요 없이 기계가 읽을 수 있는 형식으로 커널에서 마운트 테이블을 얻을 수 있도록 하는 FreeBSD 및 OpenBSD에 대한 성숙한 시스템 호출이 있습니다.
추가 읽기
- 지그문트 크레니츠키(2019-03-16).경로의 \r은 마운트 장치를 혼란스럽게 합니다.. 12018장 시스템 문제.
- 즈비그뉴 예드제예프스키-스멕(2019-04-04).
/proc/self/mountinfo
마운트 경로의 [df]\r이 올바르게 구문 분석되지 않았습니다.. #35137. GNU coreutils 버그. /proc/mounts
. 문서/파일 시스템/proc.txt. 리눅스 5.1.- 조나단 드 보인 폴라드(2019-02-28).답글: 목적이 무엇입니까?
fstab-decode
. 버그 #567071. 데비안 오류입니다. getfsstat()
. FreeBSD 시스템 호출 매뉴얼. 2016년 12월 27일.
답변2
에 따르면 man mount
:
전통적으로 마운트 및 마운트 해제 프로그램은 /etc/mtab 파일에 현재 마운트된 파일 시스템 목록을 유지했습니다. 이 실제 mtab 파일은 계속 지원되지만 현재 Linux 시스템에서는 이를 /proc/mounts에 대한 심볼릭 링크로 만드는 것이 더 좋습니다. 사용자 공간에 유지되는 일반 mtab 파일은 네임스페이스, 컨테이너와 안정적으로 인터페이스할 수 없으며 다른 고급 Linux와 함께 사용됩니다. 특징.
설치 중에 기록되지 않음 /etc/mtab
:
-n, --no-mtab
마운트하기 위해 /etc/mtab에 쓸 필요가 없습니다. 예를 들어 /etc가 읽기 전용 파일 시스템에 있는 경우 이 작업이 필요합니다.
자세한 내용은 매뉴얼 페이지에 나와 있습니다.
답변3
JdeBP의 답변이 아마도 가장 실용적이고 유용할 것입니다. 이전에 어떻게 사용되었는지에 대한 보기를 제공하는 (다소 오래된) Linux 학습 준비 가이드에서 내용을 추가할 수 있습니다.
/etc/mtab
와 차이점은 커널이 저장하는 사용자 공간 관리 정보/proc/mounts
와 커널 이 저장하는 정보라는 점이다./etc/mtab
mount
/proc/mounts
원천