Linux의 파일 시스템을 이해하려고 노력하고 있지만 아직도 이해가 안되는 부분이 있습니다. 지금까지 내가 올바르게 이해한 바는 파일 시스템이 볼륨의 파티션에서 파일을 검색하는 데 사용되는 일련의 방법 및 데이터 구조라는 것입니다. 파일 시스템은 Linux 명령을 통해 나열될 수 있습니다. df
지금까지는 매우 좋습니다.
또한 Linux는 합성 파일 시스템을 procs로 생성하는데, 이는 파일이 아닌 개체에 대해 일반 파일 시스템으로 표시됩니다. proc 파일 시스템이 그 예입니다. 플래그를 추가하면 df 명령을 사용하여 합성 파일 시스템을 나열할 수 있습니다 -a
.
이제 질문은 /usr/ 폴더가 파일 시스템이라고 불리는 이유입니다.https://tldp.org/LDP/sag/html/usr-fs.html)? 나에게 그것은 루트 파일 시스템에 속하는 폴더인 것 같습니다. 그렇다면 사람들은 왜 그것을 파일 시스템이라고 부를까요?
또한 사람들이 루트 파일 시스템이 작아야 한다고 말하는 이유는 무엇입니까(https://tldp.org/LDP/sag/html/root-fs.html)?
실제로 df
다음 명령을 호출하면 다음과 같습니다.
Filesystem 1K-blocks Used Available Use% Mounted on
udev 32866696 0 32866696 0% /dev
tmpfs 6578976 2484 6576492 1% /run
/dev/nvme0n1p5 959862832 101610168 809424504 12% /
tmpfs 32894876 109020 32785856 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 32894876 0 32894876 0% /sys/fs/cgroup
/dev/loop1 56704 56704 0 100% /snap/core18/1885
/dev/loop2 261760 261760 0 100% /snap/gnome-3-34-1804/36
/dev/nvme0n1p1 523248 4 523244 1% /boot/efi
/dev/loop3 63616 63616 0 100% /snap/gtk-common-themes/1506
/dev/loop4 51968 51968 0 100% /snap/snap-store/481
/dev/loop5 31744 31744 0 100% /snap/snapd/9721
/dev/loop6 30720 30720 0 100% /snap/snapd/8542
/dev/loop7 223232 223232 0 100% /snap/gnome-3-34-1804/60
/dev/loop8 51072 51072 0 100% /snap/snap-store/467
tmpfs 6578972 20 6578952 1% /run/user/125
tmpfs 6578972 40 6578932 1% /run/user/1000
/dev/sda1 30702592 2498400 28204192 9% /media/tommaso/USB
/dev/loop9 56704 56704 0 100% /snap/core18/1932
루트 파일 시스템은 실제로 다음으로 구성되어 있는 것으로 보입니다.모든 것내 컴퓨터에서는 왜 작아야합니까?
답변1
기본 원칙은배경 부분. 2000년대 중반부터 후반까지 관련이 있었지만 오늘날에는 더 이상 관련이 없습니다.
별도의 파일 시스템을 만드는 이유는 /usr
루트 파일 시스템을 작게 유지하기 위해서입니다. 디렉토리 /usr
트리는 소프트웨어를 설치하는 데 사용됩니다.
설치된 소프트웨어는 자주 변경되지 않으므로
/usr
읽기 전용으로 설치할 수 있습니다. 루트 파일 시스템은/etc
일반적으로 자주 수정해야 하기 때문에 읽기 전용으로 마운트할 수 없습니다. 읽기 전용으로 유지 하는 주요 이점/usr
은 읽기-쓰기가 마운트된 동안 시스템이 충돌하는 경우 긴 파일 시스템 검사를 피할 수 있다는 것입니다. 이는 더 이상 최신 파일 시스템과 관련이 없습니다.잡지또는 충돌로부터 직접 복구할 수 있는 다른 메커니즘도 있습니다.동일한 시스템에 설치된 소프트웨어는 동일하므로
/usr
읽기 전용일 수 있습니다. 또는 로컬 네트워크가 있는 경우 이를 단일 서버에 저장하고 다른 시스템에서 설치하도록 할 수 있습니다. 네트워크의 루트 파일 시스템에서 부팅하는 것은 더 복잡합니다(더 많은 부트로더 및 커널 지원에 의존하며 네트워크가 다운되면 머신을 완전히 사용할 수 없게 만듭니다). 이는 디스크 공간 비용이 200달러였던 당시에는 일반적이었지만/usr
비용이 1센트에 불과하기 때문에 더 이상 중요하지 않습니다.
따라서 요즘에는 /usr
별도의 파일 시스템을 갖 /usr
거나 /
.
적어도 Linux에서는 더 이상 그렇지 않습니다. 원인은 이 /etc/mtab
파일이 예전에는 일반 파일이었지만 이제는 일반적 으로 심볼릭 링크가 있을 /proc/mounts
정도로 충분하다는 것입니다 . 그러나 프린터/네트워크가 마지막으로 확인된 시간의 타임스탬프가 포함된 파일을 업데이트하려는 Cups 및 NetworkManager와 같은 새로운 범인이 등장했습니다./etc/mtab
/etc/mtab
답변2
당신은 어떤 면에서 더 이상 사용되지 않는 아주 오래된 매뉴얼을 읽고 있습니다.
과거에는 일부 Unix의 경우에 익숙해은 별도의 /usr
마운트 지점이고 나머지 파일( /bin /etc /root /usr /sbin
)은 성공적인 시작을 위해서만 필요합니다.
요즘 Linux 배포판은 그 안에 있는 모든 것을 제거 /bin /sbin
하고 이동하고 있습니다. 이는 ( 및 와 함께 ) 루트 파일 시스템에 속하는 것이 매우 적합하다는 것을 의미합니다 ./lib
/usr/{bin,sbin,lib}
/usr
/etc /root
/var
2020년 최신 Linux의 계층 구조는 다음과 같습니다.
/bin -> /usr/bin
/boot : a separate FS for storing kernel images and initial ram disks
/boot/efi : an EFI system partition - not specific to Linux
/dev : tmpfs
/etc
/home
/lib -> /usr/lib
/lib64 -> /usr/lib64
/media
/mnt
/opt
/proc : virtual fs
/run : tmpfs
/sbin -> /usr/sbin
/sys : virtual fs
/tmp : tmpfs
/usr
/var
/
따라서 최소한 및 에 대한 파일 시스템이 있어야 합니다 /boot
. 그러나 누구도 다른 접두사를 별도의 파일 시스템에 넣는 것을 막지 못합니다.
그러나 다음은 좋은 습관입니다.
/home
배포판을 쉽게 전환할 수 있으므로 별도의 파일 시스템 으로 사용/var/lib/{mysql|postgres|something else}
속도를 높이고 조각화를 줄이기 위해 별도의 FS가 있을 수 있음- 어떤 사람들은 독점적인 대규모 응용 프로그램을 설치
/opt
하거나/usr/local
별도의 파일 시스템을 보증할 수도 있습니다.
그게 다야.