일반적인 Linux 시스템에는 어떤 마운트 지점이 있습니까? 않은 다른 마운트 지점이 있습니까? 이 문장이 맞습니까?

질문이 2 개 있습니다.

  1. Linux 설치 중에 2 개의 마운트 지점 (루트 및 스왑)에 대한 메모리 공간을 지정합니다. 사용자에게 알리지 않은 다른 마운트 지점이 있습니까?
  2. 이 문장이 맞습니까? “다른 파티션을 다룰 때만 마운트가 그림에 나타납니다. 즉, 다른 파티션이 아니면 / proc를 마운트 할 수 없습니다”?


답변

질문 뒤에 오해가 있습니다.

  1. 스왑이 마운트되지 않았습니다.
  2. 마운트는 파티션으로 제한되지 않습니다.

파티션

파티션은 특정 목적에 헌신의 디스크 공간의 slice¹입니다. 파티션의 일반적인 목적은 다음과 같습니다.

  • 파일 시스템이 즉,이 같은 EXT2, EXT3, FFS와 같은 형식의 디렉토리 트리로 구성하고 저장된 파일을 FAT, NTFS, …
  • 스왑 공간, 즉 페이징 (및 최대 절전 모드 이미지 저장)에 사용되는 디스크 공간 .
  • 직접 응용 프로그램 액세스 일부 데이터베이스는 약간의 성능을 얻기 위해 파일 시스템이 아닌 파티션에 직접 데이터를 저장합니다. (어쨌든 파일 시스템은 일종의 데이터베이스입니다.)
  • 다른 파티션을위한 컨테이너입니다. 예를 들어, PC 확장 파티션 또는 BSD 파티션을 포함 하는 디스크 슬라이스 또는 LVM 물리 볼륨 (파티션으로 간주 될 수있는 논리 볼륨 포함)…

파일 시스템

파일 시스템은 정보를 계층 구조로 제공합니다. 일반적인 파일 시스템 종류는 다음과 같습니다.

  • ext2, ext3, FFS, FAT, NTFS 등과 같은 디스크 백업 파일 시스템
    • 백업은 위에서 볼 수 있듯이 디스크 파티션에 직접있을 필요는 없습니다. 예를 들어, 이것은 LVM 논리 볼륨 또는 루프 마운트 일 수 있습니다.
  • 솔라리스와 리눅스 등의 메모리 백업 파일 시스템, 의 tmpfs .
  • Linux proc와 같은 커널에서 정보를 제공하는 파일 시스템 sysfs.
  • 같은 네트워크 파일 시스템, NFS , 삼바 , …
  • FUSE큰 콜렉션 이있는 응용 프로그램 지원 파일 시스템 . 응용 프로그램 지원 파일 시스템은 무엇이든 할 수 있습니다. FTP 서버를 파일 시스템으로 표시하고 파일 이름이 대소 문자를 구분하지 않거나 다른 인코딩으로 변환 된 파일 시스템의 다른보기를 제공합니다.

설치

유닉스는 일반적으로“파일 시스템”이라고하는 단일 계층 구조로 파일을 제공합니다 (그러나이 답변에서는 혼동을 막기 위해 이런 의미에서“파일 시스템”이라는 단어를 사용하지 않습니다). 액세스하려면 개별 파일 시스템을 해당 계층 구조에 접목시켜야합니다 .³

파일 시스템을 마운트하여 액세스 할 수있게합니다. 마운트하면 마운트 할 파일 시스템의 루트 디렉토리가 파일 계층의 기존 디렉토리와 연결됩니다. 이러한 연관이있는 디렉토리를 마운트 지점이라고합니다.

  • 예를 들어, 루트 파일 시스템은 부팅시 (커널이 프로세스를 시작하기 전에) /디렉토리에 마운트됩니다 .
  • Solaris 및 Linux와 같은 일부 유닉스 변형이 프로세스에 대한 정보를 노출 하는 proc 파일 시스템 은에 마운트되어 proc 파일 시스템에 파일 /proc/proc/42/environ지정합니다. /42/environ번호 42.
  • 예를 들어 for /home와 같은 별도의 파일 시스템이있는 경우 /home/john/myfile.txt경로가 /john/myfile.txt홈 파일 시스템의 루트에서 오는 파일 을 지정하십시오 .

