루트 "/" 파일 시스템과 동일한 파일 시스템에 있어야 하는 디렉터리는 무엇입니까?

루트 "/" 파일 시스템과 동일한 파일 시스템에 있어야 하는 디렉터리는 무엇입니까?

나는 읽었다기사"bin" "dev" "etc" "lib" "root" "sbin" 디렉터리는 루트 디렉터리와 동일한 파일 시스템에 있어야 한다고 명시되어 있습니다. 즉, 별도의 파일 시스템으로 마운트되어서는 안 됩니다.

예를 들어, 현재 많은 배포판에서 "sbin", "bin" 및 "lib" 디렉토리가 "usr" 디렉토리에 심볼릭 링크되어 있다는 점에서 약간 혼란스럽습니다.

lrwxrwxrwx   1 root root     7 Apr 30 18:19 bin -> usr/bin
...
lrwxrwxrwx   1 root root     7 Apr 30 18:19 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Apr 30 18:19 lib32 -> usr/lib32
lrwxrwxrwx   1 root root     9 Apr 30 18:19 lib64 -> usr/lib64
lrwxrwxrwx   1 root root    10 Apr 30 18:19 libx32 -> usr/libx32
...
lrwxrwxrwx   1 root root     8 Apr 30 18:19 sbin -> usr/sbin

그러나 이 기사에서는 "/" 디렉터리와 usr 디렉터리가 동일한 파일 시스템에 있어야 한다고 규정하지 않습니다. 이전 질문도 읽었지만 여전히 혼란스럽습니다. 동일한 파일 시스템에 있어야 하는 디렉터리는 무엇이며 별도의 파일 시스템에 남아 있어야 하는 디렉터리는 무엇입니까?

답변1

현재의 생각은 /usr이것이 에 통합되어야 하고 /, 일부 배포판은 보시다시피 동등한 것에 심볼릭 링크 /bin만 연결해야 한다는 것입니다. 예를 들어/sbin/lib/usr/usrDebian, 다음 버전부터는 병합만 지원됩니다(독서광), 그리고Fedora는 2012년 Fedora 17에서 병합을 완료한 것으로 보입니다..

기본적으로 이에 대한 논쟁은 다음과 같이 요약되는 것 같습니다.

  • 어쨌든, 그게 시스템을 사용 가능한 상태로 만드는 작업 initramfs이므로 그럴 필요가 없습니다.다른이를 수행하는 "최소" 시스템
  • 어쨌든 분할은 실제로 작동하지 않습니다. 설치된 프로그램이 /usr/bin라이브러리에 의존할 수 있으므로 /lib완전히 독립적이지는 않기 때문입니다.
  • 분열의 전체 개념은 원래 원인이 무의미해진 후에도 오랫동안 계속 존재하는 역사적 사고입니다.

어쨌든 파일 시스템은 그렇게 /작지 않습니다. 예를 들어 오래된 사전 병합 시스템의 경우 /bin, 및 에 600MB 미만의 파일이 /sbin있었습니다 . (그러나 거기에는 X 또는 GUI 항목이 없습니다.) 다른 시스템에서는 조금 더 커지면 약 2GB 정도가 되지만, 그래도 현재 저장 공간 크기에는 문제가 되지 않습니다. 또한 initramfs 파일은 약 15MB로 중요할 만큼 작으며 initramfs에는 수정해야 할 그런 것이 없으므로 반정적으로 설치할 수 있습니다./lib/usr/usr/etc

/bin동일한 시스템을 보면 과 사이의 유틸리티 구분은 /usr/bin약간 임의적인 것처럼 보입니다. 예를 들어 sh, 및 bashare in /bin(분명히)도 그렇습니다. grep그러나 예를 들어 awk, headwcare zshin 입니다 /usr/bin. 최신 시스템이 부팅을 위해 쉘 스크립트에 너무 의존하는 것은 아니며 파일 시스템의 나머지 부분을 마운트하는 데 필요한 것에는 더 제한된 도구 세트가 필요합니다. Zsh를 좋아하는 관리자는 파일 시스템에 문제가 있을 때 로그인할 수 없다면 기분이 좋지 않을 수도 있습니다...

분열의 기원에 관한 이야기는 다음과 같습니다.

[1970년대 초반의 원래 Unix 시스템]이 너무 커져서 첫 번째 RK05 디스크 팩(루트 파일 시스템)을 담을 수 없게 되자 두 번째 디스크 팩으로 유출되었습니다. (그래서 마운트를 /usr이라고 합니다.) 원래 디스크에 공간이 부족했기 때문에 해당 디렉터리(/bin, /sbin, /lib, /tmp...) 아래의 모든 운영 체제 디렉터리를 복사하고 이러한 새 디렉터리에 파일을 썼습니다.

(Busybox 메일링 리스트의 Rob Landley가 보낸 글입니다.bin, sbin, usr/bin, usr/sbin 분할 이해, 약간 수정되었습니다. 동일한 메시지에서 이 문제를 더 자세히 설명합니다. )

systemd 사람들은 이에 대해 다음과 같은 생각을 썼습니다.

답변2

/bin 대 /usr/bin 문제는 오래된 문제입니다. 아이디어는 운영 체제의 실제 하위 집합이 /usr 파티션을 마운트할 수 있도록 하는 것입니다(이를 별도로 유지하는 경우). 구형 PC BIOS에는 섹터 제한이 있어 매우 작은 /파티션을 선택하게 되므로 이는 도움이 될 수 있습니다.

오늘날 이러한 구분은 더 이상 적합하지 않습니다. Linux는 운영 체제를 로드하는 데 필요한 모든 것을 작은 initramfs 아카이브에 저장합니다. 이 아카이브는 필요한 경우 Grub 및 여러 멋진 모듈을 통해 로드할 수 있습니다(간단한 일반 구분 /boot 파티션도 가질 수 있음).

관련 정보