Linux는 파일 시스템을 어떻게 추적합니까?

Linux는 파일 시스템을 어떻게 추적합니까?

내가 아는 한, Linux에는 모든 파일 시스템에 대한 추상화 계층이 있습니다.가상 FS. 새 파일 시스템을 생성하는 경우 VFS에서 설정한 규칙을 따라야 합니다("Linux 가상 파일 시스템 스위치 분석"자세히 알아보기). 이 새 파일 시스템을 생성한 후 디렉터리 계층에 마운트하겠습니다. 하지만 여기서 질문이 있습니다. Linux 운영 체제는 내 파일 시스템에 대해 어떻게 알 수 있습니까?

실제로 Linux에는 많은 파일 시스템이 있을 수 있습니다. 그 중 일부는 설치되어 명령으로 찾을 수 있고 mount, 일부는 설치되지 않았지만 언제든지 설치할 수 있습니다. 이러한 제거된 기록이 운영 체제 어딘가에 기록되어 있습니까? 내 문제와 관련이 있을 수 /etc/fstab있는 파일이 두 개 있다는 것을 알고 있지만 /etc/filesystems확실하지 않습니다.

답변1

지금은 마운트 해제된 파일 시스템에 액세스할 수 없습니다. 기본 장치에 직접 액세스(로컬 디스크에 저장된 파일 시스템의 경우)하거나 다른 컴퓨터에서 액세스(네트워크 파일 시스템의 경우)하는 등 간접적인 방법으로 이를 수정할 수 있습니다. 그러나 그 이상으로 마운트 해제된 파일 시스템은 운영 체제에 관한 한 존재하지 않습니다. 네트워크 파일 시스템(및 기타 파일 시스템)의 존재를 고려하면 마운트되지 않은 파일 시스템(모든 디렉토리의 모든 디렉토리)이 끝없이 공급됩니다.

이 파일을 /etc/fstab명령의 구성 파일로 생각하십시오 mount. 여기에는 일치하는 줄을 호출 mount /path/to/mount/point하거나 mount /dev/device_name검색 하고 장치 이름이나 마운트 지점, 파일 시스템 유형 및 마운트 옵션을 사용하여 명령줄을 완성할 수 있는 바로 가기가 포함되어 있습니다. 항목에 이 옵션이 있는 경우 모든 사용자는 해당 항목(일반적으로 루트 사용자용으로 예약됨)에 대해 명령을 호출할 수 있습니다.mount/etc/fstabusermountmount

또한 /etc/fstab시작 시 설치된 파일 시스템이 나열됩니다. 이 옵션이 없는 이 파일의 모든 항목은 noauto제공된 옵션을 사용하여 부팅 시 설치됩니다. 일반적으로 부팅 스크립트에 의해 마운트되는 이 문서에 언급되지 않은 다른 파일 시스템이 있습니다(일반적인 Linux 시스템에서는 /dev, /dev/pts, /proc, /sys등이 포함됩니다).

/etc/filesystems파일 시스템 유형을 전달하지 않거나 전달할 때 동작을 사용자 정의할 수 있는 Linux에서 거의 사용되지 않는 마운트 기능입니다 auto. 이 파일이 없으면 마운트는 에 나열된 파일 시스템 유형을 시도합니다 /proc/filesystems. 파일 시스템 유형은 순서대로 시도됩니다. 첫 번째 항목이 마운트에 실패하면 mount두 번째 항목이 시도되는 식입니다.

답변2

짧은 대답은 모른다는 것입니다.

하지만 힌트를 주는 방법도 있습니다. 역사적으로 이는 다음을 통해 달성되었습니다.파티션 테이블의 라벨고정 디스크. 그러나 이것은 여전히 ​​그 안에 있는 파일 시스템에 대한 힌트일 뿐입니다. 일부 도구는 이 힌트에 의존합니다(예: mkfs - mkfs.umsdos, mkfs.ext3, mkfs.reiserfs...에 대한 간단한 프런트엔드임).

또 다른 접근 방식은 원시 파티션에서 바이트를 읽어 파일 시스템 유형을 스니핑하는 것입니다(마운트는 다양한 MSDOS 호환 유형 중에서 선택하기 위해 이 작업을 수행합니다). 또는 알려진 장치 식별자에 파일 시스템 데이터베이스를 유지합니다.

파일 시스템의 다양성을 고려할 때 항상 정확하고 통일된 접근 방식은 없습니다.

따라서 시스템은 관리자가 사용하도록 지시한 파일 시스템 유형(또는 적어도 시리즈)을 사용합니다.

관련 정보