Linux에서는 bind mounts 덕분에 둘 이상의 경로를 통해 동일한 파일 시스템에 액세스 할 수 있습니다 .

일반적인 Linux 파일 시스템에는 마운트 된 파일 시스템이 많이 있습니다. (이것은 예입니다. 배포판, 버전 및 설정이 다르면 다른 파일 시스템이 마운트됩니다.)

  • /: 커널이 첫 번째 프로세스를로드하기 전에 마운트 된 루트 파일 시스템. 부트 로더는 커널에게 루트 파일 시스템으로 사용할 것을 알려줍니다 (일반적으로 디스크 파티션이지만 NFS 내보내기와 같은 다른 파일 일 수 있음).
  • /proc: 프로세스 및 커널 정보 가 포함 된 proc 파일 시스템.
  • /sys: 하드웨어 장치에 대한 정보 가 포함 된 sysfs 파일 시스템.
  • /dev: 사용 가능한 하드웨어를 기반으로 udev 에 의해 장치 파일 이 자동으로 생성되는 인 메모리 파일 시스템 .
  • /dev/pts: 터미널 에뮬레이터 를 실행하기위한 장치 파일을 포함하는 특수 목적의 파일 시스템 .
  • /dev/shm: 시스템의 표준 라이브러리에서 내부 목적으로 사용되는 인 메모리 파일 시스템.
  • 실행중인 시스템 구성 요소에 따라 binfmt_misc( 외부 실행 파일 형식 커널 하위 시스템에서 사용 ), fusectl( FUSE에서 사용 ), nfsd(커널 NFS 서버에서 사용 ) 등과 같은 다른 특수한 파일 시스템이 표시 될 수 있습니다 .
  • 에 명시 적으로 언급되고 /etc/fstab표시되지 않은 모든 파일 시스템 noauto은 부팅 프로세스의 일부로 마운트됩니다.
  • USB 키와 같은 이동식 장치를 삽입 한 후 HAL (또는 동등한 기능)에 의해 자동으로 마운트 된 모든 파일 시스템 .
  • mount명령 으로 명시 적으로 마운트 된 모든 파일 시스템

¹ 비공식적으로 여기에 말하십시오.
² Initrd 등은이 답변의 범위를 벗어납니다.
³ 이는 Windows와 달리 각 파일 시스템마다 별도의 계층 구조를 갖습니다 (예 : c:또는) \\hostname\sharename.


답변

  1. 모든 리눅스 배포판에는 자체 기본 파티션 배열이 있습니다. 그들 중 일부는 수십 개의 파티션을 사용하며 일부는 단일 파티션을 사용합니다. 3과 4는 매우 일반적인 배열입니다 (/ boot, /, swap 및 / home). 일부 오래된 레이아웃은 종종 별도의 파티션에 / var이 있었으며 극단적 인 시스템은 별도의 파티션에 / var / * 및 / opt / *의 모든 것을 찾아냅니다! 귀하의 질문에 대한 답변으로 내가 할 수있는 가장 좋은 일반화 는 유닉스 세계에서 사용자가 통지하거나 변경할 수있는 능력없으면 아무것도 수행되지 않는다는 것입니다 !
  2. 파티션이 아닌 것을 마운트 할 수 있습니다. 예를 들어, / proc는 일반적으로 파티션이 아니며 커널에서 제공하는 가상 파일 시스템으로, 실행중인 프로세스에 대한 데이터를 마치 파일처럼 읽고 쓸 수 있습니다. 루프백 장치를 사용하여 드라이브처럼 파일을 마운트하거나 (ISO와 같은) 마운트 폴더를 다른 위치에 바인딩하고 다양한 기타 닌자 트릭을 수행 할 수도 있습니다.